物理备库互转快照备库

来源:互联网 发布:好用又不贵的面霜知乎 编辑:程序博客网 时间:2024/06/09 17:10

特点:
snapshot standby database 会从主库接收和归档 redo data,但是不会对redo data进行apply。 仅当snapshot standby 的角色转换回physical standby database 的时候才会应用之前接收的apply 文件。 然后擦除作为snapshot standby 数据库时所有的DML和DDL操作。

限制:
(1)Snapshot standby 数据库不能进行switchover 或者failover 操作。 在转换之前,也必须先从snapshot standby 转换成physical standby 以后才可以转换。

(2)Snapshot standby 不支持最大保护模式。(原因:最大保护需要real time applied)

优点:
想做测试,主库不能操作,可以将备库转为快照备库,做完测试,再转为物理备库。

将Physical Standby转成Snapshot Standby Database :

流程:

2. 确保fast recovery area已经配置(确保大小合适),但不需要启动flashback database功能。
SQL> show parameter flashback
NAME TYPE VALUE
------------------------------------ ----------- --------------------
db_flashback_retention_target integer 1440

SQL> show parameter db_recover
NAME TYPE VALUE
------------------------------------ ----------- --------
db_recovery_file_dest string +FLASH
db_recovery_file_dest_size big integer 3882M

-- 如果大小合适,不用调整大小
SQL> alter system set db_recovery_file_dest_size=10g scope=both;
System altered.

停止Redo Apply
SQL> alter database recover managed standby database cancel; 
3. 备库进行切换
SQL> ALTER DATABASE CONVERT TO SNAPSHOT STANDBY;
Database altered.

SQL> select open_mode from v$database;
OPEN_MODE
--------------------
MOUNTED

说明:备库的 alert 日志里面有详细记录,启动了一个后台进程:RVWR ,创建了一个guaranteed 的resotre point,
进行了resetlogs 的操作 。

SQL> alter database open;
Database altered.

SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ WRITE

--模拟测试
SQL> create table andysnap (id int);
Table created.

SQL> insert into andysnap values(1);
1 row created.

4. 主库日志切换,看日志是否正常传递到备库,且没有应用。
SQL> alter system switch logfile;
System altered.

备库查看

SQL> select thread#,sequence#,applied from v$archived_log;
。。。。
1 78 NO

5. 测试完毕,将 Snapshot Standby 转成 Physical Standby 
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database convert to physical standby;
Database altered.
说明: 备库 alert 有详细记录 ,转换的过程相当于 Flashback restore , 并 drop 掉restore point 。

SQL> shutdown immediate;
SQL> startup;
SQL> alter database recover managed standby database using current logfile disconnect from session;
Database altered.

6. 检测主备同步情况
主库:
SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
78
备库:

SQL> select sequence#,applied from v$archived_log;
。。。。。
78 IN-MEMORY
71 rows selected.

 


0 0
原创粉丝点击