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 Oracle transportable tablespaces untuk menyalin satu set tablespace dari database Oracle lokal ke instans untuk Oracle DB. RDS 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 menggunakan tablespace yang dapat diangkut dan RDSAmazon
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
Kami menyarankan Anda menggunakan ruang meja yang dapat diangkut saat Anda perlu memigrasikan satu atau lebih ruang meja besar dengan waktu henti minimum. RDS 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 UNIX variasi telah diuji.
Jika Anda menggunakan ruang meja yang dapat diangkut, Anda dapat mengangkut data menggunakan Amazon S3 atau Amazon: EFS
-
Saat Anda menggunakanEFS, cadangan Anda tetap berada di sistem EFS file selama impor. Anda dapat menghapus file sesudahnya. Dalam teknik ini, Anda tidak perlu menyediakan EBS penyimpanan untuk instans DB Anda. Untuk alasan ini, kami sarankan menggunakan Amazon EFS alih-alih S3. Untuk informasi selengkapnya, lihat Integrasi Amazon EFS.
-
Saat Anda menggunakan S3, Anda mengunduh RMAN cadangan ke EBS penyimpanan yang dilampirkan ke instans DB Anda. File tetap berada di EBS penyimpanan 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
Keterbatasan Oracle Database untuk ruang tabel yang dapat diangkut berlaku saat Anda menggunakan fitur ini untuk Oracle. RDS Untuk informasi selengkapnya, lihat Limitations on Transportable Tablespaces
-
Baik sumber maupun database target tidak dapat menggunakan Standard Edition 2 (SE2). Hanya mendukung Enterprise Edition.
-
Anda tidak dapat menggunakan basis data Oracle Database 11g sebagai sumber. Fitur ruang meja yang dapat diangkut RMAN lintas platform bergantung pada mekanisme RMAN transportasi, yang tidak didukung Oracle Database 11g.
-
Anda tidak dapat memigrasikan data dari instans RDS untuk Oracle DB menggunakan ruang tabel yang dapat diangkut. Anda hanya dapat menggunakan ruang tabel yang dapat diangkut untuk memigrasikan data ke instans RDS untuk Oracle DB.
-
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 mengangkut objek non-data seperti SQL paket PL/, 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 mengangkut tablespace ke instans RDS for Oracle DB 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 untuk Oracle mengonversi endianness secara otomatis. Untuk mempelajari cara menemukan platformIDs, 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.
-
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 RDS integrasi Amazon dengan mengikuti petunjuk di. Mengkonfigurasi IAM izin RDS untuk integrasi Oracle dengan Amazon S3
-
-
Jika Anda berencana untuk mentransfer file menggunakan AmazonEFS, pastikan Anda telah mengonfigurasi EFS sesuai dengan instruksi diIntegrasi 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 validIDs, 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 berbagi sistem EFS file Amazon, gunakan utilitas sistem operasi seperti
cp
untuk menyalin file cadangan danres.txt
file dari lokasi awal Anda 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, Anda menggunakan prosedur rdsadmin.rdsadmin_s3_tasks.download_from_s3
untuk mengunduh cadangan Anda ke instans Oracle RDS DB Anda.
Untuk mengunduh cadangan dari bucket Amazon S3
-
Mulailah SQL *Plus atau Oracle SQL Developer dan masuk ke instans Oracle RDS DB Anda.
-
Unduh cadangan dari bucket Amazon S3 ke instans DB target Anda dengan menggunakan prosedur RDS Amazon
rdsadmin.rdsadmin_s3_tasks.download_from_s3
ke 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 SQL klien Oracle dan masuk ke target RDS Anda untuk instans Oracle DB 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 direktoriDATA_PUMP_DIR
. Platform sumbernya adalah AIX Based Systems (64-bit), yang memiliki ID platform6
. 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 2: Ekspor metadata tablespace di host sumber Anda
- Langkah 3: (Hanya Amazon S3) Transfer file cadangan dan ekspor ke instans DB target
- Langkah 4: Impor tablespace pada instans DB target Anda
- Langkah 5: Impor metadata tablespace pada instans DB target Anda
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 tablespaces TBS1
, 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
adalah direktori bersama di AmazonEFS, lompat 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, Anda menggunakan prosedur rdsadmin.rdsadmin_s3_tasks.download_from_s3
untuk mengunduh cadangan dan membuang file ke instans Oracle DB AndaRDS. 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 bahwa snapshot yang valid telah dimulai sebelum Anda mengimpor metadata, RDS coba buat 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 SQL klien Oracle dan masuk ke target RDS Anda untuk instans Oracle DB 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 direktoriDATA_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 diangkut ke instans Oracle DB Anda RDS 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 Pompa Data ke instans DB RDS Oracle Anda
-
Mulai SQL klien Oracle Anda 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 isi BDUMP direktori dan kemudian query 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
-
Mulailah SQL *Plus atau SQL Pengembang 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 di
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;
-