PL/SQL Developer导入导出工具参数说明

所用软件环境:Orcale数据库版本10.2.0,PL/SQL Developer 版本7.0
使用目的:把数据库A中的表table1复制到数据库B中。
操作过程:1、PL/SQL Developer连接数据库A,从数据库A中导出表table1,存在本地磁盘文件中。2、PL/SQL Developer连接数据库B,向数据库B中导入表table1。

一、导出

用PL/SQL Developer登陆数据库A。使用菜单栏->Tools->Export Tables,该工具会列出Orcale中用户有权限导出的所有表的列表,下方有三种不同的导出格式可供选择,下面一一介绍。

Tools of Export Tables

Tools of Export Tables

a) Oracle Export

这种方式导出的文件是dmp文件,.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得最广。选项参数的设置说明(辛苦查了很多资料总结的,我认为比较重要的写得比较多):

Export - Oracle Export

Export – Oracle Export

  • Compress, import into one extent, 导出的同时合并碎块,尽量把数据压缩到一个EXTENT里,默认是Y.
  • Consistent, cross-table consistency, 交叉表一致性导出,默认是N。数据库的一致性要求在发起导出(即select)后,在漫长的导出过程期间,无论数据是否被改写或删除,导出的数据都不会变。如果把consistent设置成Y,这个一致性就从导出的这一张表扩大到了若干张表(由于主外键约束产生联系的所有表)。
  • Constraints, export constraints, 导出约束条件,默认是Y。
  • Direct, direct path, 默认是N,即使用SELECT来读取表中的数据。如果设为Y, Oracle会略过SQL语句处理引擎,直接从数据文件中读取数据,然后写入导出文件。但是资料显示如果表中包含某些特定的数据类型,比如大对象、大字段,不要开启此功能,ORACLE会自动切换到常规的导出方式,并在导出日志中记录。。
  • Grants, export grants,导出授权数据
  • Indexes, export grants,导出索引数据,默认是Y
  • Rows, export data rows,导出行数据,如果设为N,那么在导出文件中仅生成数据库对象的DDL,默认是Y
  • Triggers, export triggers,导出触发器
  • Buffer size, size of data buffer设置缓冲区大小
  • Where clause, 写入where语句,如此不会导出全表,而是只导出符合where条件的部分数据。
  • Output file, 导出dmp文件存放的位置。

b) SQL Inserts

这种方式导出为sql文件,文本文件。里面每条记录都以一条inser插入语句来表示,可用文本编辑器查看,通用性比较好,但效率很低下,适合小数据量导入导出。这个方式的参数设置比较好理解。选项参数的设置说明:

Export - SQL Inserts

Export – SQL Inserts

  • Drop tables, 导入数据前如果存在同名数据表,先drop掉
  • Create tables, 导入数据前先用create语句创建数据表
  • Truncate tables, 导入数据前先将数据表中的数据以truncate方式清空,truncate是清空数据的一种方式,没有日志,也不产生回滚数据,速度比delete快,但是一旦删除无法恢复数据。
  • Delete tables, 导入数据前先将数据表中的数据以delete方式清空,有日志记录,因此若是误删除后,数据还可以恢复。
  • Disable triggers, 在导入数据前禁用所有触发器,导入后再启动它们,此选项可以提升导入性能
  • Disable foreign key constraints, 在导入数据前禁用所有外键约束,导入后再启动它们,此选项可以提升导入性能
  • Include storage, SQL文件中包含storage相关语句,如表空间名字、初始大小等等。由于不同数据库的表空间设置可能不同,因此这个选项不一定要选。
  • Include privileges, 包含对其他用户的权限的赋权语句。
  • Commit every ____ records, 设置每过多少条记录commit一次。
  • Where clause, 只有符合where条件的部分数据被导出。
  • Output file, 导出sql文件存放的位置。

c) PL/SQL Developer

这种方式导出为pde文件,.pde为Pl/sql developer自有的文件格式,可选择数据压缩,这样导出的文件比前两者小很多。只能用Pl/sql developer自己导入导出。选项参数的设置说明:

Export - PL/SQL Developer

Export – PL/SQL Developer

  • Where clause, 只有符合where条件的部分数据被导出。
  • Compress file, 压缩导出的pde文件。当数据表有大字段(如BLOB等)不建议压缩。
  • Include storage, 在创建数据表时候会包含storage相关的语句,如表空间名字、初始大小等。
  • Include privileges, 包含对其他用户的权限的赋权语句。

d) 三种方式比较

经过大数据表的导出实验,同样的数据表导出后,pde文件体积是dmp文件的45%~50%,而sql文件非常庞大,因此pde最节省空间。效率上sql文件方式耗时远长于其他两种方式,pde和dmp未做比较。

二、导入

用PL/SQL Developer登陆数据库B。使用菜单栏->Tools->Import Tables,该工具会列出Orcale中用户有权限导出的所有表的列表,下方有三种不同的导出格式可供选择,和导出工具一一对应,下面一一介绍。

a) Oracle Import

Import - Oracle Import

Import – Oracle Import

  • Analyze, 执行转储文件(dump file)的analyze语句。导入前先用analyze分析得到一些统计信息,从而有可能优化SQL执行的性能。
  • Commit, 若设成Y,则每满一个Buffer, commit一次(如果表含有LONG, LOB, BFILE, REF, ROWID, UROWID, DATE类型字段,以行为单位),如果设成N,则整张表导入完后再commit。
  • Constraints, 导入一致性约束
  • Grants, 导入赋权语句
  • Ignore, 忽略创建错误。即导入前表已经存在,这时候忽略创建,继续导入数据而不报错。
  • Indexes, 导入索引数据
  • Rows, 导入记录
  • Show, 列出文件内容
  • Buffer Size, 这时缓冲区大小
  • From User, To User, 导入时变更用户
  • Import file, 需要导入的dmp文件。

b) SQL Import

Import - SQL Inserts

Import – SQL Inserts

  • Use Command Window, 用内置的命令行执行SQL脚本命令和语句。
  • Use SQL *Plus, 用SQL*Plus 执行SQL语句,下方可以设置SQL*Plus程序的位置,默认在Oracle目录下能找到。
  • Import file, 需要导入的dmp文件。

c) PL/SQL Developer

Import - PL/SQL Developer

Import – PL/SQL Developer

  • Drop tables, 导入数据前如果存在同名数据表,先drop掉
  • Create tables, 导入数据前先用create语句创建数据表
  • Truncate tables, 导入数据前先将数据表中的数据以truncate方式清空,truncate是清空数据的一种方式,没有日志,也不产生回滚数据,速度比delete快,但是一旦删除无法恢复数据。
  • Delete records, 导入数据前先将数据表中的数据以delete方式清空,有日志记录,因此若是误删除后,数据还可以恢复。
  • Disable triggers, 在导入数据前禁用所有触发器,导入后再启动它们,此选项可以提升导入性能
  • Disable foreign key constraints, 在导入数据前禁用所有外键约束,导入后再启动它们,此选项可以提升导入性能
  • Commit every ____ records, 设置每过多少条记录commit一次。

Tags: ,

Leave a Reply

You must enable javascript to see captcha here!