Oracle exp/imp,备份或导入时注意的事项:
本篇主要讲述的是Oracle exp/imp备份导入的实际操作中需要注意的事项的介绍,凡事都不是完美的。不论哪种计算机语言,不论它的实际操作技巧是如何灵活,都是避免不掉它的缺陷之处,当然在Oracle exp /imp备份导入时。我们也需要注意一些在实际操作中经常发生的事项。
Oracle exp/imp备份导入注意事项:
(1) 数据库对象已经存在
一般情况, 导入数据前应该彻底删除目标数据下的表, 序列, 函数/过程,触发器等;数据库对象已经存在, 按缺省的imp参数, 则会导入失败如果用了参数ignore=y,
会把Oracle exp文件内的数据内容导入如果表有唯一关键字的约束条件, 不合条件将不被导入如果表没有唯一关键字的约束条件, 将引起记录重复。
(2) 数据库对象有主外键约束
不符合主外键约束时, 数据会导入失败;解决办法: 先导入主表, 再导入依存表,disable目标导入对象的主外键约束, 导入数据后, 再enable它们。
(3) 权限不够
如果要把A用户的数据导入B用户下, A用户需要有imp_full_database权限。
(4) 导入大表( 大于80M ) 时, 存储分配失败
默认的EXP时, compress = Y, 也就是把所有的数据压缩在一个数据块上.导入时, 如果不存在连续一个大数据块, 则会导入失败.导出80M以上的大表时, 记得compress= N, 则不会引起这种错误.
(5) imp和exp使用的字符集不同
如果字符集不同, 导入会失败, 可以改变unix环境变量或者NT注册表里NLS_LANG相关信息.导入完成后再改回来.
(6) imp和exp版本不能向上兼容
imp可以成功导入低版本exp生成的文件, 不能导入高版本Oracle exp生成的文件。
Example:普通数据库全部导出和导入:
exp 用户/密码@dbName file=路径.dmp full=y --还有其他的参数,看需要进行填写
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log full=y commit=y ignore=y --全部导出
$ imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbuser touser=dbuser2 --全部导入
以上就是对Oracle exp/imp备份导入注意事项相关的内容的介绍。
转载自 http://blog.chinaunix.net/uid-7589639-id-2948964.html