Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verschieben von Daten zwischen Speichervolumes in RDS für Oracle
Sie können Datendateien und Datenbankobjekte zwischen Ihren primären und zusätzlichen Speichervolumes verschieben. Bevor Sie Daten verschieben, sollten Sie die folgenden Punkte berücksichtigen:
Das Quell- und das Zielvolume müssen über ausreichend freien Speicherplatz verfügen.
Datenverschiebungen I/O beanspruchen beide Volumes.
Große Datenbewegungen können sich auf die Datenbankleistung auswirken.
-
Wenn Sie einen Snapshot wiederherstellen, kann das Verschieben von Daten zwischen Speichervolumes langsam sein, wenn dies durch verzögertes EBS-Laden beeinträchtigt wird.
Themen
Verschieben von Datendateien zwischen Volumes in RDS für Oracle
Verwenden Sie das Amazon RDS-Verfahren, um Datendateien zwischen Speichervolumes zu verschiebenrdsadmin.rdsadmin_util.move_datafile. Beachten Sie die folgenden Voraussetzungen:
-
Sie müssen Oracle Enterprise Edition verwenden, um das
move_datafileVerfahren auszuführen. -
Sie können Tablespace
SYSTEMundRDSADMINnicht verschieben.
Die Prozedur move_datafile hat die folgenden Parameter.
| Parametername | Datentyp | Erforderlich | Beschreibung |
|---|---|---|---|
|
|
Zahl |
Ja |
Die ID der Datendatei, die verschoben werden soll. |
|
|
varchar2 |
Ja |
Das Speichervolume, auf das Sie die Datendatei verschieben möchten. |
Im folgenden Beispiel wird ein Tablespace vom Standardvolume rdsdbdata auf das zusätzliche Volume rdsdbdata2 verschoben.
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
Verschieben von Tabellendaten und Indizes zwischen Volumes in RDS for Oracle
Sie können den Datenbankspeicher optimieren, indem Sie Tablespaces auf zusätzlichen Speichervolumes erstellen. Anschließend können Sie Objekte wie Tabellen, Indizes und Partitionen mithilfe von Oracle-Standard-SQL in diese Tablespaces verschieben. Dieser Ansatz ist nützlich für die Leistungsoptimierung, wenn Ihre Datenbank Daten mit unterschiedlichen Zugriffsmustern enthält. Sie könnten beispielsweise häufig abgerufene Betriebsdaten auf Hochleistungsspeichervolumes speichern und gleichzeitig historische Daten, auf die selten zugegriffen wird, auf kostengünstigere Speichervolumes verschieben.
Im folgenden Beispiel erstellen Sie einen neuen Tablespace auf einem Hochleistungsvolume. rdsdbdata2 Anschließend verschieben Sie eine Tabelle auf Ihr zusätzliches Speichervolume, solange die Tabelle online ist. Außerdem verschieben Sie den Index auf dasselbe Volume. Für das Verschieben von Tabellen und das Neuerstellen von Indizes, während Sie online sind, ist Oracle Enterprise Edition erforderlich.
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;
Im folgenden Beispiel erstellen Sie einen Tablespace auf einem kostengünstigen Volume. Anschließend verschieben Sie mithilfe eines Online-Vorgangs eine Tabellenpartition auf Ihr kostengünstiges Speichervolume.
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;
Im folgenden Beispiel fragen Sie aktive Sitzungen und lange Operationen ab.
SELECT sid,opname,sofar,totalwork,time_remaining,elapsed_seconds FROM v$session_longops WHERE time_remaining > 0;
Sie können die Nutzung Ihrer Tablespaces mit der folgenden Abfrage überprüfen.
SELECT tablespace_name, used_percent FROM dba_tablespace_usage_metrics ORDER BY used_percent DESC;
Verwaltung von LOB-Speicher mithilfe zusätzlicher Volumes
Ihre Datenbank enthält möglicherweise Tabellen mit BLOB- oder CLOB-Objekten, die viel Speicherplatz beanspruchen, auf die jedoch selten zugegriffen wird. Um den Speicher zu optimieren, können Sie diese LOB-Segmente in einen Tablespace auf einem zusätzlichen Speichervolume verlagern.
Im folgenden Beispiel erstellen Sie einen Tablespace für LOB-Daten auf einem kostengünstigen Volume, das für Daten mit geringem Zugriff vorgesehen ist. Anschließend erstellen Sie eine Tabelle, in der Daten auf diesem Volume gespeichert werden.
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);