Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Spostamento di dati tra volumi di storage in RDS per Oracle
È possibile spostare file di dati e oggetti di database tra i volumi di storage primari e aggiuntivi. Prima di spostare i dati, considera i seguenti punti:
I volumi di origine e di destinazione devono disporre di spazio libero sufficiente.
Le operazioni di spostamento dei dati I/O occupano entrambi i volumi.
I movimenti di dati di grandi dimensioni possono influire sulle prestazioni del database.
-
Se ripristini un'istantanea, lo spostamento dei dati tra i volumi di storage potrebbe essere lento se è influenzato dal lazy loading di EBS.
Argomenti
Spostamento di file di dati tra volumi in RDS per Oracle
Per spostare file di dati tra volumi di storage, utilizza la procedura rdsadmin.rdsadmin_util.move_datafile Amazon RDS. Si notino i requisiti seguenti:
-
È necessario utilizzare Oracle Enterprise Edition per eseguire la
move_datafileprocedura. -
Non è possibile spostare tablespace e
SYSTEM.RDSADMIN
La procedura move_datafile include i seguenti parametri.
| Nome del parametro | Tipo di dati | Richiesto | Descrizione |
|---|---|---|---|
|
|
numero |
Sì |
L'ID del file di dati da spostare. |
|
|
varchar2 |
Sì |
Il volume di archiviazione in cui si desidera spostare il file di dati. |
L'esempio seguente sposta una tablespace dal volume predefinito rdsdbdata al volume aggiuntivo. 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
Spostamento dei dati e degli indici delle tabelle tra i volumi in RDS for Oracle
È possibile ottimizzare l'archiviazione del database creando tablespace su volumi di archiviazione aggiuntivi. È quindi possibile spostare oggetti come tabelle, indici e partizioni in questi tablespace utilizzando lo standard Oracle SQL. Questo approccio è utile per ottimizzare le prestazioni quando il database contiene dati con modelli di accesso diversi. Ad esempio, è possibile archiviare i dati operativi a cui si accede di frequente su volumi di storage ad alte prestazioni spostando al contempo i dati storici a cui si accede raramente in volumi di storage a basso costo.
Nell'esempio seguente, si crea una nuova tablespace su un volume ad alte prestazioni. rdsdbdata2 Quindi sposti una tabella nel volume di archiviazione aggiuntivo mentre la tabella è online. Inoltre, sposti l'indice sullo stesso volume. Lo spostamento delle tabelle e la ricostruzione degli indici online richiedono 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;
Nell'esempio seguente, si crea una tablespace su un volume a basso costo. Quindi si sposta una partizione di tabella nel volume di archiviazione a basso costo utilizzando un'operazione online.
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;
Nell'esempio seguente, si interrogano le sessioni attive su operazioni di lunga durata.
SELECT sid,opname,sofar,totalwork,time_remaining,elapsed_seconds FROM v$session_longops WHERE time_remaining > 0;
È possibile verificare l'utilizzo dei tablespace con la seguente query.
SELECT tablespace_name, used_percent FROM dba_tablespace_usage_metrics ORDER BY used_percent DESC;
Gestione dello storage LOB utilizzando volumi aggiuntivi
Il database potrebbe contenere tabelle con oggetti BLOB o CLOB che consumano una notevole quantità di spazio di archiviazione ma a cui si accede raramente. Per ottimizzare l'archiviazione, è possibile riposizionare questi segmenti LOB in un tablespace su un volume di archiviazione aggiuntivo.
Nell'esempio seguente, si crea una tablespace per i dati LOB su un volume a basso costo destinato a dati a basso accesso. Quindi si crea una tabella che memorizza i dati su questo 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);