ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 利用逻辑备库进行rolling upgrade

利用逻辑备库进行rolling upgrade

原创 Linux操作系统 作者:myownstars 时间:2012-03-12 15:47:15 0 删除 编辑

从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/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 设置NLS_LANG参数
请登录后发表评论 登录
全部评论

注册时间:2010-03-18

  • 博文量
    375
  • 访问量
    3321202