从10.1.0.3开始,oracle可以使用logical standby进行rolling upgrade
要求
1 数据库不能使用dataguard broker
2 保护模式只能是最大可用或最大性能
3 主库上对应的逻辑备库的log_archive_dest_n不能设置为mandatory,以便备库升级时不对主库产生影响
4 确认unsupported data types,查看dba_logstdby_unsupported;备库执行DBMS_LOGSTDBY.APPLY_SET('RECORD_UNSUPPORTED_OPERATIONS', 'TRUE')查看dba_logstdby_events ;升级完毕后可以通过expdp/impdp手工同步
步骤
1 停止逻辑备库的sql apply,升级备库然后开启sql apply
2 检测DBA_LOGSTDBY_EVENTS,确保及时发现alert并修正
3 执行主库切换
因为此时备库的版本比主库高,因此不能执行prepare阶段
直接执行ALTER DATABASE COMMIT TO SWITCHOVER TO LOGICAL STANDBY;
4 将unsupported data types对应的表使用数据泵导入备库
5 将备库切换成主库
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;此时的新主库因为版本比备库高,所以不能向其传送redo
6 升级此时的备库
然后开启sql apply,因为切换没有经过prepare步骤,此时需要以sys用户创建一个dblink
执行ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE NEW PRIMARY db_link_to_b;
若dataguard为physical且希望升级后还是physical,则rolling upgrade会麻烦一些
1
开启主库的flashback database,并创建一个restore point
SQL> SHUTDOWN IMMEDIATE;SQL> STARTUP MOUNT;SQL> ALTER DATABASE FLASHBACK ON;SQL> ALTER DATABASE OPEN;SQL> CREATE RESTORE POINT pre_upgrade GUARANTEE FLASHBACK DATABASE;2将物理备库转化成逻辑备库SQL> ALTER DATABASE RECOVER TO LOGICAL STANDBY KEEP IDENTITY;新建成的备库的db_name/dbid与主库保持一致,但是只能进行一次switchover
不可使用ALTER DATABASE RECOVER TO LOGICAL STANDBY db_name
转成逻辑备库后,需要进行以下设置
SQL> EXECUTE DBMS_LOGSTDBY.APPLY_SET('LOG_AUTO_DELETE', 'FALSE');--remote archived log在rolling upgrade需要使用(step 4)
SQL> EXECUTE DBMS_LOGSTDBY.APPLY_SET('MAX_EVENTS_RECORDED',DBMS_LOGSTDBY.MAX_EVENTS);SQL> EXECUTE DBMS_LOGSTDBY.APPLY_SET('RECORD_UNSUPPORTED_OPERATIONS', 'TRUE');3执行rolling upgrade
执行完毕后,原物理备库变成了主库并使用更高的版本,原主库此时成了逻辑备库但数据库版本不变4将此时的逻辑备库转化成物理备库SQL> SHUTDOWN IMMEDIATE;SQL> STARTUP MOUNT;SQL> FLASHBACK DATABASE TO RESTORE POINT pre_upgrade;SQL> SHUTDOWN IMMEDIATE;使用高版本的binary加载数据库,因为是物理备库可以应用现有主库的redo所以不需要执行upgrade scripts,
SQL> STARTUP MOUNT;SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;SQL> SHUTDOWN IMMEDIATE;重新启动5执行switchover,将原主库重新切换成主库
删除restore point
SQL> DROP RESTORE POINT PRE_UPGRADE;http://docs.oracle.com/cd/E11882_01/server.112/e25608/rollup.htm
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15480802/viewspace-718362/ ,如需转载,请注明出处,否则将追究法律责任。