zoukankan      html  css  js  c++  java
  • [Oracle] Data Guard 系列(5)

    在创建逻辑备库之前,必须得先创建物理备库,关于如何创建物理备库,请参考《Data Guard 系列(4) - 在不停主库的情况下创建物理备库》。


    1. 在物理备库上停止日志应用服务

    SYS@jkka> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
    
    Database altered.

    2. 重新设置主库为将来的角色转换做准备(switchover)

    逻辑备库和物理备库不一样,在进行SQL应用的时候还会产生日志,即逻辑备库的在线重做日志,因此逻辑备库不但要对从主库传过来的Standby日志进行归档,还必须得对备库自己产生的在线日志进行归档。下面我们假定log_archive_dest_1指定standby日志的归档路径,log_archive_dest_3指定在线日志的归档路径。

    虽然主库并不需要配置两个归档路径,但为了方便将来可能的角色转换(switchover),一般建议在主库中也做相应的配置。

    首先,查看当前主库的log_archive_dest_1:

    SYS@JKKA> show parameter log_archive_dest_1
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_dest_1                   string      location=/data/oradata/jkka/archivelog  
                                                     valid_for=(all_logfiles,all_roles) 
    						 db_unique_name=jkka

    需要把valid_for属性修改为只对在线日志生效:

    SYS@JKKA> alter system set log_archive_dest_1='location=/data/oradata/jkka/archivelog valid_for=(online_logfiles,all_roles) db_unique_name=jkka';
    
    System altered.

    接着在OS上新建standby归档目录,新增的log_archive_dest_3指向它:

    SYS@JKKA> alter system set log_archive_dest_3='location=/data/oradata/jkka/archstandby VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=jkka';
    
    System altered.
    
    SYS@JKKA> alter system set log_archive_dest_state_3=enable;
    
    System altered.

    3. 在主库构建LogMiner字典

    SYS@JKKA> EXECUTE DBMS_LOGSTDBY.BUILD;
    
    PL/SQL procedure successfully completed.

    4. 把物理备库转换成逻辑备库

    SYS@jkka> ALTER DATABASE RECOVER TO LOGICAL STANDBY jkka2;
    
    Database altered.

    注意:上面的jkka2是新的逻辑备库的db_name,它必须得跟主库的db_name不一样,这点和物理备库不一样。

    上述语句执行成功后,会把备库的db_name修改成新的名字jkka2,关闭备库,重启至mount状态让其生效:

    SQL> shutdown immediate
    SQL> startup mount

    5. 调整逻辑备库参数

    这一步和第二步类似,首先查看当前的log_archive_dest_1的配置:

    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_dest_1                   string      location=/data/oradata/jkka/archivelog  
                                                     valid_for=(all_logfiles,all_roles) 
    		                                 db_unique_name=jkka2

    需要把valid_for属性修改为只对在线日志生效:

    SYS@jkka> alter system set log_archive_dest_1='location=/data/oradata/jkka/archivelog valid_for=(online_logfiles,all_roles) db_unique_name=jkka2';
    
    System altered.
    

    log_archive_dest_2保持不变:

    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_dest_2                   string      service=jkkapri ASYNC 
                                                     VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=jkka

    在OS上新建standby归档目录,新增的log_archive_dest_3指向它:

    SYS@jkka> alter system set log_archive_dest_3='location=/data/oradata/jkka/archstandby VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=jkka2';
    
    System altered.
    
    SYS@jkka> alter system set log_archive_dest_state_3=enable;
    
    System altered.

    6)已resetlogs方式打开逻辑备库

    alter database open resetlogs;
    ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;


  • 相关阅读:
    BEC listen and translation exercise 44
    中译英12
    BEC listen and translation exercise 43
    中译英11
    BEC listen and translation exercise 42
    中译英10
    BEC listen and translation exercise 41
    中译英9
    BEC listen and translation exercise 40
    中译英8
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3283344.html
Copyright © 2011-2022 走看看