将Oracle 10g data guard从现在的10.2.0.4版本升级到10.2.0.5版本。升级操作使用的补丁装包为补丁程序8202632。该包发布于2010年4月29日。具体信息如下:
补丁程序8202632: 10.2.0.5 PATCH SET FOR ORACLE DATABASE SERVER
上次更新时间 2010-4-29 上午9:20 (早于 2 年前)
产品 Oracle Database Family
发行版 Oracle 10.2.0.5
平台 Linux x86-64
大小 1.2 GB
下载访问权限 软件
分类 一般
升级对象的数据库为单实例数据库。
升级步骤
升级之前,关闭所有与数据库连接的应用程序。在整个升级过程中,应用程序必须关闭,不能读写数据库,在升级完成并验证过后才能启动。
在数据库服务器操作系统确认所有的1521端口的进程全部关闭后,进行正式升级操作。注意,如果还有1521的local进程,手工kill掉。
1、检查日志同步和应用情况
select max (SEQUENCE#),DEST_ID,APPLIED from v$archived_log group by DEST_ID,APPLIED ;
确保路径1和路径2的最大sequence#值一致,并且路径2对应的日志已经应用。
2、备份主库的全部数据和归档日志文件
这个备份结果是升级的完整备份,如果升级失败或者升级后检查应用使用时出现因版本升级导致不能用,且不能很快解决的问题时,用于恢复的一个备份集。
因此,这个备份集非常关键,务必保证有效。
3、设置路径2的日志归档状态为defer,关闭到备库的日志同步功能
使用alter system set log_archive_dest_state_2=defer;将log_archive_dest_state_2设置为defer。
4、正常关闭主库节点、备库节点的数据库实例及其监听器
使用shutdown immediate方式关闭数据库实例。
5、备份主库节点和备库节点上oracle数据库系统文件
在主库节点和备库节点上备份oracle文件的product目录,拷贝product目录到新目录product_10.2.0.4。
6、升级主库节点和备库节点的oracle数据库系统文件
使用补丁包p8202632_10205_Linux-x86-64.zip,将主库和备库的oracle升级到10.2.0.5。
在vnc下图形化安装oracle。
7、在主库节点上将升级数据字典
SQL> STARTUP UPGRADE
SQL> SPOOL upgrade_info.log
SQL> @?/rdbms/admin/utlu102i.sql
SQL> SPOOL OFF
SQL> SHUTDOWN
SQL> STARTUP UPGRADE
SQL> SPOOL patch10205.log
SQL> @?/rdbms/admin/catupgrd.sql
SQL> SPOOL OFF
完成后仔细检查patch10205.log文件
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
SQL> @?/rdbms/admin/utlrp.sql
SQL> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;
编译所有的对象,如果有无效的对象可以重复执行utlrp.sql脚本。
8、在主库节点上启动监听器和数据库实例,设置归档路径2参数的状态为enable
alter system set log_archive_dest_state_2=enable;
9、在备库节点上启动数据库实例,设置为自动恢复状态
alter database recover managed standby database using current logfile disconnect from session;
10、在主库节点切换日志,检查日志同步情况和data guard状态
在主库上校验数据库的保护模式和保护级别是不是一致的。
使用alter system switch logfile在主库节点上不停切换日志。然后使用下面的查询语句检查data guard在升级后的运行状况。
SQL> select protection_mode,protection_level from v$database;
PROTECTION_MODE PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY
在主库上检查是否有归档日志文件没有传到备库上,或者没有在备库上被应用。
SQL> select max (SEQUENCE#),DEST_ID,APPLIED from v$archived_log group by DEST_ID,APPLIED ;
MAX(SEQUENCE#) DEST_ID APP
-------------- ---------- ---
33 1 NO
33 2 YES
路径1和路径2的最大sequence#值是一致的,表示主库上写入本地和备库服务器上的归档日志文件是一致的,并且在备库上已经应用最新的日志文件。
如果检查结果符合要求,那么表示升级操作过程正常完成。
应用检查
启动部分应用,然后检查运行情况。
正常情况下,不会有什么问题。应用的java架包对10.2的小版本升级都是兼容的。