数据移动 - 导出实用程序
- Oracle - exp
- Oracle - 良好的传统 SQL Plus
Oracle - exp
Oracle exp 实用程序与 Oracle imp 实用程序相对应。即使版本不同,它们也能共存;例如,可以将 Oracle 8i 的导出导入 9i 中。正如前面所提到的,导出以指定顺序将数据库对象写入只有 imp 实用程序可以读取的专用格式中。exp 实用程序用于导出中小型数据库。exp 与参数 DIRECT=Y 一起出现,该参数越过评测缓冲器,从而确保了速度快得多的导出过程。使用 Oracle exp 实用程序有许多好处,例如下面所列的一些:
- 逻辑备份 - exp 实用程序可以用于补充备份和恢复策略。例如,较好的导入将确保恢复意外删除的特定表。
- Reorg - 导入将消除数据库中的碎片。
- 讹误(Corruption)检查 - 导入需要进行全表扫描。任何物理或逻辑讹误都将被检测出来。物理讹误是指已经使用的可能破坏数据的块,而逻辑讹误包含数据字典。
exp 实用程序完全与 imp 实用程序相对。imp 就像吸入,而导出就看作是呼出或吐出部分。调用 exp 实用程序的方法与调用 imp 的相同。导出的语法也十分相似。关键区别就是有了 COMPRESS 和 DIRECT 等参数,而少了 TOUSER 和 FROMUSER 等参数。若要列出完整的列表,就发出命令 exp help=y。请参阅下列语法:
exp keyword=value [,keyword=value,...] where keywords are USERID username/password BUFFER size of data buffer FILE input files (EXPDAT.DMP) COMPRESS import into one extent (Y) IGNORE ignore create errors (N) GRANTS import grants (Y) INDEXES import indexes (Y) DIRECT direct path (N) ROWS import data rows (Y) CONSISTENT cross-table consistency(N) LOG log file of screen output FULL import entire file (N) OWNER list of owner usernames TABLES list of table names INCTYPE incremental import type RECORDLENGTH length of IO record RECORD track incr. export (Y) TRIGGERS export triggers (Y) STATISTICS analyze objects (ESTIMATE) PARFILE parameter filename CONSTRAINTS import constraints (Y)
让我们来检查该实用程序所支持的四种导出方式:
- 全导出 - FULL=Y。如果参数 FULL=Y,那么将导出所有对象。发出命令:
exp system/password full=y file=scott.dmp log=scott.log direct=y。 - 特定所有者 - OWNER=XYZ。通过该参数,您可以导出属于指定用户的对象。例如,命令
exp system/password owner=scott file=scott.dmp将导出属于 Scott 的所有对象。 - 表级导出 - TABLES = (*)。通过该参数,指定可以导出的用户模式(schema)所拥有的表。例如,命令:
exp scott/tiger file=scott.dmp tables=(emp, dept)。 - 表空间级导出 - Transport_Tablepspace = Y 和 Tablespaces=(A,B,C)。请查阅 场景 小节中的场景 3。
Oracle - SQLPLUS
SQL Plus 是从一个或多个表中快速提取数据的方法之一。若要使用 SQL Plus 提取数据,请按照下列步骤进行。
- SQLplus username/password@dblink
- 设置格式化参数
- Spool <output_filename>
- 运行 SQL 语句以提取数据
- Spool off
- 瞧,您已经获得了数据!
DB2 - EXPORT
DB2 UDB EXPORT 实用程序将数据导出到三种不同的格式:DEL、WSF 和 IXF。DB2 UDB 导出没有什么特别的悬念。下列例子展示了如何使用 DB2 UDB EXPORT。
- 交互 GUI 方法
启动 Control Centre,并右击需要的表以选择 Export 选项。
图 23. 从 DB2 UDB Control Center 调用导出选择输出格式为 DEL、WSF 或 IXF。还要输入导出文件名和消息文件名。注意,如果您需要导出特定表的列或行的子集,有一个 SQL assist。如果已经知道表的各列,您就可以仅仅在文本框中进行输入,而无需使用 SQL Assist。还有其他选项卡,例如 Columns 和 Schedule。
图 24. 选择导出格式和输出文件名如果在前面的步骤中选择 DEL,您将无法在 column 选项卡中进行添加。对于 WSF 和 IXF 格式,您可以添加列。这些列指定用于输出文件的名称。本例子中,我们保留默认值。您还可以指定在何处找到 LOB 数据,或者指定找到 LOB 数据的文件名。
图 25. 指定输出文件中的列最后一个选项卡是 schedule 选项卡。我们选择立即运行。您总是可以调度该任务稍后运行。
图 26. 调度任务您将看到一条成功消息。
- 命令 CLP 方法
清单 24. 使用命令 CLP DB2 导出示例
CONNECT TO SAMPLE; EXPORT TO "E:\tmp1\employee_1.ixf" OF DEL MESSAGES "E:\tmp1\employee_1.msg" SELECT EMPLOYEE.EMPNO, EMPLOYEE.FIRSTNME, EMPLOYEE.LASTNAME, EMPLOYEE.WORKDEPT, EMPLOYEE.PHONENO FROM ADMINISTRATOR.EMPLOYEE AS EMPLOYEE; CONNECT RESET;
其他工具
关于 Oracle imp 实用程序的说明
虽然 Oracle imp 实用程序从版本 5 就开始存在了,并且仍将继续作为 Oracle 版本中不可缺少的组成部分,但是它所扮演的角色已经不如从前了。发展趋势是使用一种快得多的解决方案,一种真正的服务器装入机制,即数据泵(Data Pump)。
Oracle - 数据泵(impdp/expdp)
从 Oracle 10g 开始,Oracle 就提供了一种新的高速数据和元数据泵(pumping)实用程序,名为数据泵(Data Pump)。数据泵将通过在执行数据泵时取得并行流来最大化吞吐量。数据泵(impdp 和 expdp)的新功能就是可以通过定制代码进行调用。使得数据泵(Data Pump)可用的包是 DBMS_DATAPUMP。相较于它的先驱产品,数据泵的关键好处就是装入和卸载的高速度。除了速度(比 imp 快 20-30 倍),其他好处就是可以更好地控制导入和导出的对象。例如,数据泵(Data Pump)可以使用 EXCLUDE 关键字排除一些数据对象,或者使用 EXCLUDE 关键字包含一些数据对象。您还可以使用 CONTENT 关键指定将导出/导入数据还是元数据。通常,APPEND、SKIP、TRUNCATE 和 REPLACE 适用于导入的表。 最后但也很重要的一点就是,在装入期间监控诸如完成百分比、工作进度和历史数据等内容。关于完整的参考大全,请查阅 Oracle 10g Utility Guide。
多平台版 IBM DB2 高性能卸载
多平台版 IBM DB2 高性能卸载(IBM DB2 High Performance Unload for Multiplatform)是一个用于 UNIX、Windows 和 Linux® 的高速卸载工具。当数据量十分巨大时,该工具可以用于替代导出。该工具从表空间或备份副本卸载 DB2 表。
IBM DB2 Test Database Generator
IBM DB2 Test Database Generator 是一个用于从主生产中的数据库生成测试数据库的工具。可以从现有的数据库创建一个数据库子集






