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;


  • 相关阅读:
    ClassLoader类加载器
    java反射(二)--反射应用案例
    java反射(一)--认识反射机制
    javaIO流(四)--输入与输出支持
    javaIO流(三)--IO深入操作
    javaIO流(二)--字节流与字符流
    javaIO流(一)--File类的基本使用
    python文件读写
    python的logging模块
    查看python版本
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3283344.html
Copyright © 2011-2022 走看看