使用 Oracle Data Pump 导出数据
Oracle Data Pump 可在 Autonomous AI Database 和其他 Oracle 数据库之间快速批量移动数据和元数据。
Oracle 建议使用最新的 Oracle Data Pump 版本将数据从 Autonomous AI Database 导出到其他 Oracle 数据库,因为它包含增强功能和修复功能,以获得更好的体验。下载最新版本的 Oracle Instant Client,然后从 Oracle Instant Client 下载下载适用于您平台的工具包(包括 Oracle Data Pump)。有关下载 Oracle Instant Client 和工具包之后所需的安装步骤,请参见平台安装下载页面上的安装说明。
-
选项 1:通过数据泵导出将数据移动到 Autonomous AI Database 目录
使用 Oracle Data Pump 将数据导出到数据库上的目录,然后将数据从目录移动到云对象存储。当您需要将数据从 Autonomous AI Database 移动到多个目标数据库时,此方法非常有用。您可以创建一次转储文件集并将其用于多个目标数据库,而不是将数据导出到多个云对象存储。
通过将数据导出到数据库上的目录,执行以下步骤从 Autonomous AI Database 移动数据:- 将数据导出到 Autonomous AI Database 上的目录,并将转储文件集从目录移动到云对象存储。请参阅使用自治 AI 数据库上的目录导出数据。
- 从云对象存储下载转储文件,将数据导入目标数据库,然后清除云对象存储。请参见 Download Dump Files,Run Data Pump Import,and Clean Up Object Store 。
-
选项 2:将数据泵导出到对象存储
使用此导出方法,可以使用 Oracle Data Pump 将数据直接导出到对象存储。Oracle Cloud Infrastructure Object Storage 和 Oracle Cloud Infrastructure Object Storage Classic 支持此导出方法。这样可以避免在 Autonomous AI Database 上的目录中创建转储文件集,然后将转储文件集移动到 Cloud Object Store 中所产生的开销。当您计划将数据移动到单个目标数据库时,此方法可以节省工作量并加快导出过程。
通过将数据直接导出到对象存储,执行以下步骤从 Autonomous AI Database 移动数据:- 将数据从 Autonomous AI Database 直接导出到云对象存储。请参阅将数据从自治 AI 数据库直接导出到对象存储。
- 从云对象存储下载转储文件,将数据导入目标数据库,然后清除云对象存储。请参见 Download Dump Files,Run Data Pump Import,and Clean Up Object Store 。
使用 Autonomous AI Database 上的目录导出数据
使用数据泵在 Autonomous AI Database 上创建转储文件集
-
创建一个目录,用于存储包含导出数据的转储文件。例如:
CREATE DIRECTORY data_export_dir as 'data_export';
-
在设置了 dumpfile 参数、将 filesize 参数设置为小于 50G 以及设置了 directory 参数的情况下运行数据泵导出。例如,下面显示了如何在名为
ATPC1
的 Autonomous AI Database 中导出名为SALES
且具有 64 个 ECPU 的方案: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,即具有expdp
的 16。 -
对于 OCPU,
parallel
必须设置为与 OCPU 计数相同的值。在具有 16 个 OCPU 的以上示例中,parallel
将设置为 16,expdp
。 -
如果在使用
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 结束。
为了获得最佳导出性能,请将
HIGH
数据库服务用于导出连接,并将PARALLEL
参数设置为数据库中的 CPU 数。有关要连接哪个数据库服务名称以运行数据泵导出的信息,请参见 Predefined Database Service Names for Autonomous AI Database。导出完成后,您可以通过运行如下查询来查看生成的转储文件: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 26ai Utilities 中的 Oracle Data Pump Export 。
将转储文件集从 Autonomous AI Database 迁移到云对象存储
-
连接到 Autonomous AI 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 验证令牌。请参见 Working with Auth Tokens 。 -
Oracle Cloud Infrastructure Object Storage Classic :
username
是您的 Oracle Cloud Infrastructure Classic 用户名,password
是您的 Oracle Cloud Infrastructure Classic 密码。此操作以加密格式将身份证明存储在数据库中。您可以使用身份证明名称的任何名称。请注意,除非对象存储身份证明发生更改,否则此步骤仅需要一次。存储身份证明后,可以对所有数据加载使用相同的身份证明名称。
-
-
通过调用
DBMS_CLOUD.PUT_OBJECT
将转储文件从 Autonomous AI Database 移动到 Cloud Object Store。例如: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 Procedure 。
将数据从 Autonomous AI Database 直接导出到对象存储
显示如何使用 Oracle Data Pump 将数据从 Autonomous AI Database 直接导出到 Cloud Object Store。
下载转储文件、运行数据泵导入和清理对象存储
如果需要,请从云对象存储下载转储文件,并使用 Oracle Data Pump 导入将转储文件集导入到目标数据库。然后执行任何所需的清理。
有关详细信息,请参阅 Oracle Database 19c Utilities 或 Oracle Database 26ai Utilities 中的 Parameters Available in Oracle Data Pump Import Command-Line Mode 。