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. Python3中的列表用法,看这一篇就够了

    类似C语言中的列表用法 ---------------------------------------------------------------------------------------- ...

  2. 模拟:HDU1034-Candy Sharing Game

    解题心得: 1.直接模拟每一次分一半就行了,模拟过程,记录轮数,但是也看到有些大神使用的是链表,估计链表才是真的做法吧. 题目: Candy Sharing Game Time Limit: 2000 ...

  3. (转)零基础入门深度学习(6) - 长短时记忆网络(LSTM)

    无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的技术,会不会感觉马上就o ...

  4. vba中ListBox控件的使用

    给ListBox添加内容 If CheckBox8 = True Then---------------------------checkbox控件被选中 For i = 0 To ListBox1. ...

  5. OpenCV学习笔记(八) 边缘、线与圆的检测

    边缘检测 对图像进行边缘检测之前,一般都需要先进行降噪(可调用GaussianBlur函数). Sobel算子 与 Scharr算子 都是一个离散微分算子 (discrete differentiat ...

  6. 【Remove Duplicates from Sorted List II 】cpp

    题目: Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct  ...

  7. PHP 获取上一个页面的url

    php $_SERVER["HTTP_REFERER"]变量可以获取上一个或前一个页面的URL地址. 比如有一个a.php页面,这个页面上有一个链接指向b.php页面,如果我们在a ...

  8. caffe的python接口提取resnet101某层特征

    论文的caffemodel转化为tensorflow模型过程中越坑无数,最后索性直接用caffe提特征. caffe提取倒数第二层,pool5的输出,fc1000层的输入,2048维的特征 #codi ...

  9. python 打印9*9乘法表

    # -*- coding: utf8 -*- # Author:wxq 1. for i in range(1,10): for j in range(1,i+1): print "%d*% ...

  10. hdu 4183 EK最大流算法

    欢迎参加——每周六晚的BestCoder(有米!) Pahom on Water Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 327 ...