迄今为止,导出/导入工具集仍是跨多个平台转移数据所需劳动强度最小的首选实用工具,尽管人们常常抱怨它速度太慢。导入只是将每条记录从导出转储文件中读出来,然后使用常见的 INSERT INTO 命令将其插入到目标表中,因此导入可能是个很慢的过程,这一点并不让人感到吃惊。
进入Oracle Data Pump,Oracle Database 10g中的导出/导入工具包的更新更快的同类工具,它被设计来成倍地加速这个过程。
Data Pump反映了整个导出/导入过程的彻底革新。它不是使用常见的SQL命令,而是应用专用 API来以更快得多的速度加载和卸载数据。在我的测试中,我看到导出性能比在直接模式下提高了 10-15倍,导入过程性能提高了5倍。此外,与使用导出实用工具不同,它还能够只取出特定类型的对象(如过程)。
Data Pump导出
这个新的实用工具称为expdp,以和原来的导出exp区分开。在本例中,我们将用Data Pump来导出一个大表CASES,大小约为3GB。Data Pump在服务器端使用文件处理来创建和读取文件;因此,目录作为位置使用。在这种情况下,我们将使用文件系统 /u02/dpdata1来保存转储文件。
create directory dpdata1 as ‘/u02/dpdata1’; grant read, write on directory dpdata1 to ananda; |
接下来,我们将导出数据:
expdp ananda/abc123 tables=CASES directory=DPDATA1 dumpfile=expCASES.dmp job_name=CASES_EXPORT |
让我们来分析该命令的各个部分。用户 ID/口令组合、表和转储文件参数的意义是显而易见的。与原来的导出不同,文件是在服务器(不是客户端)上创建的。位置由目录参数值DPDATA1指定,它指向之前创建的 /u02/dpdata1。这个进程还在目录参数指定的位置上创建一个日志文件(同样在服务器上)。默认地,这个进程使用一个名称为 DPUMP_DIR 的目录;因此可以创建它来代替 DPDATA1。
注意上面的参数job_name,这是个特殊的参数,在原来的导出中没有。所有的 Data Pump 工作都通过作业来完成。Data Pump作业 — 与 DBMS 作业不同 — 只是服务器进程,它代表主进程处理数据。主进程(称为主控制进程)通过高级队列 (AQ) 来协调这项工作;它通过在运行期内创建的一个特殊的表(称为主表)来实现这个目的。在我们的例子中,如果您在expdp运行时检查用户 ANANDA 的模式 ,您将注意到一个表 CASES_EXPORT 的存在(对应参数job_name)。当expdp结束时,这个表被丢弃。
导出监控
当 Data Pump Export (DPE) 运行时,按 Control-C;它将阻止消息在屏幕上显示,但不停止导出进程本身。相反,它将显示 DPE 提示符(如下所示)。进程现在被认为处于“交互式”模式:
Export> |
这种方法允许在这个 DPE 作业上输入几条命令。要查看概要,在提示符下使用 STATUS 命令:
Export> status Job:CASES_EXPORT Operation:EXPORT Mode:TABLE State:EXECUTING Degree: 1 Job Error Count: 0 Dump file:/u02/dpdata1/expCASES.dmp bytes written = 2048 Worker 1 Status: State:EXECUTING Object Schema:DWOWNER Object Name:CASES Object Type:TABLE_EXPORT/TBL_TABLE_DATA/TABLE/TABLE_DATA Completed Objects: 1 Total Objects: 1 Completed Rows: 4687818 |
记住,这只是状态显示。导出在后台工作。要继续在屏幕上查看消息,从 Export> 提示符下使用命令 CONTINUE_CLIENT。
并行操作
您可以通过 PARALLEL 参数为导出使用一个以上的线程来显著地加速作业。每个线程创建一个单独的转储文件,因此参数 dumpfile 应当拥有和并行度一样多的项目。您可以指定通配符作为文件名,而不是显式地输入各个文件名,例如:
expdp ananda/abc123 tables=CASES directory=DPDATA1 dumpfile=expCASES_%U.dmp parallel=4 job_name=Cases_Export |
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
Collaborate 18大会:了解甲骨文云数据库和应用的进展
在Collaborate 18大会即将举行时,我们会发现,甲骨文用户社区的技术变化会略高于平常水平。 由独立甲 […]
-
甲骨文自治数据库亮相 带来云计算新希望
早前甲骨文还不在云计算公司之列,而现在该公司正在迅速弥补其失去的时间。甲骨文的云计算核心是甲骨文自治数据库(O […]
-
Oracle TNS 错误:管理员旷日持久的战斗
TNS经常给IT管理员带来麻烦,而且很难定位。尤其是在Oracle数据库中。本文将介绍如何避免这些常见错误。
-
DBA支招:如何实现Oracle EBS 12.2.5升级
那些对于是否要将EBS进行升级持观望态度的Oracle数据库管理员们可以从一家研究公司获得一些启示。