可傳輸的資料表空間 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

可傳輸的資料表空間

使用 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;

參數

參數名稱 資料類型 預設 必要 描述

p_tablespace_list

CLOB

要匯入的資料表空間清單。

p_directory_name

VARCHAR2

包含資料表空間備份的目錄。

p_platform_id

NUMBER

13

提供與備份階段中指定平台 ID 相符的 ID。若要尋找平台列表,請查詢 V$TRANSPORTABLE_PLATFORM。預設平台是 Linux x86 64 位元,這是小端。

p_parallel

INTEGER

0

平行處理的程度。根據預設,會停用平行處理。

範例

以下範例從目錄 DATA_PUMP_DIR 匯入資料表 TBS1TBS2 和 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);

參數

參數名稱 資料類型 預設 必要 描述

p_datapump_metadata_file

SYS.DBA_DATA_FILES.FILE_NAME%TYPE

包含可傳輸資料表空間描述資料的 Oracle 資料汲取檔案名稱。

p_directory_name

VARCHAR2

包含資料汲取檔案的目錄名稱。

p_exclude_stats

BOOLEAN

FALSE

指示是否排除統計資料的標誌。

p_remap_tablespace_list

CLOB

NULL

在中繼資料匯入期間要重新對應的資料表空間清單。使用 from_tbs:to_tbs 格式。例如,指定 users:user_data

p_remap_user_list

CLOB

NULL

在中繼資料匯入期間要重新對應的資料表空間清單。使用 from_schema_name:to_schema_name 格式。例如,指定 hr:human_resources

範例

此範例會從檔案匯入資料表空間中繼資料 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.log。使用 rdsadmin.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);

參數

參數名稱 資料類型 預設 必要 描述

p_directory_name

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.