使用 Oracle Data Pump 載入資料
Oracle Data Pump 可在 Oracle 資料庫與專用 Exadata 基礎架構上的自治式 AI 資料庫之間,提供非常快速的大量資料和描述資料移動。
「資料汲取」匯入可讓您從位於 Oracle Cloud Infrastructure Object Storage 和 Oracle Cloud Infrastructure Object Storage Classic 的「資料汲取」檔案匯入資料。您可以將資料儲存至雲端物件存放區,然後使用 Oracle Data Pump 將資料載入至自治式 AI 資料庫。
備註:如需閱讀下列主題的「試用」替代方案,您可以前往 Oracle Autonomous AI Database Dedicated for Fleet Administrators 工作坊中的第 9 實驗室:使用資料汲取移轉。
從現有的 Oracle Database 匯出資料
首先,使用「Oracle Data Pump 匯出」匯出現有的 Oracle Database 綱要。接著,使用「Oracle Data Pump 匯入」將它們移轉至「自治式 AI 資料庫」。
Oracle 建議使用下列資料汲取匯出參數,以便更快、更輕鬆地移轉至自治式 AI 資料庫:
exclude=cluster, db_link
parallel=n
schemas=schema name
dumpfile=export%l.dmp
Oracle Data Pump 匯出提供數種匯出模式,Oracle 建議使用綱要模式移轉至自治式 AI 資料庫。您可以使用綱要參數來列出要匯出的綱要。
若要加快移轉速度,請將您的綱要匯出成多個「資料汲取」檔案,並使用平行程度。您可以指定要與 dumpfile 參數搭配使用的傾印檔案名稱格式。請將平行參數至少設為您自治式 AI 資料庫中的 CPU 數目。
exclude 和 data_options 參數可確保不會匯出 Autonomous AI Database 中無法使用的物件類型,並將表格分割區分組在一起,以便更快速地將它們匯入至 Autonomous AI Database。
注意:Oracle 建議您先收集最新的統計資料,再執行 expdp 命令。dbms_stats 套裝軟體提供多個收集最新統計資料的程序。統計資料會自動新增至匯出傾印檔,並可協助判斷物件大小,以及在匯入期間將平行程度最佳化。如需詳細資訊,請參閱 Oracle Database 19c PL/SQL Packages and Types Reference 和 Oracle Database 26ai PL/SQL Packages and Types References 中的 DBMS_STATS Operational Notes 。
下列範例會從來源 Oracle Database 匯出 SH 綱要,以移轉至具有 16 個 CPU 的自治式 AI 資料庫:
expdp sh/sh@orcl \
exclude=cluster, db_link \
parallel=16 \
schemas=sh \
dumpfile=export%l.dmp \
encryption_pwd_prompt=yes
「資料汲取」參數注意事項:
-
如果使用
expdp進行匯出時,您使用encryption_pwd_prompt=yes參數,也會在匯入時使用encryption_pwd_prompt=yes,並在impdp提示輸入相同的密碼來解密傾印檔 (請記住您在匯出時所提供的密碼)。加密密碼的長度上限為 128 個位元組。 -
除了傳統的
%U和%u萬用字元之外,dumpfile參數也支援%L和%l萬用字元。例如,dumpfile=export%L.dmp。使用
%L或%l萬用字元從 Oracle Database 版本 12.2 和更新版本匯出。此萬用字元會將傾印檔檔案名稱展開為 3 位數,以 10 位數的可變寬度遞增整數,從 100 開始,結束於 2147483646。在 12.2 版之前,使用舊版的
%U或%u萬用字元從 Oracle Database 匯出。如果使用此選項,且需要 99 個以上的傾印檔,則必須指定多個傾印檔名稱,每個傾印檔均具有%U或%u參數。
您可以視需求使用其他「資料汲取」匯出參數,例如 compression。如需詳細資訊,請參閱 Oracle Database 19c Utilities 或 Oracle Database 26ai Utilities 中的 Oracle Data Pump Export 。
將匯出檔案上傳至雲端物件儲存
您必須先將匯出檔案上傳至雲端物件儲存,才能匯入從來源 Oracle Database 匯出的資料。
您可以將匯出檔案上傳至 Oracle Cloud Infrastructure Object Storage 中的現有儲存的儲存桶,或 Oracle Cloud Infrastructure Object Storage Classic 中的現有儲存容器。或者,您可以使用下列程序建立新的儲存的儲存桶,然後將匯出檔案上傳至該儲存桶。
-
請以 cloud.oracle.com 身分登入您的 Oracle Cloud 帳戶。
-
從 Oracle Cloud Infrastructure 左側導覽清單中,選擇物件儲存,然後從子清單中選擇物件儲存。
-
選擇要在其中建立儲存的儲存桶的區間。
-
按一下建立儲存桶 (Bucket) 。
-
在「建立儲存桶」對話方塊中,為儲存桶指定名稱,然後按一下建立儲存桶。
-
建立儲存桶之後,請在儲存桶清單中按一下其名稱,以顯示其「儲存桶詳細資訊」頁面。
-
按一下「物件」方塊中的上傳物件。
-
在「上傳物件」對話方塊中,按一下「從您的電腦選擇檔案」方塊中的選取檔案連結。
-
在檔案瀏覽器中,瀏覽並選取匯出檔案。然後,按一下開啟。
-
在「上傳物件」對話方塊中,按一下上傳物件以開始上傳您選取的檔案。
-
上傳完成後,請關閉「上傳物件」對話方塊。
使用 Oracle Data Pump 匯入數據
Oracle 建議使用最新的 Oracle Data Pump 版本,將資料從「資料汲取」檔案匯入至您的自治式 AI 資料庫,因為其中包含增強功能和修正,提供更好的體驗。
請從 Oracle Instant Client Downloads 下載適用於您平台的最新版本的 Oracle Instant Client Basic Package 和 Tools Package (包含 Oracle Data Pump)。如需下載 Oracle Instant Client 後所需的安裝步驟,請參閱平台安裝下載頁面上的安裝說明。
在 Oracle Data Pump 18.3 和更新版本的 credential 引數中,會將「資料汲取」認證為您來源檔案所使用的雲端物件儲存服務。dumpfile 引數是以逗號分隔的「資料汲取」檔案 URL 清單。
「資料汲取」匯入版本 12.2.0.1 和更舊版本沒有 credential 參數。如果您使用舊版的資料汲取匯入,則必須定義自治式 AI 資料庫的預設證明資料特性,並在 dumpfile 參數中使用 default_credential 關鍵字。
在 Oracle Data Pump 中,如果您的來源檔案位於 Oracle Cloud Infrastructure Object Storage 中,則可以使用 Oracle Cloud Infrastructure 原生 URI 或 Swift URI。如需這些 URI 格式的詳細資訊,請參閱雲端物件儲存 URI 格式。
-
使用
DBMS_CLOUD.CREATE_CREDENTIAL程序儲存您的雲端物件儲存證明資料。「資料汲取」匯入支援以 Oracle Cloud Infrastructure 認證權杖為基礎的證明資料和以 Oracle Cloud Infrastructure 簽署金鑰為基礎的證明資料。
範例 1 :建立 Oracle Cloud Infrastructure 認證權杖證明資料:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'DEF_CRED_NAME', username => 'adb_user@oracle.com', password => '*password*' ); END; /範例 2 :建立以 Oracle Cloud Infrastructure 簽署金鑰為基礎的證明資料:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL ( credential_name => 'DEF_CRED_NAME', user_ocid => 'ocid1.user.oc1..unique_ID', tenancy_ocid => 'ocid1.tenancy.oc1..unique_ID', private_key => 'MIIEogIBAAKCAQEAtUnxbmre.....wtnNpESQQQ0QLGPD8NM//JEBg=', fingerprint => 'fingerprint value' ); END; /如需有關 Oracle Cloud Infrastructure Cloud Object Storage 證明資料類型的詳細資訊,請參閱 CREATE_CREDENTIAL 程序。
-
如果您使用 Oracle Data Pump 12.2.0.1 或更舊版本,則必須將證明資料設為「自治式 AI 資料庫」的預設證明資料作為 ADMIN 使用者。舉例而言:
alter database property set default_credential = 'ADMIN.DEF_CRED_NAME' -
使用設為您雲端物件儲存上檔案 URL 清單的
dumpfile參數執行「資料汲取匯入」。-
Oracle Data Pump 18.3 或更新版本:將
credential參數設為您在步驟 1 中建立的證明資料名稱。舉例而言:impdp admin/password@ATPC1_high \ credential=def_cred_name \ dumpfile= https://namespace-string.objectstorage.us-ashburn-1.oci.customer-oci.com/n/namespace-string/b/bucketname/o/export%l.dmp \ parallel=16 \ transform=segment_attributes:n \ exclude=cluster, db_link在此範例中,
dumpfile是 Oracle Cloud Infrastructure Swift URI,指定名稱與us-phoenix-1區域中mybucket儲存桶export<number>.dmp相符的所有檔案。(idthydc0kinr是儲存桶所在的物件儲存命名空間。) -
Oracle Data Pump 版本 12.2.0.1 或更舊版本:使用
default_credential關鍵字和冒號來啟動dumpfile參數的值。舉例而言:impdp admin/password@ATPC1_high \ dumpfile=default_credential:https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/export%l.dmp \ parallel=16 \ transform=segment_attributes:n \ exclude=cluster, db_link
資料汲取匯入的注意事項
-
如果您在匯出時使用
expdp,則使用encryption_pwd_prompt=yes參數,然後使用encryption_pwd_prompt=yes,並在匯出期間指定的impdp提示輸入相同的密碼。 -
除了傳統的
%U和%u萬用字元之外,dumpfile參數也支援%L和%l萬用字元。例如,dumpfile=export%L.dmp。使用
%L或%l萬用字元從 Oracle Database 版本 12.2 和更新版本匯出。此萬用字元會將傾印檔檔案名稱擴充為 3 位數的可變寬度增量整數,從 100 開始,結束於 2147483646。在 12.2 版之前,使用舊版的
%U或%u萬用字元從 Oracle Database 匯出。如果使用此選項,且需要 99 個以上的傾印檔,則必須指定多個傾印檔名稱,每個傾印檔均具有%U或%u參數。 -
若要獲得最佳匯入效能,請使用匯入連線的
high資料庫服務,並將parallel參數設為資料庫擁有的 CPU 數目。 -
如需不同雲端物件儲存服務的傾印檔 URL 格式,請參閱雲端物件儲存 URI 格式。
-
若要執行完整匯入或匯入其他使用者擁有的物件,您需要
DATAPUMP_CLOUD_IMP角色。
如需「自治式 AI 資料庫」中不允許的物件相關資訊,請參閱使用 SQL 命令的限制。
如需匯入參數的詳細資訊,請參閱 Oracle Database 19c Utilities 或 Oracle Database 26ai Utilities 中的 Oracle Data Pump 匯入。
-
存取資料檔以進行資料汲取匯入
「資料汲取匯入」作業的日誌檔是儲存在您使用資料汲取 impdp directory 參數指定的目錄中。
若要存取日誌檔,您必須使用 DBMS_CLOUD.PUT_OBJECT 程序,將日誌檔移至您的雲端物件儲存。例如,下列 PL/SQL 區塊會將 import.log 檔案移至您的雲端物件儲存:
BEGIN
DBMS_CLOUD.PUT_OBJECT(
credential_name => 'DEF_CRED_NAME',
object_uri => 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/*namespace-string*/b/*bucketname*/o/import.log',
directory_name => 'DATA_PUMP_DIR',
file_name => 'import.log');
END;
/
在此範例中,*namespace-string* 是 Oracle Cloud Infrastructure 物件儲存命名空間,而 bucketname 是儲存桶名稱。請參閱瞭解物件儲存命名空間以瞭解詳細資訊。
如需詳細資訊,請參閱 DBMS_CLOUD for Objects and Files 。