dg中激活备库做测试

原创 2016年05月31日 17:30:17

dg备库有时候要激活做测试用,测试完还要还原为dg

9i-11g都可以使用11g还有更简单的方法


设置快速恢复区,目的是放还原点
SQL> alter system set db_recovery_file_dest_size=3G;


System altered.


SQL> alter system set db_recovery_file_dest='/fra';


System altered.
查看恢复区是否成功
SQL> show parameter db_reco


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      /fra
db_recovery_file_dest_size           big integer 3G
SQL> 


取消备库recover managed 模式(取消日志应用)
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; 


Database altered.
创建还原点


SQL> CREATE RESTORE POINT Standby_flashback_testing GUARANTEE FLASHBACK DATABASE; 


Restore point created.
查询还原点
SQL> select NAME,SCN,TIME from v$restore_point; 


NAME
--------------------------------------------------------------------------------
       SCN
----------
TIME
---------------------------------------------------------------------------
STANDBY_FLASHBACK_TESTING
   2425408
31-MAY-16 08.36.47.000000000 AM


primary
主库切日志


SQL> conn / as sysdba
Connected.
SQL>  ALTER SYSTEM ARCHIVE LOG CURRENT;


System altered.
主库查看传输到备库的参数是log_archive_dest_2 
SQL> show parameter log_archive


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_config                   string      DG_CONFIG=(orcl,dg1,dg2)
log_archive_dest                     string
log_archive_dest_1                   string      LOCATION=+FRA/ VALID_FOR=(ALL_
                                                 LOGFILES,ALL_ROLES) DB_UNIQUE_
                                                 NAME=orcl
log_archive_dest_10                  string
log_archive_dest_11                  string
log_archive_dest_12                  string
log_archive_dest_13                  string
log_archive_dest_14                  string
log_archive_dest_15                  string


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_16                  string
log_archive_dest_17                  string
log_archive_dest_18                  string
log_archive_dest_19                  string
log_archive_dest_2                   string      SERVICE=dg1 LGWR ASYNC VALID_F
                                                 OR=(ONLINE_LOGFILES,PRIMARY_RO
                                                 LE) DB_UNIQUE_NAME=dg1
log_archive_dest_20                  string




log_archive_trace                    integer     0
阻塞向备机传日志
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=DEFER;


System altered.




备库激活数据库


SQL> ALTER DATABASE ACTIVATE STANDBY DATABASE;


Database altered.


查看此时控制文件状态
SQL> select CONTROLFILE_TYPE from v$database; 


CONTROL
-------
CURRENT
更改数据库模式为最大性能模式
SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE; 


Database altered.
打开数据库
SQL>  ALTER DATABASE OPEN;


Database altered.


测试standby数据库是否可以读写
SQL> create table tt(id int);


Table created.


SQL> insert into tt values (123);


1 row created.


SQL> insert into tt select sal from scott.emp;


14 rows created.


SQL> commit;


Commit complete.




SQL> select * from tt;


        ID
----------
       123
       800
      1600
      1250
      2975
      1250
      2850
      2450
      3000
      5000
      1500


        ID
----------
      1100
       950
      3000
      1300


15 rows selected.


测试完成后回退
强制mount方式打开数据库 
SQL> STARTUP MOUNT FORCE;
ORACLE instance started.


Total System Global Area 1252663296 bytes
Fixed Size                  2252824 bytes
Variable Size             402657256 bytes
Database Buffers          838860800 bytes
Redo Buffers                8892416 bytes
Database mounted.
回退到还原点
SQL>  FLASHBACK DATABASE TO RESTORE POINT Standby_flashback_testing ;


Flashback complete.
查看此时控制文件状态是还原备份时状态
SQL> select controlfile_type from v$database; 


CONTROL
-------
BACKUP
将数据库转换为standby模式
SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY; 


Database altered.


SQL> startup mount force;
ORACLE instance started.


Total System Global Area 1252663296 bytes
Fixed Size                  2252824 bytes
Variable Size             402657256 bytes
Database Buffers          838860800 bytes
Redo Buffers                8892416 bytes
Database mounted.
启动备库应用
SQL>  ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT; 


Database altered.
查询此时数据库控制文件状态


SQL> select controlfile_type from v$database
  2  ;


CONTROL
-------
STANDBY


主库切日志
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;


System altered.
解除阻塞


SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;


System altered.




备库取消recover managed 应用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;  


Database altered.
只读模式打开
SQL> ALTER DATABASE OPEN READ ONLY; 


Database altered.
查询测试时表数据(已经回退到旧的还原点,所以没有)
SQL> select * from tt;
select * from tt
              *
