众所周知,Oracle的standby数据库有三种模式:物理standby数据库、逻辑standby数据库和快照standby数据库。在这里主要讲述快照standby数据库的特点,数据库版本为11gR2。 一、快照standby数据库的特点 快照standby数据库有如下特点: 1、能在读写模式打开,是完全可更新的standby数据库 2、从主数据库接收相关日志,但不应用 3、当转换为物理standby数据库时,首先会抛弃所有之前的更新,然后应用接收到的redo数据 4、不能作为switchver或者failover的目标。在执行角色转换之前,必须首先转换为物理standby数据库 5、在最大保护Data Guard配置中,快照standby数据库不能是唯一的standby数据库。 注意:使用Flashback Database技术的任何操作都是不可逆的,Flashback Database将阻止一个快照standby转换为物理standby 二、快照standby数据库的搭建 1、物理standby数据库搭建 快照standby数据库由物理standby数据库转换而来。因此首先搭建物理standby数据库,过程略。 2、将物理standby数据库转换为快照standby数据库 1)主库上查看目的地的数据库模式、恢复模式和保护模式 SQL> select dest_id,database_mode,recovery_mode,protection_mode from v$archive_dest_status where dest_id = 2; DEST_ID DATABASE_MODE RECOVERY_MODE PROTECTION_MODE ---------- --------------- ----------------------- -------------------- 2 OPEN_READ-ONLY MANAGED REAL TIME APPLY MAXIMUM PERFORMANCE 可看到standby数据库以只读方式打开,在最高可用性级别实时应用redo 2)停止物理standby数据库的Redo Apply SQL> alter database recover managed standby database cancel; Database altered. 3)如果物理standby数据库是RAC,则只保留一个实例,其他关闭。本环境中物理standby数据库是单实例。 4)确保闪回恢复区被配置 SQL> show parameter db_recover NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_recovery_file_dest string /opt/app/oracle/fast_recovery_area db_recovery_file_dest_size big integer 4182M 否则在转换时会报错: ORA-38784: Cannot create restore point 'SNAPSHOT_STANDBY_REQUIRED_10/24/2018 10:41:21'. ORA-38786: Recovery area is not enabled. 5)将物理standby数据库转换为快照standby数据库 备库上执行: SQL> alter database convert to snapshot standby; Database altered. 可看到数据库创建了一个还原点: SQL> select name,storage_size from v$restore_point; NAME STORAGE_SIZE ----------------------------------------------- ------------ SNAPSHOT_STANDBY_REQUIRED_10/24/2018 10:43:28 1073741824 此时数据库处于mounted状态: SQL> select name, 2 database_role, 3 switchover_status, 4 open_mode, 5 protection_mode 6 from v$database; NAME DATABASE_ROLE SWITCHOVER_STATUS OPEN_MODE PROTECTION_MODE -------------------- -------------------- ------------------------------ -------------------- -------------------- BDDEV2 SNAPSHOT STANDBY NOT ALLOWED MOUNTED MAXIMUM PERFORMANCE 6)打开备库 SQL> select name, 2 database_role, 3 switchover_status, 4 open_mode, 5 protection_mode 6 from v$database; 此时备库已转换完成: NAME DATABASE_ROLE SWITCHOVER_STATUS OPEN_MODE PROTECTION_MODE -------------------- -------------------- ------------------------------ -------------------- -------------------- BDDEV2 SNAPSHOT STANDBY NOT ALLOWED READ WRITE MAXIMUM PERFORMANCE 三、快照standby转换为物理standby 1.将备库重启到mount模式 SQL> startup force mount ORACLE instance started. 2.备库执行语句,转换为物理standby SQL> alter database convert to physical standby; Database altered. 转换后数据库被卸载,需要重启 3.重启数据库 SQL> startup force; ORACLE instance started. 4.恢复redo应用 SQL> alter database recover managed standby database using current logfile disconnect; Database altered. SQL> select name, 2 database_role, 3 switchover_status, 4 open_mode, 5 protection_mode 6 from v$database; NAME DATABASE_ROLE SWITCHOVER_STATUS OPEN_MODE PROTECTION_MODE -------------------- -------------------- ------------------------------ -------------------- -------------------- BDDEV2 PHYSICAL STANDBY RECOVERY NEEDED READ ONLY MAXIMUM PERFORMANCE 四、快照standby数据库测试 1.测试是否可读写 1)对表scott.tb_test进行更新: SQL> delete from scott.tb_test where object_id = 20; 1 row deleted. 2)删除表scott.tb_test: SQL> drop table scott.tb_test purge; Table dropped. 此时表scott.tb_test在备库中已经不存在了,但在主库中还存在 3)创建新表 SQL> create table scott.tb_test2(id int); Table created. 2.测试是否能接收日志且不应用 主库: SQL> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination /opt/app/oracle/archivelog/ Oldest online log sequence 77 Next log sequence to archive 79 Current log sequence 79 可看到主库当前日志序号为79 备库: SQL> SELECT PROCESS, 2 PID, 3 STATUS, 4 SEQUENCE#, 5 DELAY_MINS 6 FROM V$MANAGED_STANDBY; PROCESS PID STATUS SEQUENCE# DELAY_MINS ------------------------------ ---------- -------------------- ---------- ---------- ARCH 25422 CLOSING 78 0 ARCH 25425 CONNECTED 0 0 ARCH 25427 CLOSING 76 0 ARCH 25429 CLOSING 77 0 RFS 26020 IDLE 0 0 RFS 26023 IDLE 0 0 RFS 26026 IDLE 79 0 可看到备库RFS进程正在接收的redo序号也为79,因此备库此时可以接收日志;备库中MRP进程没有启动,因此可断定此时日志没有应用 3.将快照standby转换为物理standby,看scott.tb_test是否能恢复 按照三中的步骤,将快照standby转换为物理standby,此时查看备库中是否有scott.tb_test: SQL> select count(1) from scott.tb_test; COUNT(1) ---------- 86415 查看之前在备库建的表scott.tb_test2还是否存在: SQL> desc scott.tb_test2 ERROR: ORA-04043: object scott.tb_test2 does not exist 综上,说明快照standby转换到物理standby时,会抛弃在快照standby状态时所做的更改。
Oracle的快照standby
来源:这里教程网
时间:2026-03-03 12:08:03
作者:
编辑推荐:
- Oracle的快照standby03-03
- word2010怎么将doc转成html格式03-03
- 如何旋转Word2010文档中的图片03-03
- 教你在Word2010中应用图片的预设效果03-03
- word2010如何保存文档03-03
- restore database误操作恢复03-03
- Word2010中货币数字格式设置方法03-03
- word2010撤销与恢复方法03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- restore database误操作恢复
restore database误操作恢复
26-03-03 - 1024程序员节/探讨ORACLE环境故障的解决方法
1024程序员节/探讨ORACLE环境故障的解决方法
26-03-03 - oracle视图
oracle视图
26-03-03 - oralce简单条件查询练习
oralce简单条件查询练习
26-03-03 - oracle实例名查询、实例状态查询等
oracle实例名查询、实例状态查询等
26-03-03 - ORA-1122/ORA-1208 数据文件头写丢失故障
ORA-1122/ORA-1208 数据文件头写丢失故障
26-03-03 - impdp导入提示ORA-39087和ORA-39070错误
impdp导入提示ORA-39087和ORA-39070错误
26-03-03 - oracle分组查询
oracle分组查询
26-03-03 - 如何在Word2010中进行邮件合并收件人排序
如何在Word2010中进行邮件合并收件人排序
26-03-03 - 如何在Word2010文档中使用书签
如何在Word2010文档中使用书签
26-03-03
