oracle不同版本数据库的导⼊导出规则
Oracle的imp/exp组件是我们常⽤的⼯具,它的⼀个操作原则就是向下兼容。
下⾯是据此总结的⼏个使⽤规则和相关测试:
规则1:低版本的exp/imp可以连接到⾼版本(或同版本)的数据库服务器,但⾼版本的exp/imp不能连接到低版本的数据库服务器
--1.1 使⽤9i客户端通过imp连接到10g数据库OK 注意,当10g数据库中遇到有⼤对象(BLOB, CLOB)的表时,也会出现错误:EXP-00003 EXP-00003:未到段(4,99363)的存储定义这个错误⽹上号称可以通过修改系统视图EXU9TNE解决,没有验证过:具体的视图为: EXU9TNE 该视图初始创建时的位置
为: $ORACLE_HOME/rdbms/admin/catexp.sql⾥初始的定义为: CREATE OR REPLACE VIEW EXU9TNE (tsno, fileno, blockno, length) AS SELECT ts#, segfile#, segblock#, length FROM sys.uet$ WHERE ext# = 1 以sys⽤户登录数据库服务器重新建⽴该视图: CREATE OR REPLACE VIEW EXU9TNE (tsno, fileno, blockno, length) AS SELECT ts#, segfile#, segblock#, length FROM sys.uet$ WHERE ext# = 1 UNION ALL select "TSNO","FILENO","BLOCKNO","LENGTH" u9tneb
--1.2 使⽤10g客户端通过imp连接9i数据库:连接失败(⽽不是导出失败) EXP-00056: 遇到 ORACLE 错
误 6550 ORA-06550: 第 1 ⾏, 第 41 列: PLS-00302: 必须说明 'SET_NO_OUTLINES' 组件 ORA-06550: 第 1 ⾏, 第 15 列: PL/SQL: Statement ignored EXP-00000: 导出终⽌失败
规则2:⾼版本exp出的dmp⽂件,低版本⽆法imp(⽆法识别dmp⽂件)
--2.1 使⽤10g客户端exp出10g的数据OK --2.2 使⽤9i客户端imp上⾯所导出的dmp⽂件到10g或者9i:可以连接到10g中,但⽆法识别⽂件 IMP-00010: 不是有效的导出⽂件,标题验证失败 IMP-00000: 未成功终⽌导⼊即9i的客户端⽆法识别10g客户端imp出的⽂件格式 C:\Documents and Settings\yuechaotian>
规则3:低版本exp出的dmp⽂件,⾼版本可以imp(向下兼容)
-- 3.1 使⽤9i客户端exp出9i中的数据OK -- 3.2 使⽤10g客户端imp上⼀步的数据到10g数据库中OK
规则4:从Oracle 低版本的Export数据可以Import到Oracle⾼版本中,但限于Oracle的相邻版本,如从Oracle 7 到 Oracle 8。对于两个不相邻版本间进⾏转换,如从Oracle 6 到 Oracle 8,则应先将数据输⼊到中间版本—Oracle 7,再从中间数据库转⼊更⾼版本。 --我使⽤10g的imp功能,可以将由817导出的dmp ⽂件直接导⼊10g中,这与该规则的介绍不同。(该规则出⾃⾼道强的《Oracle导⼊导出⼯具实现数据库移植》)综上所述,如果想把⼀个10g数据库中的数据导⼊到9i数据库中,只有⼀个⽅法:⽤9i的客户端exp出10g的数据,然后再imp进9i,⽽且此时10g的库中还不能有⼤对象(BLOB, CLOB)的表如果
现场只有10g 的客户端,导回了10g数据库的数据,在所⾥可以先⽤10g的客户端导⼊到⼀个10g的中间库中,然后再⽤9i的客户端exp出10g中间库的数据,然后再imp进9i数据库⽤9i的客户端在两个10g数据库倒换数据也是可以的。
为什么oracle网站进不去
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论