ERROR at line 1:
ORA-00942: table or view does not exist




SQL> STARTUP FORCE MOUNT;  
ORACLE instance started.


Total System Global Area 1252663296 bytes
Fixed Size                  2252824 bytes
Variable Size             402657256 bytes
Database Buffers          838860800 bytes
Redo Buffers                8892416 bytes
Database mounted.
备库启动recover standby 应用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;  


Database altered.
删除还原点


SQL>  DROP RESTORE POINT Standby_flashback_testing ;


Restore point dropped.


SQL> 



oracle 11g环境下:
步骤更简单,11g中加入了Snapshot Standby Database的新特性,其实也就是上面10g功能的一个包装而已,唯一不同的是在转换为读写模式后任然可以继续接受主库过来的归档日志。
步骤如下:
1:取消日志应用
SQL> alter database recover managed standby database cancel;


2:重启并转换成Snapshot Standby Database。
SQL> shutdown immediate;
SQL> startup mount
SQL> alter database convert to snapshot standby;


3:打开后可进行读写相关测试
SQL> alter database open;


4:重新转换成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;
SQL> alter database recover managed standby database disconnect from session;


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


版权声明:本文为博主原创文章,未经博主允许不得转载。

Oracle DG之--通过Oracle 逻辑DG 实现数据库滚动升级

Oracle DG之--通过Oracle 逻辑DG 实现数据库滚动升级系统环境:操作系统:RedHat EL5Oracle: Oracle 10gR2          对于Oracle 数据库的升级...
  • lqx0405
  • lqx0405
  • 2015年03月31日 11:59
  • 1695

RAC+DG正常切换

客户在两台exadata上分别创建RAC,再做DG。 正常切换进行测试: 1.关闭辅助实例 主库:[grid@dm02db01 ~]$ srvctl stop instance -d DDCPRD -...
  • u010587433
  • u010587433
  • 2015年01月23日 15:02
  • 1109

数据库迁移方案之DG方式迁移

数据库迁移:DG方式迁移数据库
  • shaochenshuo
  • shaochenshuo
  • 2014年05月20日 21:14
  • 760

正式生产库,配置双节点的RAC + 单实例的 DATAGUARD

正式生产库,配置DATAGUARD RAC+单实例DATAGUARD  配置 RAC 两节点: 192.1.0.101    rac1     192.1.0.102    r...
  • miyatang
  • miyatang
  • 2013年10月22日 14:07
  • 6668

物理DG与逻辑DG的区别与逻辑DG同步异常处理方法

一、物理DG与逻辑DG的区别 官方文档是这样说明的 The main difference between physical and logical standby databases is ...
  • u012076336
  • u012076336
  • 2013年12月11日 17:04
  • 1322

DG保护模式--3种

三种:最大保护、最大性能、最高可用。 1.最大保护: 如果主数据库失败,这个保护模式可以保证没有任何数据丢失。事务在完成提交之前,事务恢复需要的redo数据必须写到主数据库的联机redo日...
  • ghostliming
  • ghostliming
  • 2016年02月11日 20:56
  • 1933

关于DG保护模式的测试

DG有3个种保护模式: 1.最大性能模式 2.最高可用模式 3.最大保护模式 今天来做个关于保护模式的测试 当我们配置完DG,默认使用的是最大性能保护模式: SYS@PDA> sel...
  • aaron8219
  • aaron8219
  • 2015年01月13日 20:32
  • 899

Oracle 11g DG概念与进程详解

RAC, Data Gurad, Stream 是Oracle 高可用性体系中的三种工具,每个工具即可以独立应用,也可以相互配合。 他们各自的侧重点不同,适用场景也不同。 RAC 它的强项在于解决单...
  • u013169075
  • u013169075
  • 2017年06月21日 21:09
  • 641

Oracle DG 相关参数解释

oracle 提供 3种 dg 保护模式 :(最大保护、最高可用性、最高性能)   一、  3种模式的特点 保护模式 在出现灾难时数据丢失的风险 重做传输机制 是否需要standby re...
  • share120
  • share120
  • 2016年08月26日 11:18
  • 1232

oracle物理dg安装:方法二

本文记录了物理dg的第二种安装方法,使用rman duplicate from active database,不需要做备份文件。 准备工作: 1.两台虚拟机,主机名:n1, n2,操作系...
  • kinghong_song
  • kinghong_song
  • 2016年04月12日 22:54
  • 736
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:dg中激活备库做测试
举报原因:
原因补充:

(最多只允许输入30个字)