Oracle DataGuard 升级 [11.2.0.1 -> 11.2.4] **Primary:**11.2.0.1 单机,orcl。 Standby: 11.2.0.1 单机,orcldg 当前DG环境示意图: DG环境 需求:升级至11.2.4 升级思路: 主库暂停归档传输;备库安装新版本软件,备库启动到mount;主库安装软件,主库升级数据库,主库启用归档传输,备库开启日志恢复。 注意: 11g新版本软件安装到一个新目录下,注意copy之前的spfile、密码文件、network file等(监听配置文件的静态监听部分需要修改); 备库只升级软件版本。数据库升级是通过主库升级后通过应用主库归档完成升级和同步的。 操作步骤: 1.主库暂停归档向备库传输 2.备库在新目录下安装新版本软件 3.备库启动到mount状态 4.主库安装软件,升级数据库 5.主库启用归档向备库传输 6.备库开启日志恢复 7.检查备库、主库升级情况 8.定时任务检查修正 1.主库暂停归档向备库传输 show parameterlog_archive_dest_state_X alter system setlog_archive_dest_state_X=defer scope=both sid='*'; 这里是暂停Orcl的主库的log_archive_dest_state_2,如果是多个备库,也需要暂时其他的通道。 show parameterlog_archive_dest_state_2 alter system set log_archive_dest_state_2=deferscope=both sid='*'; 2.备库在新目录下安装新版本软件 **2.1 关闭数据库,监听。** shutdown immediate lsnrctl stop 2.2 备库在新目录下安装Oracle 11.2.4 软件。 --Orcldg: --创建新的$ORACLE_HOME目录 $ mkdir -p/u01/app/oracle/product/11.2.4/db_1 --编辑oracle用户环境变量,修改ORACLE_HOME变量值为新的目录 vi ~/.bash_profile exportORACLE_HOME=$ORACLE_BASE/product/11.2.4/db_1 3.备库启动到mount状态 环境变量修改为新目录ORACLE_HOME 11.2.4 新目录注意copy之前的spfile和network file(tnsnames.ora listener.ora)等 --network file(tnsnames.ora listener.ora sqlnet.ora) [oracle@oracle2admin]$ cp /u01/app/oracle/product/11.2.0/network/admin/*.ora/u01/app/oracle/product/11.2.4/db_1/network/admin/ --SPFILE cp/u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfileorcl.ora/u01/app/oracle/product/11.2.4/db_1/dbs/ 启动数据库到mount状态,启动监听。 4.主库安装软件,升级数据库 安装、升级相关过程: 4.1 备份数据库 升级是一个很大的动作,升级前需要事先备份数据库。 --rman.sql morerman.sql run{ allocate channel d1 TYPE disk; allocate channel d2 TYPE disk; allocate channel d3 TYPE disk; allocate channel d4 TYPE disk; backup as compressed backupset databaseformat '/home/oradata/rman/data_%d_%T_%s.bak' plus archivelog format'/home/oradata/rman/arch_%d_%T_%s.bak'; release channel d1; release channel d2; release channel d3; release channel d4; } --rman.sh catrman.sh #!/bin/bash exportORACLE_BASE=/u01/app/oracle exportORACLE_HOME=$ORACLE_BASE/product/11.2.0 exportORACLE_SID=orcl exportLD_LIBRARY_PATH=$ORACLE_HOME/lib exportPATH=$PATH:$ORACLE_HOME/bin:$HOME/bin rmantarget / @/home/oradata/rman/rman.sql log=/home/oradata/rman/rman.log --nohup执行 备份数据库 nohupsh rman.sh & 4.2 关闭数据库,监听 停止监听,关闭数据库: $ lsnrctl stop SQL> shutdownimmediate 4.3 新目录下安装新版本软件 主库: ./runInstaller 图形安装新版本软件(upgrade)。 root需要执行的脚本按提示执行。 注意,监听程序不需要配置。 4.4 旧版本软件执行升级检查 在11.2.0.1的sqlplus 执行11.2.4的utlu112i.sql,进行升级检查。 $ sqlplus / assysdba SQL> startup SQL> SPOOLupgrade_info.log SQL>@/u01/app/oracle/product/11.2.4/db_1/rdbms/admin/utlu112i.sql SQL> SPOOL OFF 根据提示修正不符合升级条件的地方。 --purgeDBA_RECYCLEBIN; select count(*) fromDBA_RECYCLEBIN; purgeDBA_RECYCLEBIN; --EXECUTEdbms_stats.gather_dictionary_stats; EXECUTEdbms_stats.gather_dictionary_stats; 4.5 升级前确认无效对象数量 select count(*) fromdba_objects where status<>'VALID'; 这里是0。 --正常关闭数据库: shutdown immediate 4.6 新版本软件对应的环境变量 修改环境变量中指定11.2.4,并用source或者重新使用oracle用户登录生效 exportORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/11.2.4/db_1 4.7 新版本软件环境,spfile,密码文件和网络配置相关文件 copy 参数文件spfile,network file「tnsnames.ora listener.ora sqlnet.ora」,密码文件, --拷贝参数文件spfile: [oracle@orcl ~]$ cp/u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfileorcl.ora/u01/app/oracle/product/11.2.4/db_1/dbs/ --拷贝密码文件: [oracle@orcl ~]$ cp/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapworcl /u01/app/oracle/product/11.2.4/db_1/dbs/orapworcl --拷贝网络配置相关文件「tnsnames.ora listener.orasqlnet.ora」 [oracle@orcl ~]$ cp/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/*.ora /u01/app/oracle/product/11.2.4/db_1/network/admin/ --修正DG listener.ora 中静态监听内容(ORACLE_HOME),然后重启监听文件 SID_LIST_LISTENER= (SID_DESC=(GLOBAL_DBNAME= orcl)(ORACLE_HOME = /u01/app/oracle/product/11.2.4/db_1)(SID_NAME = orcl) ) 4.8 升级数据库 --使用新目录中的DBUA升级 [oracle@orcldatabase]$ /u01/app/oracle/product/11.2.4/db_1/bin/dbua file:///C:/Users/LENOVO/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg file:///C:/Users/LENOVO/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg file:///C:/Users/LENOVO/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg file:///C:/Users/LENOVO/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg file:///C:/Users/LENOVO/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg file:///C:/Users/LENOVO/AppData/Local/Temp/msohtmlclip1/01/clip_image012.jpg file:///C:/Users/LENOVO/AppData/Local/Temp/msohtmlclip1/01/clip_image014.jpg file:///C:/Users/LENOVO/AppData/Local/Temp/msohtmlclip1/01/clip_image016.jpg file:///C:/Users/LENOVO/AppData/Local/Temp/msohtmlclip1/01/clip_image018.jpg file:///C:/Users/LENOVO/AppData/Local/Temp/msohtmlclip1/01/clip_image020.jpg file:///C:/Users/LENOVO/AppData/Local/Temp/msohtmlclip1/01/clip_image022.jpg file:///C:/Users/LENOVO/AppData/Local/Temp/msohtmlclip1/01/clip_image024.jpg 也可使用手动升级的方式升级数据库 --upgrade模式打开数据库 SQL> startupUPGRADE SQL>@?/rdbms/admin/catupgrd.sql SQL> startup SQL>@?/rdbms/admin/utlu112s.sql SQL> selectcount(*) from dba_objects where status<>'VALID'; SQL>@?/rdbms/admin/utlrp.sql SQL> shutdownimmediate SQL> startup 检查主库升级情况: SQL> select ACTION_TIME,ACTION,NAMESPACE,VERSION,ID from registry$history; ACTION_TIME --------------------------------------------------------------------------- ACTION NAMESPACE ------------------------------ ------------------------------ VERSION ID ------------------------------ ---------- 30-DEC-20 02.14.08.219110 PM VIEW INVALIDATE 8289601 30-DEC-20 02.14.08.285613 PM UPGRADE SERVER 11.2.0.4.0 ACTION_TIME --------------------------------------------------------------------------- ACTION NAMESPACE ------------------------------ ------------------------------ VERSION ID ------------------------------ ---------- 30-DEC-20 02.14.32.964367 PM APPLY SERVER 11.2.0.4 0 |
5.主库启用归档向备库传输 show parameterlog_archive_dest_state_X alter system setlog_archive_dest_state_X=enable scope=both sid='*'; altersystem set log_archive_dest_state_2=enable scope=both sid='*'; show parameterlog_archive_dest_state_2 show parameterlog_archive_dest_state_3 6.备库开启日志恢复 备库mount状态下开启日志恢复,等待恢复完成,终止日志恢复然后将数据库在open状态后再开启日志恢复。 --mount状态下开启日志恢复 startup mount alter databaserecover managed standby database disconnect from session; --等待恢复完成... --取消日志恢复 alter databaserecover managed standby database cancel; --打开数据库 alter database open; --open状态下开启日志恢复 alter databaserecover managed standby database using current logfile disconnect from session; 7.检查备库升级情况 select ACTION_TIME,ACTION,NAMESPACE,VERSION,IDfrom registry$history; SQL> select ACTION_TIME,ACTION,NAMESPACE,VERSION,ID from registry$history; ACTION_TIME --------------------------------------------------------------------------- ACTION NAMESPACE ------------------------------ ------------------------------ VERSION ID ------------------------------ ---------- 30-DEC-20 02.14.08.219110 PM VIEW INVALIDATE 8289601 30-DEC-20 02.14.08.285613 PM UPGRADE SERVER 11.2.0.4.0 ACTION_TIME --------------------------------------------------------------------------- ACTION NAMESPACE ------------------------------ ------------------------------ VERSION ID ------------------------------ ---------- 30-DEC-20 02.14.32.964367 PM APPLY SERVER 11.2.0.4 0 |
至此,OracleDataGuard 从版本11.2.0.1成功升级到版本11.2.4。
|