Open Snapshot Standby Database
1.停止Redo Apply如果备库正处于Redo Apply过程,需要先取消。
SQL> alter database recover managed standby database cancel;
Database altered.
2.查看当前备库状态确保备库处于MOUNTED状态
SQL> select database_role,open_mode from v$database;
DATABASE_ROLE OPEN_MODE
---------------- --------------------
PHYSICAL STANDBY MOUNTED
3.确保闪回恢复区已指定
友情提示:实现Snapshot Standby数据库功能并不需要开启主库和备库的闪回数据库(Flashback Database)功能,与是否开启闪回数据库无关。
SQL> 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
SQL> select FLASHBACK_ON from v$database;
FLASHBACK_ON
------------------
NO
4.调整备库到Snapshot Standby数据库状态
SQL> alter database convert to snapshot standby;
Database altered.
SQL> select database_role,open_mode from v$database;
DATABASE_ROLE OPEN_MODE
---------------- --------------------
SNAPSHOT STANDBY MOUNTED
5.将备库置于对外可读写状态
SQL> alter database open;
Database altered.
SQL> select database_role,open_mode from v$database;
DATABASE_ROLE OPEN_MODE
---------------- --------------------
SNAPSHOT STANDBY READ WRITE
6. 切换过程中的日志信息
Created guaranteed restore point SNAPSHOT_STANDBY_REQUIRED_03/19/2012 18:46:26
7.测试备库处于Snapshot Standby数据库对主库日志的接收
当主库切换日志时,备库依然可以接收到日志,只是并不应用
1)主库切换日志
sys@ora11g> alter system switch logfile;
System altered.
2)查主/备库记录的alert日志内容
3)查看主库和备库归档目录下的日志文件内容
(1)主库归档日志文件
ora11g@secdb /home/oracle/arch/ora11g$ ls –ltr
(2)备库归档日志文件
ora11g@secdb /home/oracle/arch/ora11gdg$ ls -ltr
8.在Snapshot Standby数据创建用户和表并初始化数据
SQL> create user BOYUAN identified by BOYUAN;
User created.
secooler@ora11gdg> grant dba to BOYUAN;
Grant succeeded.
Orapre$ > conn BOYUAN/BOYUAN
Connected.
BOYUAN@ora11gdg> create table t (x varchar2(8));
Table created.
BOYUAN@ora11gdg> insert into t values ('Secooler');
1 row created.
BOYUAN@ora11gdg> commit;
Commit complete.
BOYUAN@ora11gdg> select * from t;
X
--------
Secooler
实现Snapshot Standby数据库功能是基于闪回数据原理的,因此任何导致闪回数据库无法回退的动作在这里也要规避,否则Snapshot Standby数据库将无法回到曾经的备库恢复状态。
9.恢复Snapshot Standby数据库为Physical Standby数据库
1)重启备库到MOUNTED状态
BOYUAN@ora11gdg> conn / as sysdba
Connected.
SQL> shutdown immediate
SQL> select database_role,open_mode from v$database;
DATABASE_ROLE OPEN_MODE
---------------- --------------------
SNAPSHOT STANDBY MOUNTED
2)恢复到物理备库
SQL> alter database convert to physical standby;
Database altered.
3)备库的alert日志清楚的记录了这个切换的过程
备库没有运行在闪回数据库状态,依然可以使用闪回数据库功能完成备库的角色转换。
4)重启备库到自动恢复日志状态
(1)此时数据库处于NOMOUNTED状态,需要重新启动数据库。
注意这里是重启数据库,而不是使用alter命令调整,否则会收到如下报错:
SQL> shutdown immediate;
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 313860096 bytes
Fixed Size 1336232 bytes
Variable Size 268438616 bytes
Database Buffers 37748736 bytes
Redo Buffers 6336512 bytes
Database mounted.
SQL> alter database recover managed standby database disconnect;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
Database altered.
(2)查看备库alert日志,看恢复的过程。
(3)查看V$ARCHIVED_LOG动态性能视图查看日志应用情况
SQL> select sequence#, first_time, next_time, applied from v$archived_log order by sequence#;
10.开启备库到READ ONLY状态验证之前在Snapshot Standby数据库上的操作已撤销
SQL> alter database recover managed standby database cancel;
Database altered.
SQL> alter database open read only;
Database altered.
SQL> select database_role,open_mode from v$database;
DATABASE_ROLE OPEN_MODE
---------------- --------------------
PHYSICAL STANDBY READ ONLY
SQL> select username from dba_users where username = 'BOYUAN';
no rows selected
-- The End --
页:
[1]