ITPub博客

首页 > 数据库 > Oracle > 11G通过物理standby进行滚动升级实例说明及注意

11G通过物理standby进行滚动升级实例说明及注意

Oracle 作者:kunlunzhiying 时间:2016-12-15 17:34:58 0 删除 编辑
参考文档:<br /> http://www.oracle.com/technetwork/database/features/availability/maa-wp-11g-transientlogicalrollingu-1-131927.pdf<br /> <br /> 以下对文档中的实例进行说明:<br /> PROD:primary <br /> PSTBY:物理standby<br /> LSTBY:逻辑standby<br /> <table style="width:70%;" class="" border="1" bordercolor="#000000" cellpadding="0" cellspacing="0"> <tbody> <tr> <td align="center" height="34" width="138"> <strong>源主库当前角色</strong> </td> <td align="center" width="352"> <strong>操作及说明</strong> </td> <td align="center" width="132"> <strong>源从库当前角色</strong> </td> <td align="center" width="455"> <strong>操作及说明</strong> </td> </tr> <tr align="center"> <td colspan="4" height="24"> <strong>PREPARATION STEPS(准备项)</strong> </td> </tr> <tr> <td height="41"> PROD </td> <td width="352"> DGMGRL&gt; disable configuration;<br /> 如果有配置dg broker,停掉 </td> <td> PSTBY </td> <td> <br /> </td> </tr> <tr> <td height="54"> PROD </td> <td width="352"> ALTER SYSTEM SET<br /> DG_BROKER_START=FALSE SCOPE=BOTH;<br /> 如果有配置dg broker,停掉 </td> <td> PSTBY </td> <td width="455"> ALTER SYSTEM SET<br /> DG_BROKER_START=FALSE SCOPE=BOTH; </td> </tr> <tr> <td height="72"> PROD </td> <td width="352"> exec dbms_capture_adm.stop_capture<br /> (capture_name<br /> =&gt;'STRMADMIN_CAPTURE');<br /> 如果有用oracle stream,停掉 </td> <td> PSTBY </td> <td> <br /> </td> </tr> <tr> <td height="72"> PROD </td> <td width="352"> ALTER DATABASE ADD STANDBY LOGFILE<br /> (’+PROD’) SIZE 50M;<br /> …<br /> 添加standby logfile </td> <td> PSTBY </td> <td width="455"> ALTER DATABASE ADD STANDBY LOGFILE<br /> (’+PSTBY’) SIZE 50M;<br /> … </td> </tr> <tr> <td height="54"> PROD </td> <td width="352"> SELECT PROTECTION_MODE FROM<br /> V$DATABASE;<br /> 确定dg保护模式,必须为最高可用或最大性能. </td> <td> PSTBY </td> <td width="455"> SELECT PROTECTION_MODE FROM<br /> V$DATABASE; </td> </tr> <tr> <td height="540"> PROD </td> <td width="352"> ALTER SYSTEM SET<br /> LOG_ARCHIVE_DEST_1='<br /> LOCATION=USE_DB_RECOVERY_FILE_DEST<br /> VALID_FOR=(ONLINE_LOGFILES,<br /> ALL_ROLES) DB_UNIQUE_NAME=prod'<br /> SCOPE=BOTH;<br /> ALTER SYSTEM SET<br /> LOG_ARCHIVE_DEST_2=<br /> 'SERVICE=pstby LGWR ASYNC<br /> NOAFFIRM DELAY=0 OPTIONAL<br /> REOPEN=15 MAX_FAILURE=10<br /> VALID_FOR=(ONLINE_LOGFILES,<br /> PRIMARY_ROLE)<br /> DB_UNIQUE_NAME=pstby' SCOPE=BOTH;<br /> ALTER SYSTEM SET<br /> LOG_ARCHIVE_DEST_3=<br /> 'LOCATION=USE_DB_RECOVERY_FILE_DES<br /> T VALID_FOR=(STANDBY_LOGFILES,<br /> STANDBY_ROLE)<br /> DB_UNIQUE_NAME=prod' SCOPE=BOTH;<br /> ALTER SYSTEM SET<br /> LOG_ARCHIVE_DEST_STATE_1=ENABLE<br /> SCOPE=BOTH;<br /> ALTER SYSTEM SET<br /> LOG_ARCHIVE_DEST_STATE_2=ENABLE<br /> SCOPE=BOTH;<br /> ALTER SYSTEM SET<br /> LOG_ARCHIVE_DEST_STATE_3=ENABLE<br /> SCOPE=BOTH;<br /> 修改主库日志传输 </td> <td> PSTBY </td> <td width="455"> ALTER SYSTEM SET<br /> LOG_ARCHIVE_DEST_1='<br /> LOCATION=USE_DB_RECOVERY_FILE_DEST<br /> VALID_FOR=(ONLINE_LOGFILES,<br /> ALL_ROLES) DB_UNIQUE_NAME=pstby'<br /> SCOPE=BOTH;<br /> ALTER SYSTEM SET<br /> LOG_ARCHIVE_DEST_2=<br /> 'SERVICE=prod LGWR ASYNC NOAFFIRM<br /> DELAY=0 OPTIONAL REOPEN=15<br /> MAX_FAILURE=10<br /> VALID_FOR=(ONLINE_LOGFILES,<br /> PRIMARY_ROLE)<br /> DB_UNIQUE_NAME=prod' SCOPE=BOTH;<br /> ALTER SYSTEM SET<br /> LOG_ARCHIVE_DEST_3=<br /> 'LOCATION=USE_DB_RECOVERY_FILE_DES<br /> T VALID_FOR=(STANDBY_LOGFILES,<br /> STANDBY_ROLE)<br /> DB_UNIQUE_NAME=pstby' SCOPE=BOTH;<br /> ALTER SYSTEM SET<br /> LOG_ARCHIVE_DEST_STATE_1=ENABLE<br /> SCOPE=BOTH;<br /> ALTER SYSTEM SET<br /> LOG_ARCHIVE_DEST_STATE_2=ENABLE<br /> SCOPE=BOTH;<br /> ALTER SYSTEM SET<br /> LOG_ARCHIVE_DEST_STATE_3=ENABLE<br /> SCOPE=BOTH; </td> </tr> <tr> <td height="198"> PROD </td> <td width="352"> ALTER SYSTEM SET<br /> FAL_SERVER=’pstby’ SCOPE=BOTH;<br /> ALTER SYSTEM SET FAL_CLIENT=’prod’<br /> SCOPE=BOTH;<br /> ALTER SYSTEM SET<br /> LOG_ARCHIVE_CONFIG=’dg_config=<br /> (prod,pstby)’ SCOPE=BOTH;<br /> ALTER SYSTEM SET<br /> STANDBY_FILE_MANAGEMENT=’AUTO’<br /> SCOPE=BOTH;<br /> 配置归档standby参数 </td> <td> PSTBY </td> <td width="455"> ALTER SYSTEM SET FAL_SERVER=’prod’<br /> SCOPE=BOTH;<br /> ALTER SYSTEM SET<br /> FAL_CLIENT=’pstby’ SCOPE=BOTH;<br /> ALTER SYSTEM SET<br /> LOG_ARCHIVE_CONFIG=’dg_config=<br /> (prod,pstby)’ SCOPE=BOTH;<br /> ALTER SYSTEM SET<br /> STANDBY_FILE_MANAGEMENT=’AUTO’<br /> SCOPE=BOTH; </td> </tr> <tr> <td height="72"> PROD </td> <td width="352"> ALTER SYSTEM SET<br /> LOG_FILE_NAME_CONVERT= ’+PSTBY/’,<br /> ’+PROD/’ SCOPE=SPFILE;<br /> 日志转换 </td> <td> PSTBY </td> <td width="455"> ALTER SYSTEM SET<br /> LOG_FILE_NAME_CONVERT= ’+PROD/’,<br /> ’+PSTBY/’ SCOPE=SPFILE; </td> </tr> <tr> <td height="126"> PROD </td> <td width="352"> SHUTDOWN IMMEDIATE<br /> (In an Oracle RAC environment for all instances)<br /> STARTUP MOUNT<br /> ALTER DATABASE FLASHBACK ON;<br /> ALTER DATABASE OPEN;<br /> 开启闪回数据库.如果只是测试,可以不开 </td> <td> PSTBY </td> <td width="455"> Optional:<br /> SHUTDOWN IMMEDIATE<br /> STARTUP MOUNT<br /> ALTER DATABASE FLASHBACK ON; </td> </tr> <tr> <td height="90"> PROD </td> <td width="352"> CREATE RESTORE POINT PRE_UPGRADE_1<br /> GUARANTEE FLASHBACK DATABASE;<br /> 建还原点,这个是必须的 </td> <td> PSTBY </td> <td width="455"> Optional:<br /> CREATE RESTORE POINT PRE_UPGRADE_2<br /> GUARANTEE FLASHBACK DATABASE;<br /> RECOVER MANAGED STANDBY DATABASE<br /> USING CURRENT LOGFILE DISCONNECT; </td> </tr> <tr align="center"> <td colspan="4" height="18"> <strong>CONVERSION TO LOGICAL STANDBY STEPS物理standby转换为逻辑standby</strong> </td> </tr> <tr> <td height="54"> PROD </td> <td> <br /> </td> <td> PSTBY </td> <td width="455"> ALTER DATABASE RECOVER MANAGED<br /> STANDBY DATABASE CANCEL;<br /> 取消日志应用 </td> </tr> <tr> <td height="66"> PROD </td> <td width="352"> EXECUTE DBMS_LOGSTDBY.BUILD;<br /> 建立logminer字典 </td> <td> PSTBY </td> <td> <br /> </td> </tr> <tr> <td height="142"> PROD </td> <td> <br /> </td> <td> PSTBY </td> <td width="455"> If Oracle RAC then must be mounted exclusive.<br /> ALTER SYSTEM SET<br /> CLUSTER_DATABASE=FALSE<br /> SCOPE=SPFILE;<br /> SHUTDOWN IMMEDIATE<br /> STARTUP MOUNT<br /> 如果是rac,CLUSTER_DATABASE设为false </td> </tr> <tr> <td height="68"> PROD </td> <td> <br /> </td> <td> PSTBY </td> <td width="455"> ALTER DATABASE RECOVER TO LOGICAL<br /> STANDBY KEEP IDENTITY;<br /> 从库转换为临时逻辑standby </td> </tr> <tr> <td height="126"> PROD </td> <td> <br /> </td> <td> PSTBY </td> <td width="455"> If Oracle RAC then reset CLUSTER_DATABASE.<br /> ALTER SYSTEM SET<br /> CLUSTER_DATABASE=TRUE<br /> SCOPE=SPFILE;<br /> SHUTDOWN IMMEDIATE<br /> STARTUP MOUNT<br /> 如果是rac,CLUSTER_DATABASE设为true </td> </tr> <tr> <td height="18"> PROD </td> <td> <br /> </td> <td> PSTBY </td> <td width="455"> ALTER DATABASE OPEN; </td> </tr> <tr> <td height="158"> PROD </td> <td> <br /> </td> <td> PSTBY </td> <td width="455"> Note: If using EDS, skip this step. Do not start<br /> SQL Apply until after the logical standby upgrade and after<br /> the steps for “Configuring EDS Logging Table Triggers” in<br /> Appendix B are run.<br /> ALTER DATABASE START LOGICAL<br /> STANDBY APPLY IMMEDIATE;<br /> 逻辑standby应用sql apply </td> </tr> <tr> <td height="59"> PROD </td> <td> <br /> </td> <td> PSTBY </td> <td width="455"> EXECUTE DBMS_LOGSTDBY.APPLY_SET(<br /> 'LOG_AUTO_DELETE', 'FALSE');<br /> 禁用自动归档日志自动删除 </td> </tr> <tr> <td height="84"> PROD </td> <td> <br /> </td> <td> PSTBY </td> <td width="455"> Wait for this query to display “IDLE”:<br /> SELECT SESSION_ID, STATE FROM<br /> V$LOGSTDBY_STATE;<br /> 等待逻辑standby状态为idle </td> </tr> <tr align="center"> <td colspan="4" height="18"> <strong>CREATE AN ARCHIVED REDO LOG REPOSITORY建重做日志存储库(可选)</strong> </td> </tr> <tr align="center"> <td colspan="4" height="18"> <strong>PERFORM PATCH APPLY OR UPGRADE STEPS升级从库</strong> </td> </tr> <tr> <td height="72"> PROD </td> <td width="352"> ALTER SYSTEM SET<br /> LOG_ARCHIVE_DEST_STATE_2=DEFER<br /> SCOPE=MEMORY;<br /> 停止日志传输 </td> <td> LSTBY </td> <td width="455"> ALTER DATABASE STOP LOGICAL<br /> STANDBY APPLY;<br /> 停止逻辑standby sql apply </td> </tr> <tr> <td height="88"> PROD </td> <td> <br /> </td> <td> LSTBY </td> <td width="455"> CREATE RESTORE POINT PRE_UPGRADE_3<br /> GUARANTEE FLASHBACK DATABASE;<br /> SHUTDOWN IMMEDIATE<br /> 建还原点,用于失败回退.测试可不用 </td> </tr> <tr> <td height="54"> PROD </td> <td> <br /> </td> <td> PSTBY </td> <td width="455"> RMAN&gt; CATALOG START WITH<br /> '+PSTBY/ALOGREP/ARCHIVELOG/’;<br /> 与重做日志存储库相关 </td> </tr> <tr> <td height="77"> PROD </td> <td width="352"> ALTER SYSTEM SET<br /> LOG_ARCHIVE_DEST_STATE_2=ENABLE<br /> SCOPE=MEMORY;<br /> 开户日志传输 </td> <td> LSTBY </td> <td width="455"> STARTUP </td> </tr> <tr> <td height="127"> PROD </td> <td> <br /> </td> <td> LSTBY </td> <td width="455"> Note: If using EDS, perform the steps in “Configuring<br /> EDS Logging Table Triggers” in Appendix B before starting<br /> SQL Apply.<br /> ALTER DATABASE START LOGICAL<br /> STANDBY APPLY IMMEDIATE;<br /> 开启逻辑standby sql apply </td> </tr> <tr align="center"> <td colspan="4" height="18"> <strong>CREATE AN ARCHIVED REDO LOG REPOSITORY建重做日志存储库(可选)</strong> </td> </tr> <tr align="center"> <td colspan="4" height="18"> <strong>SWITCHOVER(主从切换)</strong> </td> </tr> <tr> <td height="116"> PROD </td> <td width="352"> Wait for this query to display “TO STANDBY” or proceed<br /> to switchover with session disconnect<br /> SELECT SWITCHOVER_STATUS FROM<br /> V$DATABASE;<br /> 查看switchover_status的状态 </td> <td> LSTBY-&gt;PROD </td> <td> <br /> </td> </tr> <tr> <td height="64"> PROD </td> <td width="352"> ALTER DATABASE COMMIT TO<br /> SWITCHOVER TO LOGICAL STANDBY;<br /> 源主库切换到逻辑standby </td> <td> LSTBY-&gt;PROD </td> <td> <br /> </td> </tr> <tr> <td height="80"> PROD </td> <td> <br /> </td> <td> LSTBY-&gt;PROD </td> <td width="455"> Wait for this query to display “TO PRIMARY” or proceed<br /> to switchover with session disconnect:<br /> SELECT SWITCHOVER_STATUS FROM<br /> V$DATABASE; </td> </tr> <tr> <td height="54"> PROD </td> <td> <br /> </td> <td> LSTBY-&gt;PROD </td> <td width="455"> ALTER DATABASE COMMIT TO<br /> SWITCHOVER TO LOGICAL PRIMARY;<br /> 源从库切换为从库 </td> </tr> <tr> <td height="167"> PROD </td> <td> <br /> </td> <td> LSTBY-&gt;PROD </td> <td width="455"> If using Oracle Streams then start Streams capture. Note<br /> capture will go back in time and mine the redo logs that got<br /> generated while it was down.<br /> exec<br /> dbms_capture_adm.start_capture<br /> ('STRMADMIN_CAPTURE');<br /> 如果有oracle stream,开启之前停用的 </td> </tr> <tr align="center"> <td colspan="4" height="18"> <strong>RETRANSFORMATION INTO A PHYSICAL STANDBY DATABASE逻辑standby回到物理standby</strong> </td> </tr> <tr> <td height="72"> LSTBY-&gt;PSTBY </td> <td> <br /> </td> <td> PROD </td> <td width="455"> ALTER SYSTEM SET<br /> LOG_ARCHIVE_DEST_STATE_2=DEFER<br /> SCOPE=MEMORY;<br /> 停用日志传输 </td> </tr> <tr> <td height="90"> LSTBY-&gt;PSTBY </td> <td width="352"> SHUTDOWN IMMEDIATE;<br /> STARTUP MOUNT;<br /> FLASHBACK DATABASE TO RESTORE<br /> POINT PRE_UPGRADE_1;<br /> 通过还原点,闪回到还原点. </td> <td> PROD </td> <td> <br /> </td> </tr> <tr> <td height="18"> LSTBY-&gt;PSTBY </td> <td> SHUTDOWN IMMEDIATE; </td> <td> PROD </td> <td> <br /> </td> </tr> <tr> <td height="40"> LSTBY-&gt;PSTBY </td> <td width="352"> Switch to the new ORACLE_HOME<br /> 切换到软件升级后的ORACLE_HOM </td> <td> PROD </td> <td> <br /> </td> </tr> <tr> <td height="72"> LSTBY-&gt;PSTBY </td> <td width="352"> STARTUP MOUNT;<br /> ALTER DATABASE CONVERT TO PHYSICAL<br /> STANDBY;<br /> 切换逻辑standby为物理standby </td> <td> PROD </td> <td> <br /> </td> </tr> <tr> <td height="36"> PSTBY </td> <td width="352"> SHUTDOWN IMMEDIATE<br /> STARTUP MOUNT; </td> <td> PROD </td> <td> <br /> </td> </tr> <tr> <td height="89"> PSTBY </td> <td width="352"> ALTER SYSTEM SET COMPATIBLE=’...’<br /> SCOPE=SPFILE;<br /> SHUTDOWN IMMEDIATE<br /> STARTUP MOUNT;<br /> 修改兼容性参数 </td> <td> PROD </td> <td> <br /> </td> </tr> <tr> <td height="46"> PSTBY </td> <td width="352"> RMAN&gt; CATALOG START WITH<br /> '+PROD/ALOGREP/ARCHIVELOG/’;<br /> 与重做日志存储库相关 </td> <td> PROD </td> <td> <br /> </td> </tr> <tr> <td height="61"> PSTBY </td> <td width="352"> RECOVER MANAGED STANDBY DATABASE<br /> USING CURRENT LOGFILE DISCONNECT;<br /> 开启物理standby实时应用 </td> <td> PROD </td> <td width="455"> ALTER SYSTEM SET<br /> LOG_ARCHIVE_DEST_STATE_2=ENABLE;<br /> 开启日志传输 </td> </tr> <tr align="center"> <td colspan="4" height="18"> <strong>SWITCHBACK STEPS(主从切回)</strong> </td> </tr> <tr> <td height="75"> PSTBY-&gt;PROD </td> <td> <br /> </td> <td> PROD-&gt;PSTBY </td> <td width="455"> Wait for this query to display “TO STANDBY” or proceed<br /> to switchover with session disconnect:<br /> SELECT SWITCHOVER_STATUS<br /> FROM V$DATABASE; </td> </tr> <tr> <td height="70"> PSTBY-&gt;PROD </td> <td> <br /> </td> <td> PROD-&gt;PSTBY </td> <td width="455"> ALTER DATABASE COMMIT TO<br /> SWITCHOVER TO STANDBY WITH SESSION<br /> SHUTDOWN;<br /> 切换回物理standby </td> </tr> <tr> <td height="90"> PSTBY-&gt;PROD </td> <td width="352"> Wait for this query to display “TO PRIMARY” or proceed<br /> to switchover with session disconnect:<br /> SELECT SWITCHOVER_STATUS FROM<br /> V$DATABASE; </td> <td> PROD-&gt;PSTBY </td> <td> <br /> </td> </tr> <tr> <td height="54"> PSTBY-&gt;PROD </td> <td width="352"> ALTER DATABASE COMMIT TO<br /> SWITCHOVER TO PRIMARY;<br /> 切换回主库 </td> <td> PROD-&gt;PSTBY </td> <td> <br /> </td> </tr> <tr> <td height="44"> PSTBY-&gt;PROD </td> <td width="352"> ALTER DATABASE OPEN; </td> <td> PROD-&gt;PSTBY </td> <td width="455"> SHUTDOWN IMMEDIATE;<br /> STARTUP MOUNT; </td> </tr> <tr> <td height="51"> PSTBY-&gt;PROD </td> <td> <br /> </td> <td> PROD-&gt;PSTBY </td> <td width="455"> RECOVER MANAGED STANDBY DATABASE<br /> USING CURRENT LOGFILE DISCONNECT;<br /> 开启物理standby 实时应用 </td> </tr> <tr> <td height="54"> PROD </td> <td width="352"> SELECT NAME FROM V$RESTORE_POINT<br /> WHERE GUARANTEE_FLASHBACK_DATABASE<br /> =’YES’; </td> <td> PSTBY </td> <td width="455"> SELECT NAME FROM V$RESTORE_POINT<br /> WHERE GUARANTEE_FLASHBACK_DATABASE<br /> =’YES’; </td> </tr> <tr> <td height="45"> PROD </td> <td width="352"> DROP RESTORE POINT PRE_UPGRADE_1;<br /> 删除之前建的还原点 </td> <td> PSTBY </td> <td width="455"> DROP RESTORE POINT &lt;name&gt;; </td> </tr> <tr> <td height="49"> PROD </td> <td width="352"> ALTER SYSTEM SET<br /> DG_BROKER_START=TRUE SCOPE=BOTH;<br /> 开启之前关闭的dg broker </td> <td> PSTBY </td> <td width="455"> ALTER SYSTEM SET<br /> DG_BROKER_START=TRUE SCOPE=BOTH; </td> </tr> <tr> <td height="18"> PROD </td> <td width="352"> DGMGRL&gt; enable configuration; </td> <td> <br /> </td> <td> <br /> </td> </tr> </tbody> </table> <br /> <br /> 注意:<br /> 1.转换为逻辑standby时,要关注不被支持的数据类型,通过dba_logstdby_unsupported视图.<br /> 2.这种物理standby借助临时逻辑standby滚动升级,源从库升级软件和数据库,源主库升级软件.源主库的数据库升级是通过物理standby以日志的方式传过去的.而正常的逻辑standby滚动升级是主从都要进行软件和数据库升级的.<br /> 3.在测试环境,主库的还原点是必须的,就是通过这个还原点把逻辑standby返回到物理standby的.<br /> 4.滚动升级还要考虑主从切换时,客户端的连接方案.<br /> 5.源从库升级后,考虑通过database replay,sql performance analyzer,sql plan management进行升级后的性能测试. <br /> <br /> <br /> <br /> <br />

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28211342/viewspace-2130721/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
IT搬砖

注册时间:2014-07-28

  • 博文量
    665
  • 访问量
    568705