本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
可傳輸的資料表空間
使用 Amazon RDS 套件 rdsadmin.rdsadmin_transport_util
,將一組資料表空間從內部部署 Oracle 資料庫複製到 RDS for Oracle 資料庫執行個體。在實體層級,可傳輸資料表空間功能可將來源資料檔案與中繼資料檔案逐步複製到您的目標執行個體。您可以使用 Amazon EFS 或 Amazon S3 傳輸檔案。如需詳細資訊,請參閱 使用 Oracle 可傳輸資料表空間進行移轉。
將傳輸資料表空間匯入資料庫執行個體
使用程序 rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces
,從來源資料庫執行個體還原先前匯出的資料表空間。在傳輸階段中,您會備份唯讀資料表空間並匯出 Data Pump 中繼資料、將這些檔案傳輸到目標資料庫執行個體,然後匯入資料表空間。如需詳細資訊,請參閱 階段 4:傳輸資料表空間。
語法
FUNCTION import_xtts_tablespaces( p_tablespace_list IN CLOB, p_directory_name IN VARCHAR2, p_platform_id IN NUMBER DEFAULT 13, p_parallel IN INTEGER DEFAULT 0) RETURN VARCHAR2;
參數
參數名稱 | 資料類型 | 預設 | 必要 | 描述 |
---|---|---|---|---|
|
|
— |
是 |
要匯入的資料表空間清單。 |
|
|
— |
是 |
包含資料表空間備份的目錄。 |
|
|
|
否 |
提供與備份階段中指定平台 ID 相符的 ID。若要尋找平台列表,請查詢 |
|
|
|
否 |
平行處理的程度。根據預設,會停用平行處理。 |
範例
以下範例從目錄 DATA_PUMP_DIR
匯入資料表 TBS1
、TBS2
和 TBS3
。來源平台是以 AIX 為基礎的系統 (64 位元),其平台識別碼為。6
您可以通過查詢找到平台 ID V$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
將可傳輸資料表空間中繼資料匯入您的資料庫執行個體
使用 rdsadmin.rdsadmin_transport_util.import_xtts_metadata
程序將可傳輸的資料表空間中繼資料匯入 RDS for Oracle 資料庫執行個體。在操作期間,資料表 rdsadmin.rds_xtts_operation_info
會顯示中繼資料匯入的狀態。如需詳細資訊,請參閱 步驟 5:匯入目標資料庫執行個體上的資料表空間中繼資料。
語法
PROCEDURE import_xtts_metadata( p_datapump_metadata_file IN SYS.DBA_DATA_FILES.FILE_NAME%TYPE, p_directory_name IN VARCHAR2, p_exclude_stats IN BOOLEAN DEFAULT FALSE, p_remap_tablespace_list IN CLOB DEFAULT NULL, p_remap_user_list IN CLOB DEFAULT NULL);
參數
參數名稱 | 資料類型 | 預設 | 必要 | 描述 |
---|---|---|---|---|
|
|
— |
是 |
包含可傳輸資料表空間描述資料的 Oracle 資料汲取檔案名稱。 |
|
|
— |
是 |
包含資料汲取檔案的目錄名稱。 |
|
|
|
否 |
指示是否排除統計資料的標誌。 |
|
|
NULL |
否 |
在中繼資料匯入期間要重新對應的資料表空間清單。使用 |
|
|
NULL |
否 |
在中繼資料匯入期間要重新對應的資料表空間清單。使用 |
範例
此範例會從檔案匯入資料表空間中繼資料 xttdump.dmp
,它位於目錄中 DATA_PUMP_DIR
。
BEGIN rdsadmin.rdsadmin_transport_util.import_xtts_metadata('
xttdump.dmp
','DATA_PUMP_DIR
'); END; /
在資料表空間匯入後列出遺棄的檔案
使用 rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files
列出在資料表空間匯入之後遺棄的資料檔的程序。識別出資料文件後,您可以通過呼叫 rdsadmin.rdsadmin_transport_util.cleanup_incomplete_xtts_import
將其刪除。
語法
FUNCTION list_xtts_orphan_files RETURN xtts_orphan_files_list_t PIPELINED;
範例
下列範例執行 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
在資料表空間匯入後刪除遺棄的資料檔案
使用 rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files
程序刪除在資料表空間匯入之後遺棄的資料檔案。執行此命令會產生使用 BDUMP
目錄中名稱格式的日誌檔 rds-xtts-delete_xtts_orphaned_files-
。使用 YYYY-MM-DD.HH24-MI-SS.FF
.logrdsadmin.rdsadmin_transport_util.cleanup_incomplete_xtts_import
程序找到遺棄的檔案。您可以透過呼叫 rdsadmin.rds_file_util.read_text_file
程序來讀取日誌檔。如需詳細資訊,請參閱 階段 6:清理剩餘檔案。
語法
PROCEDURE cleanup_incomplete_xtts_import( p_directory_name IN VARCHAR2);
參數
參數名稱 | 資料類型 | 預設 | 必要 | 描述 |
---|---|---|---|---|
|
|
— |
是 |
包含遺棄的資料檔案的目錄。 |
範例
下列範例會刪除 DATA_PUMP_DIR
中遺棄的檔案。
BEGIN rdsadmin.rdsadmin_transport_util.cleanup_incomplete_xtts_import('
DATA_PUMP_DIR
'); END; /
下列範例會讀取上一個命令所產生的日誌檔。
SELECT * 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.