0mcle数据库目前已大量应用于各企事业单位。但很多系统建立时间较早,数据库版本较老,然而由于某些系统的运行特殊性(例如电信单位,银行),很难实行关机维护。也正由于此,很多Oracle数据库在短时间内无法升级版本已获得更好的稳定性和可用性。一旦到了真正需要升级的时候又面临了高版本与低板拳间的兼容性问题。本文通过简述一个内部的资源管理系统从Oracle6.5迁移到Oracle
科技信息
0论坛 o I T
S INC C E E&T C N L YIF R E H O OG O MATO N IN
21 0 2年
第2 9期
浅 r e据不同析Oa数库版本问移程中疑题 d迁过的难问
王劭明 (上海交通大学信息安全工程学院中国上海
【摘
20 0 ) 00 3 '
]rc数据库目已大量应用于各企事业单位。但很多系统建立时间较早, Oal e前数据库版本较老,而由于某些系统的运行特殊性然
(例如电信单位,银行 )很难实行关机维护。正由于此,多 O al数据库在短时间内无法升级版本已获得更好的稳定性和可用性。,也很 rce一旦到了 真正需要升级的时候又面临了高版本与低板拳间的兼容性问题本文通过简述一个内部的资源管理系统从 O al . rce 5迁移到 O al9的实例 6 rc i e来探讨这一问题。(同样的方法也适应于 Orce0 all )
【关键词】r l; 0a e数据库; c数据库迁移
0引言
0rc ah数据库系统在当今的企业中的应用已经非常广泛,它是一 c e t a l s a e w g a aie C: r c eo a a ao a 0 wz 1d f ie r a e t b e p e z ld tfl '\ a l\ r d t\ r 8\ g . b sz o个通用的数据库系统 .具有完整的数据管理功能:为关系型数据库 .作 l 0 M O 0它是一个具有完备关系的产品:同时作为分布式数据库系统 oal rce则 dfut trg (pt ces O;这部分建议使用 O al eal oae s ci rae ) n rce 实现了分布式处理功能 Ma ae n o sl ngmet noe创建 C由于有些企事业单位的部分在用系统 .在建之初使用的是当时的 O al rc e数据库 . Oa l 65然而出于系统的特殊性 f可长时间停机如 rce .. 不 c e t s rh ma d n i e y x z 2 31 r ae u e u n i e tf d b x x 1 i维护等原因)数据库的版本基本停留在最初版本。随着使用时间的延 d f u tt b e p e e a l a l s a e TBS HUMAN 续.系统硬件处理能力日渐降低 .新硬件和数据库系统的需求渐渐更 t mp r r a l s a e t mp e o ay tb e p c e 成为一个刚性需求
—
复到D l B中
。导人前需在被迁入库中建好表空间和用户,并将表空间和相关权限赋给该用户。(本例中参见下面)
q oa u lmi d o S HUMAN; u t n i t n TB e
—
1 Orc a l据库迁移使用的命令 e数
g a tc n e t e o r e t U MAN; r n o n c . s u c o H r
22在 DB . I上使用 O aI Maae e osh或命令行 (m ) rce ng m t C noe a ip进行数据导出: 导入操作 (命令格式参见前面部分 ) 如数据库服务 d l用户 uel密码 p 2 b, sr, 13下的 t l0, be2 23然而导人过程中出现错误。错误类似代码如下: a, 1t l, . bE a O, t l0 a e 3表到 d\r\aa目录下, b:a t o d导出文件名为 d lakd p. b be .m语句为: I MP- 0 0:ORhC r o 2 n o n e e - 0 3 0 LE e r r 9 2 e c u t r d
epuelp 2@d lfe d\r\aa b b c . als (be 1 x sr/ 13 b i=: adt\ 1akd tbe=t l0, l o d mp a
t b e 2. b e 3。 a l0 t l 0 J a ̄
,
O al rce基本使用的导入导出命令为 i/x mpeD
ORA-0 2: s i g o n a i p i n 09 2 misn ri v ld o t o
I P 0 01: olwigsae n aldwi M - 0 7 flo n ttme tfi t ORAC ro 2 e h LE err9 2:
将上述文件恢复的语句为: ” R A ET L U E I F C E T AB E” S R N O” ( S RN ME AR H R23 ) T E ̄”V C A (o, t U epnel 1 3 b ul yfe d\r d td 1 akd .: x sr/ 2@d lfl= i=: a aa bb c .注如需” E I A p l o\\ mp R A, ME” 'R HA 23 )” N VA C R (0.备份文件中的所有表恢复,要加上 f l。如果只需 t h 1则语句需 u= lv a . bO”A S O D A H R (D,T B E P C’ F IE Y T M” P S W R”V RC A 23 ) A L S A E ' FC S S E  ̄) O为: L 0GGI NG NOCOMPRES”;S 24多次尝试后问题依旧 .
经检查发现错误原因发生在选项 _ N C M R S上但由于 D 2 O O P ES B数据库已经无法正常启动 .无法再重新导出一个 d mp文件。目前解决方法只有从已有的 bcu A akp mp文件着手作者开始尝试修改 d p m文件内容使用 u ad 2 d e i或者类似的 r ̄G文本编辑软件打开 bc u . p ak p m文件。 d ̄发现类似乱码的内容,其实为 1 6进制的字符,用搜索功能,使找到连续字符串:4 F4 F4 05“E4 3 D 5 2 4 i puelD2@d lfe d\r\aad 1 akd nr= m sr/13 b i=: ad t bb c . l o\ mpi oeY上面可 4 35” 4 F4 F4 O5 55 3为十进制字符 7 96 g] 55 3 E 4 34 D 5 24 35 87 7能有点问题,因为有的表已经存在 .系统会报错,该表就不进行导 7 78 26 38对 97 O8 98 3也就是字符“ OC MP E S的 A C I N O R S” S I码值使人。 用替换功能把 N C M R S字符全部用空格替代值得注意的是 O O PES在语句后面加上 inr- g oe y即可这里不能简单地使用空格去替代 4 F4 F4 05 55 3这 E 4 34 D5 24 35 . 2如只需将 d\r\aad 1 mp中的表 t l0: adt\b . 0 A a e l导人则: 样 d b i mp mp文件结构会被破坏 .导致无法还原必须使用“ 02 O2 0 2 O2 O2 ueLp 2@d l i=: r\aad 1 ak mpt ls ( be 1 sr/1 3 b l d\ ad t b b c . be=t lO ) fe o\ d a a 2 0 02 ” 02 0 0去替代。因为 2 ( 2 2 0十六进制)就是 3 ( 2十进制 )也就是,有些情况要先将表彻底删除 .然后导入 S ae空格) AS H码值 p c(的 C替换完成后保存 d mp文件 2数据库迁移中的问题实例 2重新导入文件 . . 5发现无报错。使用原数据库用户名登录后检查数现有数据库如下: 据也正常导入成功 D B1:主机操作系统 Wid)s P(S n,, O )Orc iDR ss m: wX al 9 ( ) vt e e执行环境:可以在 S L L .X Q P US E或者 DO ( E
S命令行 )中执行 . O DS中可以执行时由于在 oal 8中安装目录\ a IBN被设置为全局 rc i e o 8\ I r路径 .目录下有 E P.XE与 I .XE文件被用来执行导入导出该 X E MPE数据导入: 1将 d\rXaad 1 ak mD中的数据导入 d l: ad t b bc d o\ . b数据库中
ma a e n gr
e p u e l p 2@ d l fl=: r\ a ad b c d a l s t b e。 x s r/ 1 3 b i d\ a d t\ bl a k.mp t b e= a l 01 e o
3其他问题
w :zl z wg 表空间名:目 WZ L TQ G由于老版本的数据库 o c 6之类 .经常会搭配使用 rl . a e5 l h ma xz2 3表空间名: B  ̄MA1 u n: xx 11 T S HU N P w rule这类开发软件在做数据库联接的时候必须要注意很多 o eB i r d特别的:O al maae e t o sl: yma om tm 密码为细节问题上例中的数据库在恢复后由于 I rce n gm n noe ss n: c e e pf此 P地址发生了变化 .则在 0 al Ma ae n cnoe默认密码建议用户第一次登陆后自行修改) P rce n gmet o sl B中需要重新配置一个新的数据链接很多情况下可能会遇到如下 D 2主机操作系统 S lr 8 B: oai s O al 6 rce . 5 ss m: ̄ ae的错误提示: pes o n c a h o eb i e aa go n rhsi yt Ha gr e n“ laecn et step w rul rcto w e.i s d l t w g:zl zlw譬 表空间名: B T WZ L G ne e s r o h n t l o n c in t o a l o r n rv lg s o t e c s a y f r t e i ii c n e t o r c e t g a t p ie e n h a o i h m n: xx 1 1 u a xz2 3表空间名: B M T S Hu MN r p st r . e o io” y 2现有 D 2 . 1 B数据库导出文件 b cu . p al p m,导出部分使用了 ep k d x命这类问题的出现原因在于:aao beo nl c ̄ gt l w e名称不正确。 t l a" 令,由于操作系统问题, B但是 D 2已经不能再正常
启动需要将数据恢解决方法是: (下转第 1 5页 ) 2
_
l3 1