昨天被问到一个问题, 如何升级一个32bit的数据库到64bit的数据库.
如果使用DBUA, 运行完成后, 转换就完成了.
如果手工来做, 就需要把文件复制到相应的位置, 将数据库启动到upgrade状态, 运行utlirp.sql, 然后将数据库启动到open状态, 运行utlrp.sql. 可参考Metalink Note 62290.1.
除此之外, OLAP Option也需要特别处理. 在Metalink Note 352306.1中有说明. 如果嫌麻烦,可以干脆卸载OLAP, 然后重装.
除了在相同平台上在32bit和64bit之间迁移, 也可以在相同endian平台之间使用rman convert命令迁移.
如果没有足够的停机时间, 而机器又比较充裕, 可以考虑跨平台的dataguard, 搭建一个datagaurd环境, 可在不破坏原有环境的情况下进行测试新的数据库. 关于跨平台Dataguard支持的平台, 可参考Metalink Note 413484.1, 一些有意思的配置, 总结如下:
10g后, HP-UX(PA-RISC)(PLATFORM_ID 3) 和HP-UX(Itanium)(Platform_ID 4)之间可以做dataguard.
10g后, MS Windows(x86)(PLATFORM_ID 7), MS Windows(IA64)(PLATFORM_ID 8), MS Windows(x64)(PLATFORM_ID 12) 之间可以做dataguard.
10g后, Linux(x86)(PLATFORM_ID 10), Linux(IA64)(PLATFORM_ID 11), Linux(x86_64)(PLATFORM_ID 13) 之间可以相互做Dataguard
11g后, Linux和Windows之间可以做Dataguard, 但是32bit Linux不能和64bit Windows做
10g后, Solaris(x86)(PLATFORM_ID 17)可以和Solaris(x86-64)(PLATFORM_ID 20)做Dataguard
11g后, Solaris(x86-64)可以和Linux(x86-64)做Dataguard.
64bit z/Linux(PLATFORM_ID 9)和Linux on POwer(PLATFORM_ID 18)之间可以做Dataguard.
还没有做过复杂的跨平台Dataguard, 将来有机会, 一定要试下.
阅读(2134) | 评论(0) | 转发(0) |