Oracle 11g Snapshot Standby数据库功能

来源:互联网 发布:画婚车路线图的软件 编辑:程序博客网 时间:2024/05/21 06:27

 【DataGuard】Oracle 11g物理Data Guard之Snapshot Standby数据库功能 

 

注意:如果有三级灾备库,有szb的情况,请先关闭深圳备数据库,并将查看主备库的空间,停止主库的rman(包含删除归档操作),备库的删除归档crontab。!!!,在恢复的时候,一定检查龙江备的归档日志目录,将snapshot后的本机产生的归档日志全部删除,否则深圳备要重做

1.停止Redo Apply
 
如果备库正处于Redo Apply过程,需要先取消。
sys@ora11gdg>
alterdatabase recover managed standby database cancel;
Database altered.
2.
查看当前备库状态确保备库处于MOUNTED状态
sys@ora11gdg>
select database_role,open_mode from v$database;
DATABASE_ROLE    OPEN_MODE
---------------- --------------------
PHYSICAL STANDBY MOUNTED
此时备库是物理备库角色,运行模式是MOUNTED


3.
确保闪回恢复区已指定
 
友情提示:实现Snapshot Standby数据库功能并不需要开启主库和备库的闪回数据库(Flashback Database)功能,与是否开启闪回数据库无关。
sys@ora11gdg> show parameter db_recovery_file_dest

NAME                       TYPE         VALUE
--------------------------- ------------ ------------------------------------
db_recovery_file_dest      string       /u01/app/oracle/flash_recovery_area
db_recovery_file_dest_size  big integer  3852M

 
确认主库闪回功能并未开启
sys@ora11g> select FLASHBACK_ON from v$database;

FLASHBACK_ON
------------------
NO
 
确认备库闪回功能并未开启
sys@ora11gdg> select FLASHBACK_ON from v$database;

FLASHBACK_ON
------------------
NO

4.
调整备库到Snapshot Standby数据库状态
 
只需要执行一条非常简单的SQL命令便可以将备库调整到Snapshot Standby数据库。
sys@ora11gdg>
alter database convert to snapshot standby;
Database altered.
sys@ora11gdg> select database_role,open_mode from v$database;
DATABASE_ROLE    OPEN_MODE
---------------- --------------------
SNAPSHOT STANDBY MOUNTED


5.
将备库置于对外可读写状态
sys@ora11gdg>
alter database open;

Database altered.

sys@ora11gdg> select database_role,open_mode from v$database;

DATABASE_ROLE    OPEN_MODE
---------------- --------------------
SNAPSHOT STANDBY READ WRITE
6.
恢复Snapshot Standby数据库为Physical Standby数据库
1
)重启备库到MOUNTED状态
ocmu@ora11gdg> conn / as sysdba
Connected.
sys@ora11gdg>
shutdown immediate
Database closed.
sys@ora11gdg>
startup mount
sys@ora11gdg> select database_role,open_mode from v$database;

DATABASE_ROLE    OPEN_MODE
---------------- --------------------
SNAPSHOT STANDBY MOUNTED


2
)一条命令恢复原物理备库身份
sys@ora11gdg>
alter database convert to physical standby;

Database altered.
3
)重启备库到自动恢复日志状态
1)此时数据库处于NOMOUNTED状态,需要重新启动数据库。
 
注意这里是重启数据库,而不是使用alter命令调整,否则会收到如下报错:
sys@ora11gdg>
shutdown immediate;
ORA-01507: database not mounted

ORACLE instance shut down.
sys@ora11gdg>
startup mount;
ORACLE instance started.
sys@ora11gdg>
alter database recover managed standby database using current logfiledisconnect from session;



Database altered.

3)查看V$ARCHIVED_LOG动态性能视图查看日志应用情况
sys@ora11gdg> select sequence#, first_time, next_time, applied fromv$archived_log order by sequence#;

10.
开启备库到READ ONLY状态验证之前在Snapshot Standby数据库上的操作已撤销
sys@ora11gdg> alter database recover managed standby database cancel;

Database altered.

sys@ora11gdg> alter database open read only;

Database altered.

sys@ora11gdg> select database_role,open_mode from v$database;

DATABASE_ROLE    OPEN_MODE
---------------- --------------------
PHYSICAL STANDBY READ ONLY

sys@ora11gdg> select username from dba_users where username = 'OCMU';

no rows selected

之前创建的测试用户OCMU不存在。结论得证。

11.
小结
 
这便是神奇的“Snapshot Standby数据库功能,备库可以临时成为一个可读写的独立数据库,这极大的扩展了备库的应用场合,我们可以使用备库的这一项特殊功能将那些在生产环境中不敢模拟和再现的问题在备库端进行测试,测试完毕后再恢复其物理备库的身份进行日志恢复。

Good luck.

secooler
12.03.19

-- The End --

 

原创粉丝点击