Oracle 10g/11g下如何将物理Standby库临时激活用于测试

在实际运营环境中, 我们经常碰到类似这样的需求:

譬如想不影响现网业务评估DB补丁在现网环境中运行的时间, 或者是想在做DB切换前想连接Standby DB做实际业务运行的测试.

  • 如果在9i版本的时候, 想做到这样, 在不搭建新测试环境的前提下, 可以将Standby DB激活后进行测试, 但是激活后的Standby DB将不能再用于容灾, 必须重建Standby DB;

  • 在10g以及11g之后, 可以利用新特性很好的解决这个问题, 激活的Standby DB可以闪回到激活前的状态, 继续参与容灾, 而不需要重建.


下面简单说明下实施的步骤:

  • Oracle 10g环境下:

    • 确保设置了Flash Recovery Area

        SQL> show parameter db_recovery
      
        NAME                                 TYPE                   VALUE
      ------------------------------------ ---------------------- ------------------------------
      db_recovery_file_dest string /data1/flash_recovery_area
      db_recovery_file_dest_size big integer 80G

      如果没设置, 请使用alter system命令进行设置, 需要重启DB.

    • 取消Standby DB的同步, 创建可保障的还原点.

        SQL> alter database recover managed standby database cancel;
      SQL> create restore point beforetest guarantee flashback database;
    • 激活Standby库进行测试

        SQL> alter database activate standby database;
      SQL> alter database open;

      测试Standby DB已激活并可写打开, 之后可以开始进行测试.

    • 将激活的Standby 库闪回并重新转换为Standby DB。

        SQL> startup mount force
      SQL> flashback database to restore point beforetest;
      SQL> alter database convert to physical standby ;
    • 删除之前创建的还原点并重新开启同步

        SQL> startup mount force;
      SQL> drop restore point beforetest;
      SQL> alter database recover managed standby database disconnect from session;

    在这个过程中, 主库到备库的日志传输会报错, 建议在主库上将到Standby DB的日志传输先停止:

      SQL> alter system set log_archive_dest_state_2=defer;

    等闪回后再重新启用日志传输:

      SQL> alter system set log_archive_dest_state_2=enable;
  • Oracle 11g环境下:

    步骤更简单,11g中加入了Snapshot Standby Database的新特性, 其实也就是上面10g功能的一个包装而已, 唯一不同的是在转换为读写模式后任然可以继续接受主库过来的归档日志.

    步骤如下:

    • 取消日志应用

        SQL> alter database recover managed standby database cancel;
    • 重启并转换成Snapshot Standby Database。

        SQL> shutdown immediate;
      SQL> startup mount
      SQL> alter database convert to snapshot standby;
    • 打开后可进行读写相关测试

        SQL> alter database open;
    • 重新转换成physical Standby并开启同步

        SQL> shutdown immediate
      SQL> startup mount
      SQL> alter database convert to physical standby;
      SQL> shutdown immediate;
      SQL> startup nomount
      SQl> alter database mount standby database;
      SQL> alter database open read only;
      SQL> alter database recover managed standby database disconnect from session using current logfile;
  • 需要注意的点:

    • 10g中创建的还原点必须在闪回后进行删除, 否则闪回恢复区可能会被撑满, 导致DB Hang住;
    • 11g中不用担心这个问题, 在重新转换为physical standby时会自动进行还原点删除;

