物理文件升级直接升级 oracle 10 到 oracle11g
环境概述:
源环境:oracle 10204 数据文件大小220G 数据量180G
系统平台:wind 2003
目标环境:oracle 11024
系统平台:wind 2008
方案目标:实施方便,停机时间短
由于跨版本,初步定的迁移方案可以有:
1. 逻辑导出 exp/imp,impdp/expdp
2.老环境直接升级到11g ,然后再拷贝文件到新环境
3. 物理文件拷贝到新环境,然后直接升级
4 传输表空间
5 基于rman增量+ 归档增量,然后新环境直接升级
6 ogg
7 dg ,然后升级
实际情况是老环境本地存储比较差,之前测试采用逻辑导出发现非常慢
即本地存储io性能不是很好。
当时的思考:
综合考虑数据库数据量不大,老环境本地io性能差,业务停机窗口要仅可能小,那么
采用1方案,时间是最大的;操作最简单,回退安全性高
方案2 需要考虑环境回退,主要时间是升级时间,和文件拷贝到新环境;回退相对低一点点
方案3主要时间是升级时间,和文件拷贝到新环境;
方案4 导出元数据时间加文件拷贝到远程服务器时间加远程服务器元数据导入时间
方案3主要时间是升级时间,和文件拷贝到新环境;
方案5 主要时间是最后一次增量数据拷贝时间,新环境应用时间,升级时间
方案6 几乎为零,维护相对最麻烦
方案7 主要是升级时间和配置修改时间
综上几种方案,在客户停机时间许可,工作量维护上相对少。最终实际采取的是方案3.
操作步骤:
前期工作:
新环境:
新建实例环境,同步密码文件,tnsnames.ora listener.ora文件
建密码文件:
ORADIM-NEW -SID SID-SYSPWD PASSWORD -MAXUSERS USERS
-STARTMODEAUTO -PFILE ORACLE_HOME\DATABASE\INITSID.ORA
老环境运行升级检测脚本
@?/rdbms/admin/utlu112i.sql ---该脚本是从11g环境拷贝过来的
修复脚本执行的错误结果
停机迁移:
停老环境数据库;
拷贝所有文件(数据文件,日志文件,控制文件)到新环境(数据存放路径和老环境一样,省去rename操作)
新环境升级命令:
先调整shared_pool large_pool java_pool 这个3个内存区域的初始化大小,可以加快升级脚本的执行;升级完成后记得改小
STARTUP UPGRADE
@?/rdbms/admin/catupgrd.sql
@?/rdbms/admin/utlrp.sql
简单的一些思考记录下,到此结束。