Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bermigrasi menggunakan tablespace yang dapat dipindahkan Oracle
Anda dapat menggunakan fitur tablespace yang dapat dipindahkan Oracle untuk menyalin satu set tablespace dari basis data Oracle on-premise ke instans DB RDS for Oracle. Pada tingkat fisik, Anda mentransfer file data sumber dan file metadata ke instans DB target menggunakan Amazon EFS atau Amazon S3. Fitur ruang meja yang dapat diangkut menggunakan paket. rdsadmin.rdsadmin_transport_util
Untuk sintaks dan semantik paket ini, lihat. Mengangkut tablespace
Untuk posting blog yang menjelaskan cara mengangkut tablespace, lihat Memigrasi Database Oracle untuk AWS menggunakan ruang meja yang dapat diangkut dan Amazon RDS for Oracle
Topik
Ikhtisar tablespace Oracle yang dapat dipindahkan
Set tablespace yang dapat dipindahkan terdiri dari file data untuk set tablespace yang dipindahkan dan file dump ekspor yang berisi metadata tablespace. Dalam solusi migrasi fisik seperti tablespace yang dapat dipindahkan, Anda mentransfer file fisik: file data, file konfigurasi, dan file dump Data Pump.
Topik
Kelebihan dan kekurangan tablespace yang dapat dipindahkan
Penggunaan tablespace yang dapat dipindahkan disarankan saat Anda perlu memigrasikan satu atau beberapa tablespace besar ke RDS dengan waktu henti minimum. Dibanding migrasi logis, tablespace yang dapat dipindahkan memiliki kelebihan sebagai berikut:
-
Waktu henti lebih rendah dibandingkan solusi migrasi Oracle lainnya.
-
Karena fitur tablespace yang dapat dipindahkan hanya menyalin file fisik, fitur ini mencegah kesalahan integritas data dan kerusakan logis yang dapat terjadi pada migrasi logis.
-
Tidak perlu lisensi tambahan.
-
Anda bisa memigrasikan set tablespace di berbagai platform dan jenis endian, misalnya, dari platform Oracle Solaris ke Linux. Namun, pemindahan tablespace ke dan dari server Windows tidak didukung.
catatan
Linux sepenuhnya teruji dan didukung. Tidak semua variasi UNIX telah diuji.
Jika Anda menggunakan tablespace yang dapat dipindahkan, Anda dapat memindahkan data menggunakan Amazon S3 atau Amazon EFS:
-
Saat menggunakan EFS, cadangan Anda tetap berada di sistem file EFS selama impor. Anda dapat menghapus file sesudahnya. Dalam teknik ini, Anda tidak perlu menyediakan penyimpanan EBS untuk instans DB. Karena alasan ini, sebaiknya gunakan Amazon EFS sebagai ganti S3. Untuk informasi selengkapnya, lihat Integrasi Amazon EFS.
-
Ketika menggunakan S3, Anda mengunduh cadangan RMAN ke penyimpanan EBS yang terhubung ke instans DB Anda. File tetap berada di penyimpanan EBS Anda selama impor. Setelah impor, Anda dapat mengosongkan ruang ini, yang tetap dialokasikan untuk instans DB Anda.
Kekurangan utama dari tablespace yang dapat dipindahkan adalah perlunya pengetahuan yang cukup mendalam tentang Oracle Database. Untuk informasi selengkapnya, lihat Transporting Tablespaces Between Databases
Batasan tablespace yang dapat dipindahkan
Batasan Oracle Database untuk tablespace yang dapat dipindahkan berlaku ketika Anda menggunakan fitur ini di RDS for Oracle. Untuk informasi selengkapnya, lihat Limitations on Transportable Tablespaces
-
Baik sumber maupun basis data target tidak dapat menggunakan Standard Edition 2 (SE2). Hanya mendukung Enterprise Edition.
-
Anda tidak dapat menggunakan basis data Oracle Database 11g sebagai sumber. Fitur tablespace lintas platform yang dapat dipindahkan RMAN bergantung pada mekanisme pemindahan RMAN, yang tidak didukung oleh Oracle Database 11g.
-
Anda tidak dapat memigrasikan data dari instans DB RDS for Oracle menggunakan tablespace yang dapat dipindahkan. Anda hanya dapat menggunakan tablespace yang dapat dipindahkan untuk memigrasikan data ke instans DB RDS for Oracle.
-
Tidak mendukung sistem operasi Windows.
-
Anda tidak dapat memindahkan tablespace ke dalam basis data pada tingkat rilis yang lebih rendah. Basis data target harus berada pada tingkat rilis yang sama atau lebih baru dengan basis data sumber. Sebagai contoh, Anda tidak dapat memindahkan tablespace dari Oracle Database 21c ke Oracle Database 19c.
-
Anda tidak dapat memindahkan tablespace administratif seperti
SYSTEM
danSYSAUX
. -
Anda tidak dapat memindahkan objek non-data seperti paket PL/SQL, kelas Java, tampilan, pemicu, urutan, pengguna, peran, dan tabel sementara. Untuk memindahkan objek non-data, buat secara manual atau gunakan ekspor dan impor metadata Data Pump. Untuk informasi selengkapnya, lihat My Oracle Support Note 1454872.1
. -
Anda tidak dapat memindahkan tablespace terenkripsi atau menggunakan kolom terenkripsi.
-
Jika Anda mentransfer file menggunakan Amazon S3, ukuran file maksimum yang didukung adalah 5 TiB.
-
Jika basis data sumber menggunakan opsi Oracle seperti Spatial, Anda hanya dapat memindahkan tablespace jika basis data target mengonfigurasikan opsi yang sama.
-
Anda tidak dapat memindahkan tablespace ke instans DB RDS for Oracle dalam konfigurasi replika Oracle. Sebagai solusinya, Anda dapat menghapus semua replika, memindahkan tablespace, lalu membuat ulang replika.
Prasyarat untuk tablespace yang dapat dipindahkan
Sebelum memulai, selesaikan tugas berikut:
-
Tinjau persyaratan untuk tablespace yang dapat dipindahkan yang dijelaskan dalam dokumen berikut di Dukungan Oracle Saya:
-
Rencanakan konversi endian. Jika Anda menentukan ID platform sumber, RDS for Oracle akan otomatis mengonversi endian. Untuk mempelajari cara menemukan platform IDs, lihat Data Guard Support for Heterogenous Primary and Physical Standbys in Same Data Guard Configuration (Doc ID
413484.1). -
Pastikan fitur tablespace yang dapat dipindahkan telah aktif pada instans DB target Anda. Fitur ini hanya diaktifkan jika tidak ada kesalahan
ORA-20304
saat Anda menjalankan kueri berikut:SELECT * FROM TABLE(rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files);
Jika fitur tablespace yang dapat dipindahkan tidak diaktifkan, boot ulang instans DB Anda. Untuk informasi selengkapnya, lihat Mem-boot ulang instans DB.
-
Pastikan file zona waktu sama di basis data sumber dan target.
-
Pastikan bahwa set karakter database pada basis data sumber dan target memenuhi salah satu dari persyaratan berikut:
-
Set karakternya sama.
-
Set karakter kompatibel. Untuk daftar persyaratan kompatibilitas, lihat Batasan Umum tentang Mengangkut Data dalam dokumentasi
Oracle Database.
-
-
Jika Anda berencana untuk mentransfer file menggunakan Amazon S3, lakukan hal berikut:
-
Pastikan bucket Amazon S3 tersedia untuk transfer file, dan bucket Amazon S3 berada di Wilayah yang AWS sama dengan instans DB Anda. Untuk mengetahui petunjuknya, lihat Membuat bucket di Panduan Memulai Amazon Simple Storage Service.
-
Siapkan bucket Amazon S3 untuk integrasi Amazon RDS dengan mengikuti petunjuk di Mengonfigurasi izin IAM untuk integrasi RDS for Oracle dengan Amazon S3.
-
-
Jika Anda berencana untuk mentransfer file menggunakan Amazon EFS, pastikan EFS telah dikonfigurasi sesuai dengan petunjuk di Integrasi Amazon EFS.
-
Sangat disarankan untuk mengaktifkan pencadangan otomatis di instans DB target Anda. Karena langkah impor metadata berpotensi gagal, pastikan instans DB dapat dipulihkan ke kondisi sebelum impor, sehingga tablespace tidak perlu dicadangkan, ditransfer, dan diimpor kembali.
Tahap 1: Siapkan host sumber
Pada langkah ini, salin skrip tablespace pemindahan yang disediakan oleh Dukungan My Oracle dan siapkan file konfigurasi yang diperlukan. Pada langkah berikut, host sumber menjalankan basis data yang berisi tablespace yang akan dipindahkan ke instans target.
Untuk menyiapkan host sumber
-
Masuk ke host sumber sebagai pemilik beranda Oracle.
-
Pastikan variabel lingkungan
ORACLE_HOME
danORACLE_SID
mengarah ke basis data sumber Anda. -
Masuk ke basis data sebagai administrator, dan pastikan versi zona waktu, set karakter DB, dan set karakter nasional sama dengan yang ada di basis data target.
SELECT * FROM V$TIMEZONE_FILE; SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER IN ('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');
-
Siapkan utilitas tablespace yang dapat dipindahkan seperti yang dijelaskan di Oracle Support note 2471245.1
. Penyiapan termasuk mengedit file
xtt.properties
di host sumber Anda. Sampel filextt.properties
berikut menetapkan pencadangan tiga tablespace di dalam direktori/dsk1/backups
. Ketiganya adalah tablespace yang akan Anda pindahkan ke instans DB target. Sampel tersebut juga menentukan ID platform sumber untuk mengonversi endian secara otomatis.catatan
Untuk platform yang valid IDs, lihat Dukungan Data Guard untuk Siaga Primer dan Fisik Heterogen dalam Konfigurasi Penjaga Data yang Sama (ID Dokumen
413484.1). #linux system platformid=
13
#list of tablespaces to transport tablespaces=TBS1,TBS2,TBS3
#location where backup will be generated src_scratch_location=/dsk1/backups
#RMAN command for performing backup usermantransport=1
Tahap 2: Siapkan pencadangan tablespace penuh
Pada tahap ini, Anda mencadangkan tablespace untuk pertama kalinya, mentransfer cadangan ke host target, lalu memulihkannya menggunakan prosedur rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces
. Setelah tahap ini selesai, cadangan tablespace awal berada di instans DB target Anda dan dapat diperbarui dengan cadangan inkremental.
Topik
Langkah 1: Cadangkan tablespace pada host sumber
Pada langkah ini, gunakan skrip xttdriver.pl
untuk mencadangkan tablespace Anda secara keseluruhan. Output xttdriver.pl
disimpan dalam variabel lingkungan TMPDIR
.
Untuk mencadangkan tablespace
-
Jika tablespace Anda dalam mode hanya baca, masuk ke basis data sumber Anda sebagai pengguna dengan hak akses
ALTER TABLESPACE
, dan ubah modenya menjadi baca/tulis. Jika tidak, lewati ke langkah berikutnya.Contoh berikut menempatkan
tbs1
,tbs2
, dantbs3
dalam mode baca/tulis.ALTER TABLESPACE tbs1 READ WRITE; ALTER TABLESPACE tbs2 READ WRITE; ALTER TABLESPACE tbs3 READ WRITE;
-
Cadangkan tablespace Anda menggunakan skrip
xttdriver.pl
. Secara opsional, Anda dapat menentukan--debug
untuk menjalankan skrip dalam mode debug.export TMPDIR=
location_of_log_files
cdlocation_of_xttdriver.pl
$ORACLE_HOME/perl/bin/perl xttdriver.pl --backup
Langkah 2: Transfer file cadangan ke instans DB target Anda
Pada langkah ini, salin file cadangan dan konfigurasi dari lokasi awal ke instans DB target. Pilih salah satu opsi berikut:
-
Jika host sumber dan target menggunakan sistem file Amazon EFS yang sama, gunakan utilitas sistem operasi seperti
cp
untuk menyalin file cadangan dan fileres.txt
dari lokasi awal ke direktori bersama. Lalu, langsung ke Langkah 3: Impor tablespace pada instans DB target Anda. -
Jika Anda perlu melakukan pencadangan ke bucket Amazon S3, selesaikan langkah berikut.

