整个升级过程预计耗时1小时 停机时间2011/05/11 18:00-19:00
升级预检查
使用10g环境登录
Sqlplus / as sysdba
Spool upgrade_info.log
@11gORACLE_HOME/rdbms/admin/utlu112i.sql
Spool off
查看log中的warning信息,其中timezone问题需要解决,方法如下:
--升级完成后,执行如下步骤
Startup upgrade
Dbms_dst.upgrade(14)
Shutdown immediate;
startup
其中需要用到的两个文件timezlrg_14和timezone_14已经存在于ORACLE_11g_home/oracore/zoneinfo
正式升级步骤
1、安装11202 --已执行
上传11202.tar.gz到primary/phy standby,并解压
目录为/data/oracle/product/11202
--relink新oracle_home
[oracle@racdb02 ~]$ cd /data/oracle/product/11.2.0/db1
[oracle@racdb02 db1]$ export ORACLE_HOME=/data/oracle/product/11.2.0/db1
[oracle@racdb02 db1]$ cd bin
[oracle@racdb02 bin]$ ./relink all > _all.log
2、停止standby
登录primary,停止向备库传输日志
Alter system setlog_archive_dest_state_2=defer;
登录phy standby,停止恢复进程
alter database recover managed standby database cancel;
3、升级主库
登录primary
--关闭数据库
Lsnrctl stop;
Alter system checkpoint;
Shutdown immediate;
--将参数文件、口令文件、tnsnames.ora、listener.ora复制到11202的目录下
Cd /data/oracle/product/10.2/db1/dbs
Cp init.ora /data/oracle/product/11202/db1/dbs
Cp orapw /data/oracle/product/11202/db1/dbs
Cp spfile.ora /data/oracle/product/11202/db1/dbs
Cd /data/oracle/product/10.2/db1/network/admin
cp listener.ora /data/oracle/product/11202/db1/network/admin
cp tnsnames.ora /data/oracle/product/11202/db1/network/admin
--修改listener.ora里面的ORACLE_HOME,设置成/data/oracle/product/11202/db1
--修改.bash_profile, 将ORACLE_HOME更改为/data/oracle/product/11202/db1
In 10g--开启flashback database,为升级失败快速回滚 参照http://www.dbafan.com/blog/?p=356
Startup mount
设置db_recovery_file_dest /db_recovery_file_dest_size 参数,
开启flashback database
Create restore point before_upgrade guarantee flashback database;
Shutdown immediate
11g
--升级数据字典
Startup upgrade
Spool upgrade_exec.log
@catupgrd.sql—耗时将近30分钟
Spool off
--重启数据库
Startup
@utlu112s.sql—post-upgrade status tool,提供升级总结,如果日志有异样,须trouble shooting
@catuppst.sql--perform. upgrade actions that do not require the database to be in UPGRADE mode
--编译无效对象
@?/rdbms/admin/ultrp.sql
select comp_name,version,status from sys.dba_registry
--开启listener
Lsnrctl start
--主库成功升级
4、升级备库
--关闭数据库
Lsnrctl stop
Shutdown immediate
----将参数文件、口令文件、tnsnames.ora、listener.ora复制到11202的目录下(其中口令文件要从主库复制过来)
Cd /data/oracle/product/10.2/db1/dbs
Cp initedw1.ora /data/oracle/product/11202/db1/dbs
--登录primary scp orapwedw1 10.0.0.phy standby: /data/oracle/product/11202/db1/dbs
Cp spfile.ora /data/oracle/product/11202/db1/dbs
Cd /data/oracle/product/10.2/db1/network/admin
cp listener.ora /data/oracle/product/11202/db1/network/admin
cp tnsnames.ora /data/oracle/product/11202/db1/network/admin
--修改listener.ora里面的ORACLE_HOME,设置成/data/oracle/product/11202/db1
--修改.bash_profile, 将ORACLE_HOME更改为/data/oracle/product/11202/db1
Source .bash_profile
--重启数据库
Startup mount
alter database recover managed standby database disconnect from session using current logfile;
--开启监听器
Lsnrctl start
--登录primary
Alter system set log_archive_dest_state_2=enable;
Alter system switch logfile;
如果升级成功,需要修改compatible=11.2.0
升级后续检查工作(非常重要)
首先要尝试登陆一下升级后的11g,查看listener是否能够正常工作;
升级之后的ORACLE_HOME会有所变化,相应的脚本程序也必须要修改,否则会执行报错;
升级失败回滚
第三步 回滚数据库(升级失败情况下)
--11g
SQL> shutdown immediate;
SQL> startup mount
SQL> flashback database to restore point before_upgrade;
--10g
Startup mount
Alter database open resetlogs
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15480802/viewspace-695052/ ,如需转载,请注明出处,否则将追究法律责任。