zoukankan      html  css  js  c++  java
  • DataGuard快照(snapshot)数据库

    在Dataguard中,可以将standby备库切换为snapshot快照数据库,在切换为snapshot数据库后,备库将置于可读写的模式。可用于模拟业务功能测试。在使用完成之后,可以将快照数据库切换为物理备库。在此期间,备库可以接受主库传输过来的日志,但是不能应用日志,需要处于物理备库的时候才可以应用。

    (一)将物理备库切换为快照数据库
    1.备库配置快速恢复区

    alter system set db_recovery_file_dest_size=10g;
    alter system set db_recovery_file_dest='/u01/app/oracle/fast_recovery_area/adgdb';


    2.备库关闭redo apply应用

    --在关闭之前,备库的开启状态为:READ ONLY WITH APPLY
    --关闭redo apply后,备库的开启状态为:READ ONLY
    alter database recover managed standby database cancel;

    3.切换为快照数据库

    --执行转换为快照数据库后,备库的开启状态为:MOUNTED
    alter database convert to snapshot standby;
    
    --开启备库后,数据库开启状态为:READ WRITE
    alter database open;

    查看状态:

    SQL> select open_mode,database_role,protection_mode,protection_level from v$database;
    
    OPEN_MODE            DATABASE_ROLE    PROTECTION_MODE       PROTECTION_LEVEL
    -------------------- ---------------- --------------------  --------------------
    READ WRITE           SNAPSHOT STANDBY MAXIMUM AVAILABILITY  MAXIMUM AVAILABILITY

    在快照数据库上进行读写操作,发现不仅可以读,还可以写入数据

    SQL> select * from lijiaman.test01;
    
        ID NAME
    ---------- --------------------
         1 lijiaman
         2 gegeman
         3 man
         4 a
    
    SQL> insert into lijiaman.test01 values(5,'b');
    1 row created.
    
    SQL> commit;
    Commit complete.


    (二)将快照数据库切回物理备库
    1.关闭备库,将备库启动到mount状态

    shutdown immediate
    start mount


    2.执行切回命令

    alter database convert to physical standby;


    3.再次关闭备库,启动到open状态,开启实时应用

    --关闭备库
    shutdown immediate
    
    --启动数据库到open状态
    startup
    
    --开始备库实时应用
    alter database recover managed standby database using current logfile disconnect;


    4.查看备库状态

    SQL>  select name,open_mode,database_role,protection_mode from v$database;
    
    NAME      OPEN_MODE            DATABASE_ROLE    PROTECTION_MODE
    --------- -------------------- ---------------- --------------------
    ADGDB     READ ONLY WITH APPLY PHYSICAL STANDBY MAXIMUM AVAILABILITY

    5.这个时候,再回去查看test01表信息,发现处于snapshot数据库时insert的数据已经不存在

    SQL> select * from lijiaman.test01;
    
        ID NAME
    ---------- --------------------
         1 lijiaman
         2 gegeman
         3 man
         4 a

    【完】

  • 相关阅读:
    oh forever love~
    PostgreSQL数据库忘记密码的解决方案
    vue
    无法启动postgresql的错误
    Goaccess解析nginx日志备忘
    pg备份恢复与设置编码
    django+uwsgi+nginx+postgresql备忘
    Git 直接推送到生产服务器
    为了性能, 数据操作尽量在数据库层面进行
    简单理解call_user_func和call_user_func_array两个函数
  • 原文地址:https://www.cnblogs.com/lijiaman/p/10702432.html
Copyright © 2011-2022 走看看