使用flashback database 特性将dataguard 的standby 库激活为read write的实现方法
来源:互联网 发布:selenium python api 编辑:程序博客网 时间:2024/06/05 20:13
可以利用10g的flashback特性来实现激活为standby库为read write状态,standby库处于read write状态时可以在standby库上进行一些不能在主库上进行的测试工作,在完成之后可以将read write状态stnadby库flashback到原来的recover mount状态,下图为操作原理过程:
下为实验过程:
一.从库:
1. 设置flashback区域:
要使用这个特性就必须在standby库中设置flashback
在我的库中:
SQL> show parameter DB_RECOVERY_FILE_DEST
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /dg_flashback
db_recovery_file_dest_size big integer 980M
2. Standby库取消redo日志的应用并创建一个数据库的flashback 点
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
Database altered.
SQL> CREATE RESTORE POINT before_application_test GUARANTEE FLASHBACK
2 DATABASE;
Restore point created.
二 主库
1.归档当前的日志文件,可从库确认这个flackback的SCN:
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
System altered.
2.停止主库的日志传到从库:
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=DEFER;
System altered.
三.激活为standby库为read write状态
1.激活为standby库
SQL> ALTER DATABASE ACTIVATE STANDBY DATABASE;
Database altered.
2,如果standb处于readonly状态时,强制重启到mount
SQL> STARTUPMOUNTFORCE;
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE instance started.
Total System Global Area 218103808 bytes
Fixed Size 1260984 bytes
Variable Size 83886664 bytes
Database Buffers 130023424 bytes
Redo Buffers 2932736 bytes
Database mounted.
3.将standb改成 performance保护模式,并打开数据到read write状态,主库并不受standby库的影响,可以按正常的方式进行操作:
SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE;
Database altered.
SQL> ALTER DATABASE OPEN;
Database altered.
SQL> select open_mode from v$database;
OPEN_MODE
----------
READ WRITE
这时可以进行各种test工作:我在主库建表t_flash, standby库建了一张f_t表:可以在flashback之后看他是否还存在:
在主库建:
SQL> create table t_flash(name char(30));
Table created.
SQL> insert into t_flash values('just a test');
1 row created.
SQL> commit;
Commit complete.
从库建表f_t:
SQL> create table f_t( a int);
Table created.
SQL> insert into f_t values(34);
1 row created.
SQL> commit;
Commit complete.
三.将standby库flashback到before_application_tes时的SCN并重新置为physical standby role
1从库:
SQL> STARTUP MOUNT FORCE;
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE instance started.
Total System Global Area 218103808 bytes
Fixed Size 1260984 bytes
Variable Size 92275272 bytes
Database Buffers 121634816 bytes
Redo Buffers 2932736 bytes
Database mounted.
SQL> FLASHBACK DATABASE TO RESTORE POINT before_application_test;
Flashback complete.
SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;
Database altered.
SQL> STARTUP MOUNT FORCE;
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE instance started.
Total System Global Area 218103808 bytes
Fixed Size 1260984 bytes
Variable Size 100663880 bytes
Database Buffers 113246208 bytes
Redo Buffers 2932736 bytes
Database mounted.
SQL> select * from v$archive_gap;
no rows selected
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
Database altered.
2.主库
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
四.检查在standby库被激活时的分别在pirmary,standby库上建的表,此时在standby库中是否存在:
SQL> alter database recover managed standby database cancel;
Database altered.
SQL> alter database open read only;
Database altered.
---从库的表已经不存在:
SQL> select * from f_t;
select * from f_t
*
ERROR at line 1:
ORA-00942: table or view does not exist
主库的表已经通过archivelog的apply在standby库中已经可以查询到了:
SQL> select * from t_flash;
NAME
------------------------------
just a test
- 使用flashback database 特性将dataguard 的standby 库激活为read write的实现方法
- FLASHBACK DATABASE 的方法
- flashback database的使用
- Dataguard的switchover 和failover 并将老主库flashback 成standby库
- 11g dataguard 下standby database的数据文件迁移
- 【翻译自mos文章】将一个失败的primary database 复原为physical standby 库的步骤
- Standby database的建立、使用和维护
- 经常使用的read & write
- How To Open Physical Standby For Read Write Testing and Flashback
- 维护logic standby dataguard的脚本
- read/fread write/fwrite 的实现原理
- read/write函数实现文件的copy
- FileStream之Seek、Read、Write的使用
- 创建Oracle dataguard logical standby database
- Windows下调试应用程序堆栈破坏的方法(内存OX****F不能为Read/Write)
- linux的read,write
- dataguard中的standby redo 日志组数及添加的两种方法
- Oracle dataguard主备库创建闪回点及快照数据库与物理standby的切换方法
- NIOS常用函数详解
- 分享一个超棒的在线jQuery mobile原型设计开发工具 - codiqa
- ★【博弈论】【贝蒂定理】取棋子游戏
- 存几个JS日历代码
- Linux下grep命令
- 使用flashback database 特性将dataguard 的standby 库激活为read write的实现方法
- 自动分配设备节点时出现问题
- PostgreSQL 9.13 + php入门篇(一)
- 使用jQuery和CSS3创建一个支持翻转效果的微/轻博客网站列表
- 开始→运行→命令 集锦!
- Jquery reference Online address
- 分享10个最新的iphone开发教程
- 终于搞定cuckoobox
- TCP和UDP以及IP报文格式