oracle数据处理之exp/imp
oracle 导出/导入数据方法一
exp/imp工具:
1 将数据库oracle01完全导出,DBA:sys,密码:123456;用户名Scott 密码123456 导出到D:\emp.dmp中
exp sys/123456@oracle01 file=d:\emp.dmp full=y
(exp user/password@192.168.0.46/orcl10g file=F:/fileSys.dmplog=F:/fileSys.log statistics=none tables=table01,table02,table03)
参数:
BUFFER 数据缓冲区的大小
OWNER 所有者用户名列表
rows=y 带数据导出导入;rows=n 不带数据的导出导入,只导出表结构。
INDEXES 导出索引 (Y)
GRANTS 导出权限 (Y)
TABLES 表名列表
FILE 输出文件 (EMP.DMP)位置和文件名
FULL 导出整个文件 (N)
QUERY 选定导出表子集的子句
全库导出:
exp sys/123456 file=d:\full.dmp full=y
用户导出:
exp scott/123456 file=d:\scott.dmp OWNER=scott
用户单表导出:
exp scott/123456 file=d:\scott.dmp OWNER=scott tables=(emp)
exp scott/tiger tables=emp query=\"where job=\'salesman\' andsal\<1600\" file=/directory/scott2.dmp
说明:在exp里面加上导出emp的查询条件job='salesman' and sal<1600
全库导入:
imp sys/123456 file=d:\full.dmp full=y
用户模式:
IMP Scott/123456 BUFFER=64000 FILE=C:/scott.DMP FROMUSER=Scott TOUSER=Scott
这样用户scott的所有对象被导入到文件中。必须指定FROMUSER、TOUSER参数,这样才能导入数据
表模式:
EXP Scott/123456 BUFFER=64000 FILE=C:/emp.DMP OWNER=Scott TABLES=(emp)
这样用户Scott的表emp就被导入。
Ignore 参数在Oracle 的Exp/imp的意义是:
如果用了参数ignore=y, 会把exp文件内的数据内容导入
如果表有唯一关键字的约束条件, 不合条件将不被导入
如果表没有唯一关键字的约束条件, 将引起记录重复
解释:
当要导入数据库中已经存在了某个表(test),如果该表没有唯一性约束,那么在导入时加参数ignore=y,则会把数据完全导入到表中,而且不报错。
当表已经存在了唯一性约束,特别是主键的约束,那么在导入时,只导入主键中不存在的记录. 导入过程中会有警告.
利用这个原则可以做一个增量导入.
注意:exp/imp的使用 (服务器端和客户端都可以执行,并且备份文件可以在客户端产生)