[Oracle] 临时将Physical Standby激活的更多相关文章

  1. ORACLE 11gR2 DG(Physical Standby)日常维护01

    环境:RHEL 6.4 + Oracle 11.2.0.4 一.主备手工切换 1.1 主库,切换成备库并启动到mount 1.2 备库,切换成主库并启动到open 1.3 新的备库启动日志应用 二.重 ...

  2. ORACLE 11gR2 DG(Physical Standby)日常维护02

    环境:RHEL 6.5 + Oracle 11.2.0.4 三.监控DG的状态 3.1监控DG备库的状态 3.2监控主库传输日志链路的状态 四.备库切换为snapshot standby 4.1备库切 ...

  3. 聊聊Oracle 11g的Snapshot Standby Database(上)

    Oracle 11g是Data Guard的重要里程碑版本.在11g中,Active DataGuard.Advanced Compression等特性大大丰富了Data Guard的功能和在实践领域 ...

  4. 【原】Configuring Oracle Data Guard In Physical Standby Database

    作者:david_zhang@sh [转载时请以超链接形式标明文章] http://www.cnblogs.com/david-zhang-index/p/5042640.html参照文档:https ...

  5. [Oracle][DATAGUARD] PHYSICAL STANDBY环境里,使用CATALOG管理Primary和Standby

    1.先使用控制文件构筑好PHYSICAL STANDBY环境(Primary:Single 11.2.0.4,Standby Single 11.2.0.4) 2.构筑好Catalog用的服务器(Ca ...

  6. [Oracle][DATAGUARD] 关于确认PHYSICAL STANDBY的同期状况的方法

    补上简单的确认PHYSICAL STANDBY的同期状况的方法: ODM TEST CASE===================Name = TC#1010_3 ####Primary#### SQ ...

  7. oracle 11g physical standby switchover

    简介 SWITCHOVERS主要是在计划停机维护时用来降低DOWNTIME,如硬件维护.操作系统升级或是数据库rolling upgrade, 也可用来进行特殊情况下的数据库迁移. SWITCHOVE ...

  8. ORACLE 11.2.0.4 Single To Single Data Guard 安装 physical standby

    [root@ORACLE ~]# su - oracle [oracle@ORACLE ~]$ sqlplus / as sysdba . 查看主库归档模式: SQL> select log_m ...

  9. ORACLE Physical Standby DG 之switch over

    DG架构图如下: 计划,切换之后的架构图: DG切换: 主备切换:这里所有的数据库数据文件.日志文件的路径是一致的 [旧主库]主库primarydb切换为备库standby3主库检查switchove ...

随机推荐

  1. nodejs实现前后端交互

    本人nodejs入门级选手,站在巨人(文殊)的肩膀上学习了一些相关知识,有幸在项目中使用nodejs实现了前后端交互,因此,将整个交互过程记录下来,方便以后学习. 本文从宏观讲述nodejs实现前后端 ...

  2. ZendFramework-2.4 源代码 - 关于配置

    $applicationConfig = $serviceManager->setService('ApplicationConfig'); // 获取配置 /data/www/www.doma ...

  3. 18.VUE学习之-v-for操作对象与数值

    一组数组时的循环 二组数组时的循环 另外可以v for 20 可以直接操作数字 <!DOCTYPE html> <html lang="en"> <h ...

  4. python中生成器对象和return 还有循环的区别

    python中生成器对象和return 还有循环的区别 在python中存在这么一个关键字yield,这个关键字在项目中经常被用到,比如我写一个函数不想它只返回一次就结束那我们就不能用return,因 ...

  5. [Python]有关pygame库中的flip和update的区别

    pygame.display.flip()和pygame.display.update()的用法上的区别: 资料一.   资料二. (资料最后更新时间:2019年1月9日)

  6. BFS:HDU-1072-Nightmare

    Nightmare Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  7. js武器库

    打造自己的 JavaScript 武器库 2017-12-14 SlaneYang JavaScript 自己打造一把趁手的武器,高效率完成前端业务代码. 前言 作为战斗在业务一线的前端,要想少加班, ...

  8. Oracle 学习笔记(Windows 环境下安装 + PL/SQL)

    Oracle 安装.PL/SQL 配置使用  前言:因更换机械硬盘为 SSD 固态硬盘装了新 Windows 7 系统,需要重新搭建开发环境,把 Oracle 安装过程和 PL/SQL 配置使用做下笔 ...

  9. Python对文本文件的简单操作(一)

    工作背景 性能测试工程师,主要测试工具--loadrunner,主要是接口测试. 实现功能 loadrunner对报文格式的转换存在问题,部分报文无法转换,故使用Python编写脚本自动将soap协议 ...

  10. java 二叉树递归遍历算法

    //递归中序遍历 public void inorder() { System.out.print("binaryTree递归中序遍历:"); inorderTraverseRec ...