Memindahkan data antara volume penyimpanan di RDS untuk Oracle - Layanan Basis Data Relasional Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memindahkan data antara volume penyimpanan di RDS untuk Oracle

Anda dapat memindahkan file data dan objek database antara volume penyimpanan primer dan tambahan Anda. Sebelum Anda memindahkan data, pertimbangkan hal-hal berikut:

  • Sumber dan volume target harus memiliki ruang kosong yang cukup.

  • Operasi pergerakan data dikonsumsi I/O pada kedua volume.

  • Pergerakan data yang besar dapat memengaruhi kinerja database.

  • Jika Anda memulihkan snapshot, memindahkan data antar volume penyimpanan mungkin lambat jika dipengaruhi oleh pemuatan lambat EBS.

Memindahkan file data antar volume dalam RDS untuk Oracle

Untuk memindahkan file data antar volume penyimpanan, gunakan prosedur rdsadmin.rdsadmin_util.move_datafile Amazon RDS. Perhatikan persyaratan berikut:

  • Anda harus menggunakan Oracle Enterprise Edition untuk menjalankan move_datafile prosedur.

  • Anda tidak dapat memindahkan tablespace SYSTEM danRDSADMIN.

Prosedur move_datafile memiliki parameter berikut.

Nama parameter Jenis data Diperlukan Deskripsi

p_data_file_id

number

Ya

ID file data yang akan dipindahkan.

p_location

varchar2

Ya

Volume penyimpanan tempat Anda ingin memindahkan file data.

Contoh berikut memindahkan tablespace dari volume default rdsdbdata ke volume rdsdbdata2 tambahan.

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

Memindahkan data tabel dan indeks antar volume dalam RDS untuk Oracle

Anda dapat mengoptimalkan penyimpanan database dengan membuat tablespace pada volume penyimpanan tambahan. Kemudian Anda dapat memindahkan objek seperti tabel, indeks, dan partisi ke tablespace ini menggunakan Oracle SQL standar. Pendekatan ini berharga untuk penyetelan kinerja ketika database Anda berisi data dengan pola akses yang berbeda. Misalnya, Anda dapat menyimpan data operasional yang sering diakses pada volume penyimpanan berkinerja tinggi sambil memindahkan data historis yang jarang diakses ke volume penyimpanan berbiaya lebih rendah.

Dalam contoh berikut, Anda membuat tablespace baru pada volume kinerja tinggi. rdsdbdata2 Kemudian Anda memindahkan tabel ke volume penyimpanan tambahan Anda saat tabel sedang online. Anda juga memindahkan indeks ke volume yang sama. Memindahkan tabel dan membangun kembali indeks saat online memerlukan 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;

Dalam contoh berikut, Anda membuat tablespace pada volume berbiaya rendah. Kemudian Anda memindahkan partisi tabel ke volume penyimpanan berbiaya rendah Anda menggunakan operasi 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;

Dalam contoh berikut, Anda melakukan kueri operasi panjang sesi aktif.

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

Anda dapat memeriksa penggunaan tablespaces Anda dengan kueri berikut.

SELECT tablespace_name, used_percent FROM dba_tablespace_usage_metrics ORDER BY used_percent DESC;

Mengelola penyimpanan LOB menggunakan volume tambahan

Database Anda mungkin berisi tabel dengan objek BLOB atau CLOB yang menggunakan penyimpanan besar tetapi jarang diakses. Untuk mengoptimalkan penyimpanan, Anda dapat memindahkan segmen LOB ini ke ruang meja pada volume penyimpanan tambahan.

Dalam contoh berikut, Anda membuat tablespace untuk data LOB pada volume berbiaya rendah yang ditujukan untuk data akses rendah. Kemudian Anda membuat tabel yang menyimpan data pada volume ini.

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);