使用 Oracle Data Pump 加载数据
Oracle Data Pump 在 Oracle 数据库和 Autonomous Database on Dedicated Exadata Infrastructure 之间提供非常快速的批量数据和元数据移动。
通过数据泵导入,您可以从位于 Oracle Cloud Infrastructure Object Storage 和 Oracle Cloud Infrastructure Object Storage Classic 上的数据泵文件导入数据。您可以将数据保存到 Cloud Object Store,并使用 Oracle Data Pump 将数据加载到 Autonomous Database 。
注意:
要使“试用”替代阅读以下主题,您可以参加 Oracle Autonomous Database Dedicated for Fleet Administrators Workshop 中的 Lab 9:Migrate with Data Pump 。从现有 Oracle Database 中导出数据
首先使用 Oracle Data Pump Export 导出现有的 Oracle Database 方案。然后使用 Oracle Data Pump Import 将它们迁移到 Autonomous Database 。
Oracle 建议使用以下数据泵导出参数,以更快、更轻松地迁移到 Autonomous Database :
exclude=cluster, db_link
parallel=n
schemas=schema name
dumpfile=export%l.dmp
Oracle Data Pump Export 提供了多种导出模式,Oracle 建议使用模式模式迁移到 Autonomous Database 。可以使用 schemas 参数列出要导出的方案。
为了加快迁移速度,请将方案导出到多个数据泵文件并使用并行操作。可以指定要与 dumpfile 参数一起使用的转储文件名格式。将 parallel 参数至少设置为 Autonomous Database 中的 CPU 数量。
exclude 和 data_options 参数可确保不导出 Autonomous Database 中不可用的对象类型,并将表分区分组在一起,以便更快地将它们导入到 Autonomous Database 。
注意:
Oracle 建议您在执行expdp
命令之前收集最新统计信息。dbms_stats
软件包提供了多个收集最新统计信息的过程。统计信息会自动添加到导出转储文件中,它们有助于确定对象的大小并在导入期间优化并行性。有关详细信息,请参阅 Oracle Database 19c PL/SQL Packages and Types Reference 和 Oracle Database 23ai PL/SQL Packages and Types References 中的 DBMS_STATS Operational Notes 。
以下示例将 SH 方案从源 Oracle Database 导出,以迁移到具有 16 个 CPU 的 Autonomous Database :
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 结束。在 Oracle Database 12.2 版之前,使用旧版
%U
或%u
通配符导出数据。如果使用此选项并且需要 99 个以上的转储文件,则必须指定多个转储文件名称,每个名称都带有%U
或%u
参数。
您可以使用其他数据泵导出参数,例如 compression
,具体取决于您的要求。有关详细信息,请参阅 Oracle Database 19c Utilities 或 Oracle Database 23ai 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 的左侧导航列表中,选择“对象存储”,然后从子列表中选择“对象存储”。
-
选取要在其中创建存储桶的区间。
-
单击创建存储桶。
-
在“创建存储桶”对话框中,为存储桶指定名称,然后单击创建存储桶。
-
创建存储桶后,单击存储桶列表中的名称以显示其“存储桶详细信息”页。
-
在“对象”框中,单击上载对象。
-
在 "Upload Objects"(上载对象)对话框中,单击 "Choose Files From Your Computer"(从计算机选择文件)框中的 select files(选择文件)链接。
-
在文件浏览器中,导航到并选择导出文件。然后单击打开。
-
在“上载对象”对话框中,单击上载对象以开始上载选定的文件。
-
上载完成后,关闭“上载对象”对话框。
使用 Oracle Data Pump 导入数据
Oracle 建议使用最新 Oracle Data Pump 版本将数据从数据泵文件导入到 Autonomous Database 中,因为它包含增强功能和修复程序,以获得更好的体验。
从 Oracle Instant Client 下载下载适用于您的平台的最新版本的 Oracle Instant Client 基本程序包和工具程序包(包括 Oracle Data Pump)。有关下载 Oracle Instant Client 后所需的安装步骤,请参见平台安装下载页面上的安装说明。
在 Oracle Data Pump 版本 18.3 及更高版本中,credential
参数将向源文件使用的云对象存储服务验证数据泵。dumpfile
参数是数据泵文件的 URL 的逗号分隔列表。
数据泵导入版本 12.2.0.1 及更早版本没有 credential
参数。如果您使用旧版本的数据泵导入,则需要为 Autonomous Database 定义默认身份证明属性,并在 dumpfile
参数中使用 default_credential
关键字。
在 Oracle Data Pump 中,如果源文件位于 Oracle Cloud Infrastructure Object Storage 中,则可以使用 Oracle Cloud Infrastructure 本机 URI 或 Swift URI。有关这些 URI 格式的详细信息,请参见 Cloud Object Storage URI Formats 。
访问用于数据泵导入的日志文件
数据泵导入操作的日志文件存储在使用数据泵 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
是存储桶名称。有关更多信息,请参见 Understanding Object Storage Namespaces 。
有关更多信息,请参见DBMS_CLOUD for Objects and Files 。