有时候为了配合业务部门的演练工作,需要在 ADG 备库进行一些业务模拟演练,这样就需要将备库切换成可以读写的模式,刚好 Oracle 11g 有个新特性就是快照备库,将备库切换成快照备库,这个就可以满足应用要求,实现读写的操作,待应用完成业务演练后,再将快照备库切换成物理备库即可,这样就不会破坏原有备库的结构。
以下备库为 RAC 架构下的 ADG 备库,即 MAA 架构。
第一部分:检查备库同步情况
以 oracle 用户登录到备库数据库主机下执行:
sqlplus / as sysdba
#检查备库状态
select NAME,DATABASE_ROLE,OPEN_MODE,PROTECTION_MODE,REMOTE_ARCHIVE,SWITCHOVER_STATUS,FLASHBACK_ON from v$database; --看到实例状态为只读物理备库 READ ONLY WITH APPLY,PHYSICAL STANDBY NAME DATABASE_ROLE OPEN_MODE PROTECTION_MODE REMOTE_A SWITCHOVER_STATUS FLASHBACK_ON ------------- ---------------- -------------------- -------------------- -------- -------------------- ------------------ BJZZSKP PHYSICAL STANDBY READ ONLY WITH APPLY MAXIMUM PERFORMANCE ENABLED NOT ALLOWED NO
复制
#查询同步延迟
set pagesize 20; column name format a13; column value format a20; column unit format a30; column TIME_COMPUTED format a30; select name,value,unit,time_computed from v$dataguard_stats where name in ('transport lag','apply lag'); --看到以下 VALUE 结果为 0 则实时同步 NAME VALUE UNIT TIME_COMPUTED ------------- -------------------- ------------------------------ ------------------------------ transport lag +00 00:00:00 day(2) to second(0) interval 05/27/2020 10:43:58 apply lag +00 00:00:00 day(2) to second(0) interval 05/27/2020 10:43:58
复制
第二部分:设置快照备库
以 oracle 用户登录到备库数据库主机下执行:
sqlplus / as sysdba
#检查磁盘组ARCH的剩余空间
col PATH for a33 col NAME for a15 col FAILGROUP for a15 select group_number,name,total_mb/1024 total_gb,free_mb/1024 free_gb,TYPE,state --,(total_mb-free_mb)/total_mb from v$asm_diskgroup; GROUP_NUMBER NAME TOTAL_GB FREE_GB TYPE STATE ------------ --------------- ---------- ---------- ------ ----------- 1 ARCH 100 96.6152344 EXTERN CONNECTED 2 DATA 200 127.306641 EXTERN CONNECTED 3 OCR 3 2.09570313 NORMAL MOUNTED
复制
#检查闪回是否开启
SQL> select flashback_on from v$database; FLASHBACK_ON ------------------ NO
复制
根据以上查询到 +ARCH 大小设置 20G-30G 左右的闪回空间,以下节点1指数据库主机1,节点2指数据库主机2 均在 SQLPlus 下运行.
[节点1] alter system set db_recovery_file_dest_size=30G scope=both; 2.设置闪回区路径 [节点1] alter system set db_recovery_file_dest='+ARCH' scope=both; 3.关闭灾备两个接节点的数据库 [节点1] shutdown immediate [节点2] shutdown immediate 4.一节点启动到mount阶段 [节点1] startup mount 5.数据库开启闪回 [节点1] alter database flashback on; 6.将备库改成快照模式(只读变成读写) [节点1] alter database convert to snapshot standby; 7.启动数据库 [节点1] alter database open; [节点2] startup
复制
第三部分:快照备库还原为物理备库
灾备业务模拟之后,还原备库(建议三天内还原备库)
[节点1] shutdown immediate [节点2] shutdown immediate 2.启动数据库到mount状态 [节点1] startup mount 3.将数据库从快照模式转换为物理备库 [节点1] alter database convert to physical standby; 4.重启数据库至mount [节点1] shutdown immediate; startup nomount; alter database mount standby database; 5.关闭闪回 [节点1] alter database flashback off; alter system set db_recovery_file_dest='' scope=both; 6.打开数据库(如有问题,联系总部oracle技术支持) [节点1] alter database open; shutdown immediate; startup; [节点2] startup 7.启动日志应用进程,同步生产主库数据 [节点1] alter database recover managed standby database using current logfile disconnect from session; 8.多次重复执行检查主备同步状态,传输日志和应用日志时间 [节点1] set linesize 150; set pagesize 20; column name format a13; column value format a20; column unit format a30; column TIME_COMPUTED format a30; select name,value,unit,time_computed from v$dataguard_stats where name in ('transport lag','apply lag'); 以下时间为 0 则正常 NAME VALUE UNIT TIME_COMPUTED ------------- -------------------- ------------------------------ ------------------------------ transport lag +00 00:00:00 day(2) to second(0) interval 05/27/2020 11:00:06 apply lag +00 00:00:00 day(2) to second(0) interval 05/27/2020 11:00:06 9.当然也可查看 MRP0 进程存在且处于 APPLYING_LOG 模式为正常。 SELECT PROCESS, STATUS,SEQUENCE#,thread# FROM V$MANAGED_STANDBY; PROCESS STATUS SEQUENCE# THREAD# --------- ------------ ---------- ---------- ARCH CLOSING 5695 2 ARCH CLOSING 6131 1 ARCH CLOSING 5882 2 ARCH CLOSING 5741 1 ARCH CLOSING 6061 1 ARCH CLOSING 5920 1 ARCH CONNECTED 0 0 ARCH CLOSING 6052 1 ARCH CLOSING 5720 1 ARCH CLOSING 5847 1 RFS IDLE 0 0 RFS IDLE 0 0 MRP0 APPLYING_LOG 6109 2 13 rows selected.
复制
以下备库为单机文件系统架构下的 ADG 备库。
略有不同的就是第二部分,闪回目录只能设置到本地文件系统,不能设置到 ASM 磁盘组了。第三部分不涉及到节点 2 的操作,只在一个节点完成前面第三部分的内容即可。
以 oracle 用户登录到备库数据库主机下执行:
df -h
#检查 /app 文件系统的的剩余空间
#检查是否开启闪回
sqlplus / as sysdba SQL> select flashback_on from v$database; FLASHBACK_ON ------------------ NO
复制
根据以上查询到 /app 大小设置 20G-30G 左右的闪回空间
[节点1] alter system set db_recovery_file_dest_size=30G scope=both; 2.设置闪回区路径 注意:如果没有 /app/flash 目录,则需要创建此目录,执行mkdir -p /app/flash [节点1] alter system set db_recovery_file_dest='/app/flash' scope=both; 3.关闭灾备两个接节点的数据库 [节点1] shutdown immediate 4.一节点启动到mount阶段 [节点1] startup mount 5.数据库开启闪回 [节点1] alter database flashback on; 6.将备库改成快照模式(只读变成读写) [节点1] alter database convert to snapshot standby; 7.启动数据库 [节点1] alter database open;
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
768次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
651次阅读
2025-04-15 17:24:06
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
577次阅读
2025-04-20 10:07:02
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
534次阅读
2025-04-22 00:13:51
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
523次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
499次阅读
2025-04-22 00:20:37
一页概览:Oracle GoldenGate
甲骨文云技术
485次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
455次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
381次阅读
2025-04-15 14:48:05
OR+DBLINK的关联SQL优化思路
布衣
377次阅读
2025-05-05 19:28:36