Oracle exp备份导入注意的六个事项

来源:互联网 发布:4s店客户数据分析报告 编辑:程序博客网 时间:2024/05/01 04:36

凡事都不是完美的。不论哪种计算机语言,不论它的实际操作技巧是如何灵活,都是避免不掉它的缺陷之处,当然在Oracle exp备份导入时。我们也需要注意一些在实际操作中经常发生的事项。

 

export到import关系到四个字符集

源数据库的字符集——A
export_session的NLS_LANG环境变量——B
import_session的NLS_LANG环境变量——C
目标数据库的字符集——D

1.  A=B时,exp_session不会对源数据库数据进行字符集转换,并把exp_session的字符集(即源数据库字符集)记录到导出文件(导出文件头的第2、3个字节)中。

2.  A!=B时,9I之前的DB exp_session会对源数据库的所有数据进行字符集转换,转换为NLS_LANG的字符集B,并把exp_session的字符集记录到导出文件中;9I及9I以后的DB, exp_session只会对数据字典的内容进行字符集转换,转换为NLS_LANG的字符集B,其他数据仍为源数据库的字符集不变仍为A,还是会把exp_session的字符集B记录到导出文件中。3.  B=C时,import_session读dump文件的内容,检查导出时使用的字符集设置,发现与import_session的NLS_LANG相同,则dump文件导入到import_session不做字符集转换。

4.  B!=C 时,字符集B在导入到import会话时会转换成字符集C,注意:这种转换只能在单byte字符集之间进行,不支持单到多、多到单、多到多,所以对于多 Byte字符集的导入(如:UTF8)需要设置import_Session字符集和import_session字符集相同。 import_session字符集应该是export_session字符集的超集,否则,专有的字符将难以正确转换。

5.  C=D时,import_session中的数据不经过转换就直接插入数据库中。

6.  C!=D时,import_session中的数据需要转换后才能插入数据库中。目标数据库字符集是import_session字符集的超集,否则某些专有字符将不能正常转换。

Oracle exp备份导入注意事项:

 

(1) 数据库对象已经存在

 

一般情况, 导入数据前应该彻底删除目标数据下的表, 序列, 函数/过程,触发器等;数据库对象已经存在, 按缺省的imp参数, 则会导入失败如果用了参数ignore=y, 会把Oracleexp文件内的数据内容导入如果表有唯一关键字的约束条件, 不合条件将不被导入如果表没有唯一关键字的约束条件, 将引起记录重复。

 

(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生成的文件, 不能导入高版本Oracleexp生成的文件

 

使用方法:

 

例题格式及说明:

 

1.普通数据库全部导出和导入

 

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备份导入注意事项相关的内容的介绍,望你会有所收获。

 

Oracle 12c数据库企业版http://www.yuandingit.com/products/oracle/oracle_database/oracle_database/6587.html

0 0