使用 Oracle Data Pump 匯出資料
Oracle Data Pump 在 Autonomous Database 和其他 Oracle 資料庫之間提供非常快速的大量資料和描述資料移動。
Oracle 建議使用最新的 Oracle Data Pump 版本將資料從 Autonomous Database 匯出至其他 Oracle 資料庫,因為它包含增強功能和修正,以獲得更好的體驗。從 Oracle Instant Client 下載,下載最新版本的 Oracle Instant Client 並為您的平台下載包含 Oracle Data Pump 的工具套裝程式。請參閱平台安裝下載頁面上的安裝說明,瞭解下載 Oracle Instant Client 和 Tools Package 後所需的安裝步驟。
-
選項 1:將資料汲取匯出的資料移至 Autonomous Database 目錄
使用 Oracle Data Pump 將資料匯出至您資料庫的目錄,然後將資料從目錄移至「雲端物件存放區」。當您要將資料從 Autonomous Database 移至多個目標資料庫時,此方法非常有用。您不必將資料匯出至多個雲端物件存放區,而是可以建立一次傾印檔集,並將它用於多個目標資料庫。
執行下列步驟,將資料匯出至資料庫上的目錄,以從 Autonomous Database 移動資料:- 將資料匯出至 Autonomous Database 上的目錄,並將傾印檔集從目錄移至您的雲端物件存放區。請參閱使用 Autonomous Database 上的目錄匯出資料。
- 從雲端物件存放區下載傾印檔、將資料匯入目標資料庫,以及清除雲端物件存放區。請參閱下載傾印檔、執行資料汲取匯入以及清除物件存放區。
-
選項 2:使用資料汲取將資料匯出移至物件存放區
使用此匯出方法,您就可以使用 Oracle Data Pump 將資料直接匯出至物件存放區。Oracle Cloud Infrastructure Object Storage 和 Oracle Cloud Infrastructure Object Storage Classic 支援此匯出方法。這可避免在 Autonomous Database 的目錄中建立傾印檔集,然後將傾印檔集移至雲端物件存放區的額外負荷。當您計劃將資料移至單一目標資料庫時,此方法可節省人力並加速匯出處理程序。
執行下列步驟,將資料直接匯出至您的物件存放區,以從 Autonomous Database 移動資料:- 將資料從 Autonomous Database 直接匯出至雲端物件存放區。請參閱直接將資料從 Autonomous Database 匯出至物件存放區。
- 從雲端物件存放區下載傾印檔、將資料匯入目標資料庫,以及清除雲端物件存放區。請參閱下載傾印檔、執行資料汲取匯入以及清除物件存放區。
使用 Autonomous Database 上的目錄匯出資料
使用資料汲取在 Autonomous Database 上建立傾印檔集
-
建立一個目錄,用於儲存包含匯出資料的傾印檔。舉例而言:
CREATE DIRECTORY data_export_dir as 'data_export';
-
使用 dumpfile 參數集、 filesize 參數集小於 50G,以及 directory 參數集執行「資料汲取」匯出。例如,下列顯示如何在 Autonomous Database 中匯出名為
SALES
且具有 64 個 ECPU 的綱要:ATPC1
expdp sales/password@ATPC1_high directory=data_export_dir dumpfile=exp%L.dmp parallel=16 encryption_pwd_prompt=yes filesize=1G logfile=export.log
「資料汲取」參數的注意事項:-
若為 ECPU,則
parallel
必須設為 ECPU 數目的 0.25 倍。因此,在上述具有 64 個 ECPU 的範例中,parallel
設為 0.25 x 64,亦即 16 與expdp
。 -
如果是 OCPU,則必須將
parallel
設為與 OCPU 數目相同的值。在上述 16 個 OCPU 的範例中,parallel
將設為 16,其中包含expdp
。 -
如果使用
expdp
進行匯出時使用encryption_pwd_prompt=yes
參數,您必須在匯入時使用encryption_pwd_prompt=yes
,並在impdp
提示輸入相同的密碼來解密傾印檔案 (請記住匯出時提供的密碼)。加密密碼的長度上限為 128 個位元組。 -
dumpfile
參數除了支援傳統%U
和%u
萬用字元之外,還支援%L
和%l
萬用字元。例如,dumpfile=export%L.dmp
。使用
%L
或%l
萬用字元從 Oracle Database 12.2 版和更新版本進行匯出。此萬用字元會將傾印檔檔案名稱展開為 3 位數的 10 位數,可變寬度遞增整數,從 100 開始,結束於 2147483646。
為了獲得最佳匯出效能,請使用匯出連線的
HIGH
資料庫服務,並將PARALLEL
參數設為您資料庫中的 CPU 數目。如需有關要連線以執行「資料汲取匯出」之資料庫服務名稱的資訊,請參閱自治式資料庫的預先定義資料庫服務名稱。匯出完成後,您可以執行如下的查詢來查看產生的傾印檔:SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_EXPORT_DIR');
例如,此查詢的輸出顯示產生的傾印檔與匯出日誌檔:OBJECT_NAME BYTES CHECKSUM CREATED LAST_MODIFIED ---------------------- ---------- ----–---- –------------------------–----- -------------------- exp01.dmp 12288 12-NOV-19 06.10.47.0 PM GMT 12-NOV-19... exp02.dmp 8192 12-NOV-19 06.10.48.0 PM GMT 12-NOV-19... exp03.dmp 1171456 12-NOV-19 06.10.48.0 PM GMT 12-NOV-19... exp04.dmp 348160 12-NOV-19 06.10.48.0 PM GMT 12-NOV-19... export.log 1663 12-NOV-19 06.10.50.0 PM GMT 12-NOV-19...
-
注意事項:
-
若要執行完整匯出或匯出其他使用者所擁有的物件,您需要
DATAPUMP_CLOUD_EXP
角色。 -
您用來將傾印檔移動至物件儲存的 API 支援的檔案大小上限為 50GB,因此請確定您指定的大小未高於 filesize 引數中的大小。
-
如需詳細資訊,請參閱 Oracle Database 19c Utilities 或 Oracle Database 23ai Utilities 中的 Oracle Data Pump Export 。
將傾印檔集從 Autonomous Database 移至您的雲端物件存放區
-
連線至您的 Autonomous Database 。
-
使用
DBMS_CREDENTIAL.CREATE_CREDENTIAL
程序儲存您的雲端物件儲存證明資料。舉例而言:BEGIN
DBMS_CREDENTIAL.CREATE_CREDENTIAL
( credential_name => 'DEF_CRED_NAME', username => 'adb_user@oracle.com', password => 'password' ); END; /您為username
和password
提供的值取決於您使用的雲端物件儲存服務:-
Oracle Cloud Infrastructure Object Storage :
username
是您的 Oracle Cloud Infrastructure 使用者名稱,而password
是您的 Oracle Cloud Infrastructure 認證權杖。請參閱使用認證權杖。 -
Oracle Cloud Infrastructure Object Storage Classic :
username
是您的 Oracle Cloud Infrastructure Classic 使用者名稱,而password
是您的 Oracle Cloud Infrastructure Classic 密碼。此作業會以加密格式將證明資料儲存在資料庫中。您可以使用任何證明資料名稱。請注意,除非您的物件儲存證明資料變更,否則此步驟僅需要一次。儲存證明資料之後,就可以在所有資料載入使用相同的證明資料名稱。
-
-
呼叫
DBMS_CLOUD.PUT_OBJECT
,將傾印檔從 Autonomous Database 移至您的雲端物件存放區。舉例而言:BEGIN
DBMS_CLOUD.PUT_OBJECT
(credential_name => 'DEF_CRED_NAME', object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp01.dmp', directory_name => 'DATA_EXPORT_DIR', file_name => 'exp01.dmp');DBMS_CLOUD.PUT_OBJECT
(credential_name => 'DEF_CRED_NAME', object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp02.dmp', directory_name => 'DATA_EXPORT_DIR', file_name => 'exp02.dmp');DBMS_CLOUD.PUT_OBJECT
(credential_name => 'DEF_CRED_NAME', object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp03.dmp', directory_name => 'DATA_EXPORT_DIR', file_name => 'exp03.dmp');DBMS_CLOUD.PUT_OBJECT
(credential_name => 'DEF_CRED_NAME', object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp04.dmp', directory_name => 'DATA_EXPORT_DIR', file_name => 'exp04.dmp'); END; /如需
PUT_OBJECT
的相關資訊,請參閱 PUT_OBJECT 程序。
下載傾印檔、執行資料汲取匯入,以及清除物件存放區
如有需要,請從「雲端物件存放區」下載傾印檔,然後使用「Oracle Data Pump 匯入」將傾印檔集匯入目標資料庫。然後執行任何必要的清除。
如需詳細資訊,請參閱 Oracle Database 19c Utilities 或 Oracle Database 23ai Utilities 中的 Parameters Available in Oracle Data Pump Import Command-Line Mode 。