

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Déplacement de données entre volumes de stockage dans RDS pour Oracle
<a name="Appendix.Oracle.CommonDBATasks.MovingDataBetweenVolumes"></a>

Vous pouvez déplacer des fichiers de données et des objets de base de données entre vos volumes de stockage principaux et supplémentaires. Avant de déplacer des données, tenez compte des points suivants :
+ Les volumes source et cible doivent disposer d'un espace libre suffisant.
+ Les opérations de déplacement de données consomment I/O sur les deux volumes.
+ Les mouvements de données importants peuvent avoir un impact sur les performances des bases de données.
+ Si vous restaurez un instantané, le déplacement des données entre les volumes de stockage peut être lent s'il est affecté par le chargement différé d'EBS.

**Topics**
+ [

## Déplacement de fichiers de données entre volumes dans RDS pour Oracle
](#Appendix.Oracle.CommonDBATasks.MovingDatafiles)
+ [

## Déplacement des données de table et des index entre les volumes dans RDS pour Oracle
](#Appendix.Oracle.CommonDBATasks.MovingTableData)
+ [

## Gestion du stockage LOB à l'aide de volumes supplémentaires
](#Appendix.Oracle.CommonDBATasks.ManagingLargeLOBStorage)

## Déplacement de fichiers de données entre volumes dans RDS pour Oracle
<a name="Appendix.Oracle.CommonDBATasks.MovingDatafiles"></a>

Pour déplacer des fichiers de données entre des volumes de stockage, utilisez la procédure `rdsadmin.rdsadmin_util.move_datafile` Amazon RDS. Notez les critères suivants :
+ Vous devez utiliser Oracle Enterprise Edition pour exécuter la `move_datafile` procédure.
+ Vous ne pouvez pas déplacer le tablespace `SYSTEM` et. `RDSADMIN`

La procédure `move_datafile` possède les paramètres suivants.


****  

| Nom du paramètre | Type de données | Obligatoire | Description | 
| --- | --- | --- | --- | 
|  `p_data_file_id`  |  nombre  |  Oui  |  ID du fichier de données à déplacer.  | 
|  `p_location`  |  varchar2  |  Oui  |  Volume de stockage vers lequel vous souhaitez déplacer le fichier de données.  | 

L'exemple suivant déplace un tablespace du volume par défaut `rdsdbdata` vers le volume supplémentaire. `rdsdbdata2`

```
SQL> SELECT tablespace_name,file_id,file_name FROM dba_data_files
 WHERE tablespace_name = 'MYNEWTABLESPACE';

TABLESPACE_NAME              FILE_ID FILE_NAME
------------------------- ---------- --------------------------------------------------------------------------------
MYNEWTABLESPACE                    6 /rdsdbdata/db/ORCL_A/datafile/o1_mf_mynewtab_n123abcd_.dbf

EXECUTE rdsadmin.rdsadmin_util.move_datafile( 6, 'rdsdbdata2');

PL/SQL procedure successfully completed.

SQL> SELECT tablespace_name,file_id,file_name FROM dba_data_files
  WHERE tablespace_name = 'MYNEWTABLESPACE';

TABLESPACE_NAME              FILE_ID FILE_NAME
------------------------- ---------- --------------------------------------------------------------------------------
MYNEWTABLESPACE                    6 /rdsdbdata2/db/ORCL_A/datafile/o1_mf_mynewtab_n356efgh_.dbf
```

## Déplacement des données de table et des index entre les volumes dans RDS pour Oracle
<a name="Appendix.Oracle.CommonDBATasks.MovingTableData"></a>

Vous pouvez optimiser le stockage des bases de données en créant des tablespaces sur des volumes de stockage supplémentaires. Vous pouvez ensuite déplacer des objets tels que des tables, des index et des partitions vers ces tablespaces à l'aide d'Oracle SQL standard. Cette approche est utile pour optimiser les performances lorsque votre base de données contient des données présentant des modèles d'accès différents. Par exemple, vous pouvez stocker les données opérationnelles fréquemment consultées sur des volumes de stockage à hautes performances tout en transférant les données historiques rarement consultées vers des volumes de stockage moins coûteux.

Dans l'exemple suivant, vous créez un nouveau tablespace sur un volume à hautes performances. `rdsdbdata2` Vous déplacez ensuite une table vers votre volume de stockage supplémentaire pendant que la table est en ligne. Vous déplacez également l'index vers le même volume. Le déplacement de tables et la reconstruction d'index en ligne nécessitent Oracle Enterprise Edition.

```
ALTER SESSION SET db_create_file_dest = '/rdsdbdata2/db';
CREATE TABLESPACE perf_tbs DATAFILE SIZE 10G;

ALTER TABLE employees
  MOVE TABLESPACE perf_tbs ONLINE;

ALTER INDEX employees_idx
  REBUILD ONLINE TABLESPACE perf_tbs;
```

Dans l'exemple suivant, vous créez un tablespace sur un volume à faible coût. Vous déplacez ensuite une partition de table vers votre volume de stockage à faible coût à l'aide d'une opération en ligne.

```
ALTER SESSION SET db_create_file_dest = '/rdsdbdata3/db';
CREATE TABLESPACE hist_tbs DATAFILE SIZE 10G;

ALTER TABLE orders
  MOVE PARTITION orders_2022
  TABLESPACE hist_tbs ONLINE;
```

Dans l'exemple suivant, vous interrogez les opérations longues des sessions actives.

```
SELECT sid,opname,sofar,totalwork,time_remaining,elapsed_seconds 
  FROM v$session_longops 
  WHERE time_remaining > 0;
```

Vous pouvez vérifier l'utilisation de vos tablespaces à l'aide de la requête suivante.

```
SELECT tablespace_name, used_percent
  FROM dba_tablespace_usage_metrics
  ORDER BY used_percent DESC;
```

## Gestion du stockage LOB à l'aide de volumes supplémentaires
<a name="Appendix.Oracle.CommonDBATasks.ManagingLargeLOBStorage"></a>

Votre base de données peut contenir des tables contenant des objets BLOB ou CLOB qui consomment beaucoup d'espace de stockage mais sont rarement consultés. Pour optimiser le stockage, vous pouvez déplacer ces segments LOB vers un tablespace sur un volume de stockage supplémentaire.

Dans l'exemple suivant, vous créez un tablespace pour les données LOB sur un volume à faible coût destiné aux données à accès restreint. Vous créez ensuite une table qui stocke les données sur ce volume.

```
ALTER SESSION SET db_create_file_dest = '/rdsdbdata3/db';
CREATE TABLESPACE lob_data DATAFILE SIZE 5G AUTOEXTEND ON NEXT 1G;

CREATE TABLE documents (
    doc_id NUMBER PRIMARY KEY,
    doc_date DATE,
    doc_content CLOB
) TABLESPACE user_data
LOB(doc_content) STORE AS (TABLESPACE lob_data);
```