Langkah 2.2: Unggah cadangan ke bucket Amazon S3 Anda
Unggah cadangan dan res.txt
file Anda dari direktori awal ke bucket Amazon S3. Untuk informasi selengkapnya, lihat Mengunggah objek di Panduan Pengguna Amazon Simple Storage Service.
Langkah 2.3: Unduh cadangan dari bucket Amazon S3 ke instans DB target
Pada langkah ini, gunakan prosedur rdsadmin.rdsadmin_s3_tasks.download_from_s3
untuk mengunduh cadangan ke instans DB RDS for Oracle.
Untuk mengunduh cadangan dari bucket Amazon S3
-
Mulai SQL*Plus atau Oracle SQL Developer dan masuk ke instans DB RDS for Oracle.
-
Unduh cadangan dari bucket Amazon S3 ke instans DB target Anda menggunakan prosedur Amazon RDS
rdsadmin.rdsadmin_s3_tasks.download_from_s3
untuk d. Contoh berikut ini mengunduh semua file dari bucket Amazon S3 bernama
ke direktoriamzn-s3-demo-bucket
.DATA_PUMP_DIR
EXEC UTL_FILE.FREMOVE ('
DATA_PUMP_DIR
', 'res.txt'); SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3( p_bucket_name => 'amzn-s3-demo-bucket
', p_directory_name => 'DATA_PUMP_DIR
') AS TASK_ID FROM DUAL;Pernyataan
SELECT
mengembalikan ID tugas dalam jenis dataVARCHAR2
. Untuk informasi selengkapnya, lihat Mengunduh file dari bucket Amazon S3 ke instans DB Oracle.
Langkah 3: Impor tablespace pada instans DB target Anda
Untuk mengembalikan tablespace Anda ke instans DB target Anda, gunakan prosedurrdsadmin.rdsadmin_transport_util.import_xtts_tablespaces
. Prosedur ini secara otomatis mengonversi file data ke format endian yang benar.
Jika Anda mengimpor dari platform selain Linux, tentukan platform sumber menggunakan parameter p_platform_id
saat Anda meneleponimport_xtts_tablespaces
. Pastikan ID platform yang Anda tentukan cocok dengan yang ditentukan dalam xtt.properties
file diLangkah 2: Ekspor metadata tablespace di host sumber Anda.
Impor tablespace pada instans DB target Anda
-
Mulai klien Oracle SQL dan masuk ke instans DB RDS for Oracle target Anda sebagai pengguna utama.
-
Jalankan prosedur
rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces
, tentukan tablespace yang akan diimpor dan direktori yang berisi cadangan.Contoh berikut mengimpor tablespaces
TBS1
,TBS2
, danTBS3
dari direktori.DATA_PUMP_DIR
Platform sumbernya adalah Sistem berbasis AIX (64-bit), yang memiliki ID platform.6
Anda dapat menemukan platform IDs dengan menanyakanV$TRANSPORTABLE_PLATFORM
.VAR task_id CLOB BEGIN :task_id:=rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces( '
TBS1,TBS2,TBS3
', 'DATA_PUMP_DIR
', p_platform_id => 6); END; / PRINT task_id -
(Opsional) Pantau kemajuan dengan membuat kueri tabel
rdsadmin.rds_xtts_operation_info
. Kolomxtts_operation_state
menampilkan nilaiEXECUTING
,COMPLETED
, atauFAILED
.SELECT * FROM rdsadmin.rds_xtts_operation_info;
catatan
Untuk operasi berdurasi panjang, Anda juga dapat membuat kueri
V$SESSION_LONGOPS
,V$RMAN_STATUS
, danV$RMAN_OUTPUT
. -
Lihat log impor yang telah selesai menggunakan ID tugas dari langkah sebelumnya.
SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||'&task_id'||'.log'));
Pastikan impor sudah berhasil sebelum melanjutkan ke langkah berikutnya.
Tahap 3: Buat dan transfer cadangan inkremental
Pada tahap ini, buat dan transfer cadangan inkremental secara berkala saat basis data sumber aktif. Teknik ini mengurangi ukuran pencadangan akhir tablespace Anda. Jika Anda mengambil beberapa cadangan inkremental, Anda harus menyalin file res.txt
setelah pencadangan inkremental terakhir sebelum menerapkannya pada instans target.
Langkahnya sama seperti pada Tahap 2: Siapkan pencadangan tablespace penuh, kecuali langkah impor yang sifatnya opsional.
Tahap 4: Pindahkan tablespace
Pada tahap ini, cadangkan tablespace hanya baca dan ekspor metadata Data Pump, transfer file ini ke host target, dan impor tablespace dan metadata.
Topik
Langkah 1: Cadangkan tablespace hanya baca Anda
Langkah ini sama dengan Langkah 1: Cadangkan tablespace pada host sumber, dengan satu perbedaan utama: tablespace Anda diubah ke mode hanya baca sebelum dicadangkan untuk terakhir kalinya.
Contoh berikut menempatkan tbs1
, tbs2
, dan tbs3
dalam mode hanya baca.
ALTER TABLESPACE tbs1 READ ONLY; ALTER TABLESPACE tbs2 READ ONLY; ALTER TABLESPACE tbs3 READ ONLY;
Langkah 2: Ekspor metadata tablespace di host sumber Anda
Ekspor metadata tablespace dengan menjalankan utilitas expdb
di host sumber Anda. Contoh berikut mengekspor tablespacesTBS1
,TBS2
, dan TBS3
untuk membuang file xttdump.dmp
dalam direktori. DATA_PUMP_DIR
expdp
username
/pwd
\ dumpfile=xttdump.dmp
\ directory=DATA_PUMP_DIR
\ statistics=NONE \ transport_tablespaces=TBS1
,TBS2
,TBS3
\ transport_full_check=y \ logfile=tts_export.log
Jika DATA_PUMP_DIR
merupakan direktori bersama di Amazon EFS, lewati keLangkah 4: Impor tablespace pada instans DB target Anda.
Langkah 3: (Hanya Amazon S3) Transfer file cadangan dan ekspor ke instans DB target
Jika Anda menggunakan Amazon S3 untuk melakukan pencadangan tablespace dan file ekspor Data Pump, selesaikan langkah berikut.
Langkah 3.1: Unggah cadangan dan file dump dari host sumber ke bucket Amazon S3 Anda
Unggah cadangan dan file dump dari host sumber ke bucket Amazon S3 Anda. Untuk informasi selengkapnya, lihat Mengunggah objek di Panduan Pengguna Amazon Simple Storage Service.
Langkah 3.2: Unduh cadangan dan file dump dari bucket Amazon S3 ke instans DB target Anda
Pada langkah ini, gunakan prosedur rdsadmin.rdsadmin_s3_tasks.download_from_s3
untuk mengunduh cadangan dan file dump ke instans DB RDS for Oracle. Ikuti langkah-langkahnya di Langkah 2.3: Unduh cadangan dari bucket Amazon S3 ke instans DB target.
Langkah 4: Impor tablespace pada instans DB target Anda
Gunakan prosedur rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces
untuk memulihkan tablespace. Untuk sintaks dan semantik prosedur ini, lihat Mengimpor tablespace yang diangkut ke instans DB Anda
penting
Setelah impor akhir tablespace selesai, kemudian impor metadata Oracle Data Pump. Jika impor gagal, instans DB harus dikembalikan ke kondisi sebelum terjadi kegagalan. Oleh karena itu, sebaiknya buat snapshot DB untuk instans DB Anda sesuai petunjuk di Membuat snapshot DB untuk instans DB AZ tunggal untuk Amazon RDS. Snapshot akan berisi semua tablespace yang diimpor, jadi jika impor gagal, Anda tidak perlu mengulangi proses pencadangan dan impor.
Jika instans DB target Anda mengaktifkan pencadangan otomatis, dan Amazon RDS tidak mendeteksi adanya snapshot yang valid sebelum impor metadata dilakukan, RDS akan mencoba membuat snapshot. Bergantung pada aktivitas instans Anda, snapshot ini kemungkinan dapat berhasil atau gagal. Jika tidak ada snapshot yang valid atau snapshot tidak dapat dimulai, maka impor metadata akan gagal.
Impor tablespace pada instans DB target Anda
-
Mulai klien Oracle SQL dan masuk ke instans DB RDS for Oracle target Anda sebagai pengguna utama.
-
Jalankan prosedur
rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces
, tentukan tablespace yang akan diimpor dan direktori yang berisi cadangan.Contoh berikut mengimpor tablespaces
TBS1
,TBS2
, danTBS3
dari direktori.DATA_PUMP_DIR
BEGIN :task_id:=rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces('
TBS1,TBS2,TBS3
','DATA_PUMP_DIR
'); END; / PRINT task_id -
(Opsional) Pantau kemajuan dengan membuat kueri tabel
rdsadmin.rds_xtts_operation_info
. Kolomxtts_operation_state
menampilkan nilaiEXECUTING
,COMPLETED
, atauFAILED
.SELECT * FROM rdsadmin.rds_xtts_operation_info;
catatan
Untuk operasi berdurasi panjang, Anda juga dapat membuat kueri
V$SESSION_LONGOPS
,V$RMAN_STATUS
, danV$RMAN_OUTPUT
. -
Lihat log impor yang telah selesai menggunakan ID tugas dari langkah sebelumnya.
SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||'&task_id'||'.log'));
Pastikan impor sudah berhasil sebelum melanjutkan ke langkah berikutnya.
-
Ambil snapshot DB manual dengan mengikuti petunjuk di Membuat snapshot DB untuk instans DB AZ tunggal untuk Amazon RDS.
Langkah 5: Impor metadata tablespace pada instans DB target Anda
Pada langkah ini, Anda mengimpor metadata tablespace yang dapat dipindahkan ke dalam instans DB RDS for Oracle menggunakan prosedur rdsadmin.rdsadmin_transport_util.import_xtts_metadata
. Untuk sintaks dan semantik prosedur ini, lihat Mengimpor metadata tablespace yang dapat diangkut ke instans DB Anda. Selama operasi, status impor ditunjukkan pada tabel rdsadmin.rds_xtts_operation_info
.
penting
Sebelum mengimpor metadata, sangat disarankan untuk memastikan bahwa snapshot DB telah berhasil dibuat setelah Anda mengimpor tablespace. Jika langkah impor gagal, pulihkan instans DB, atasi kesalahan impor, lalu coba impor kembali.
Impor metadata Data Pump ke dalam instans DB RDS for Oracle
-
Mulai klien Oracle SQL dan masuk ke instans DB target Anda sebagai pengguna utama.
-
Buat pengguna yang memiliki skema di tablespace yang dipindahkan, jika pengguna tersebut belum ada.
CREATE USER
tbs_owner
IDENTIFIED BYpassword
; -
Impor metadata, tentukan nama file dump dan lokasi direktorinya.
BEGIN rdsadmin.rdsadmin_transport_util.import_xtts_metadata('
xttdump.dmp
','DATA_PUMP_DIR
'); END; / -
(Opsional) Kueri tabel riwayat tablespace yang dapat dipindahkan untuk melihat status impor metadata.
SELECT * FROM rdsadmin.rds_xtts_operation_info;
Setelah operasi selesai, tablespace Anda berada dalam mode hanya baca.
-
(Opsional) Lihat file log.
Contoh berikut mencantumkan konten direktori BDUMP, kemudian membuat kueri log impor.
SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => 'BDUMP')); SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file( p_directory => 'BDUMP', p_filename => 'rds-xtts-import_xtts_metadata-2023-05-22.01-52-35.560858000.log'));
Tahap 5: Validasi tablespace yang dipindahkan
Pada langkah opsional ini, validasi tablespace yang dipindahkan menggunakan prosedur rdsadmin.rdsadmin_rman_util.validate_tablespace
, lalu ubah tablespace ke mode baca/tulis.
Untuk memvalidasi data yang dipindahkan
-
Mulai SQL*Plus atau SQL Developer dan masuk ke instans DB target Anda sebagai pengguna utama.
-
Validasi tablespace menggunakan prosedur
rdsadmin.rdsadmin_rman_util.validate_tablespace
.SET SERVEROUTPUT ON BEGIN rdsadmin.rdsadmin_rman_util.validate_tablespace( p_tablespace_name => '
TBS1
', p_validation_type => 'PHYSICAL+LOGICAL', p_rman_to_dbms_output => TRUE); rdsadmin.rdsadmin_rman_util.validate_tablespace( p_tablespace_name => 'TBS2
', p_validation_type => 'PHYSICAL+LOGICAL', p_rman_to_dbms_output => TRUE); rdsadmin.rdsadmin_rman_util.validate_tablespace( p_tablespace_name => 'TBS3
', p_validation_type => 'PHYSICAL+LOGICAL', p_rman_to_dbms_output => TRUE); END; / -
Posisikan tablespace Anda ke dalam mode baca/tulis.
ALTER TABLESPACE
TBS1
READ WRITE; ALTER TABLESPACETBS2
READ WRITE; ALTER TABLESPACETBS3
READ WRITE;
Tahap 6: Bersihkan file sisa
Dalam langkah opsional ini, hapus file yang tidak dibutuhkan. Gunakan prosedur rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files
untuk membuat daftar file data yang tidak memiliki induk setelah impor tablespace, lalu gunakan prosedur rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files
untuk menghapusnya. Untuk sintaks dan semantik prosedur ini, lihat Mencantumkan file tanpa induk setelah impor tablespace dan Menghapus file data tanpa induk setelah impor tablespace.
Untuk membersihkan file sisa
-
Hapus cadangan lama
DATA_PUMP_DIR
sebagai berikut:-
Buat daftar file cadangan dengan menjalankan
rdsadmin.rdsadmin_file_util.listdir
.SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => '
DATA_PUMP_DIR
')); -
Hapus cadangan satu per satu dengan memanggil
UTL_FILE.FREMOVE
.EXEC UTL_FILE.FREMOVE ('
DATA_PUMP_DIR
', 'backup_filename
');
-
-
Jika Anda mengimpor tablespace tetapi tidak mengimpor metadatanya, Anda dapat menghapus file data tanpa induk sebagai berikut:
-
Buat daftar file data tanpa induk yang perlu dihapus. Contoh berikut menjalankan prosedur
rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files
.SQL> SELECT * FROM TABLE(rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files); FILENAME FILESIZE -------------- --------- datafile_7.dbf 104865792 datafile_8.dbf 104865792
-
Hapus file tanpa induk dengan menjalankan prosedur
rdsadmin.rdsadmin_transport_util.cleanup_incomplete_xtts_import
.BEGIN rdsadmin.rdsadmin_transport_util.cleanup_incomplete_xtts_import('
DATA_PUMP_DIR
'); END; /Operasi pembersihan menghasilkan file log yang menggunakan format nama
rds-xtts-delete_xtts_orphaned_files-
dalam direktoriYYYY-MM-DD.HH24-MI-SS.FF
.logBDUMP
. -
Baca file log yang dihasilkan pada langkah sebelumnya. Contoh berikut membaca log
rds-xtts-delete_xtts_orphaned_files-
.2023-06-01.09-33-11.868894000
.logSELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file( p_directory => 'BDUMP', p_filename => 'rds-xtts-delete_xtts_orphaned_files-
2023-06-01.09-33-11.868894000
.log')); TEXT -------------------------------------------------------------------------------- orphan transported datafile datafile_7.dbf deleted. orphan transported datafile datafile_8.dbf deleted.
-
-
Jika Anda mengimpor tablespace beserta metadatanya, tetapi terjadi kesalahan kompatibilitas atau masalah Oracle Data Pump lainnya, bersihkan file data yang dipindahkan sebagian sebagai berikut:
-
Buat daftar tablespace yang berisi file data yang dipindahkan sebagian dengan kueri
DBA_TABLESPACES
.SQL> SELECT TABLESPACE_NAME FROM DBA_TABLESPACES WHERE PLUGGED_IN='YES'; TABLESPACE_NAME -------------------------------------------------------------------------------- TBS_3
-
Hapus tabelspace dan file data yang dipindahkan sebagian.
DROP TABLESPACE
TBS_3
INCLUDING CONTENTS AND DATAFILES;
-