snapshot standby 与physical standby的切换,两个角色都是针对备库来说的 :
----切换到snapshot standby快照备库:
--打开备库,查看备库状态:
SQL> alter database open;
Database altered.
SQL> select database_role,open_mode from v$database;
DATABASE_ROLE OPEN_MODE
---------------- --------------------
PHYSICAL STANDBY READ ONLY
目前为物理备库角色。
--切换成快照备库前打开闪回功能:
SQL> alter database flashback on;
Database altered.
--切换到快照备库:
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
SQL> alter database open;
Database altered.
--查看备库的状态:
SQL> select database_role,open_mode from v$database;
DATABASE_ROLE OPEN_MODE
---------------- --------------------
SNAPSHOT STANDBY READ WRITE
--模拟业务建表插数据:
SQL> create table suxing.test(id number);
Table created.
SQL> insert into suxing.test values(2);
1 row created.
SQL> commit;
Commit complete.
--切回到物理备库:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2257840 bytes
Variable Size 692063312 bytes
Database Buffers 138412032 bytes
Redo Buffers 2371584 bytes
Database mounted.
SQL>
SQL> startup mount
ORA-01081: cannot start already-running ORACLE - shut it down first
SQL> alter database convert to physical standby;
Database altered.
SQL> SP2-0734: unknown command beginning "Database a..." - rest of line ignored.
--尝试直接打开数据库 :
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2257840 bytes
Variable Size 692063312 bytes
Database Buffers 138412032 bytes
Redo Buffers 2371584 bytes
Database mounted.
Database opened.
SQL>
--从新应用日志:
SQL> recover managed standby database disconnect from session;
Media recovery complete.
SQL> select database_role,open_mode from v$database;
DATABASE_ROLE OPEN_MODE
---------------- --------------------
PHYSICAL STANDBY READ ONLY WITH APPLY
--查看刚刚创建的表结构:
SQL> desc suxing.test
ERROR:
ORA-04043: object suxing.test does not exist
----切换到snapshot standby快照备库:
--打开备库,查看备库状态:
SQL> alter database open;
Database altered.
SQL> select database_role,open_mode from v$database;
DATABASE_ROLE OPEN_MODE
---------------- --------------------
PHYSICAL STANDBY READ ONLY
目前为物理备库角色。
--切换成快照备库前打开闪回功能:
SQL> alter database flashback on;
Database altered.
--切换到快照备库:
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
SQL> alter database open;
Database altered.
--查看备库的状态:
SQL> select database_role,open_mode from v$database;
DATABASE_ROLE OPEN_MODE
---------------- --------------------
SNAPSHOT STANDBY READ WRITE
--模拟业务建表插数据:
SQL> create table suxing.test(id number);
Table created.
SQL> insert into suxing.test values(2);
1 row created.
SQL> commit;
Commit complete.
--切回到物理备库:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2257840 bytes
Variable Size 692063312 bytes
Database Buffers 138412032 bytes
Redo Buffers 2371584 bytes
Database mounted.
SQL>
SQL> startup mount
ORA-01081: cannot start already-running ORACLE - shut it down first
SQL> alter database convert to physical standby;
Database altered.
SQL> SP2-0734: unknown command beginning "Database a..." - rest of line ignored.
--尝试直接打开数据库 :
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2257840 bytes
Variable Size 692063312 bytes
Database Buffers 138412032 bytes
Redo Buffers 2371584 bytes
Database mounted.
Database opened.
SQL>
--从新应用日志:
SQL> recover managed standby database disconnect from session;
Media recovery complete.
SQL> select database_role,open_mode from v$database;
DATABASE_ROLE OPEN_MODE
---------------- --------------------
PHYSICAL STANDBY READ ONLY WITH APPLY
--查看刚刚创建的表结构:
SQL> desc suxing.test
ERROR:
ORA-04043: object suxing.test does not exist
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31392094/viewspace-2126908/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31392094/viewspace-2126908/