暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 11g ADG 快照备库切换步骤

JiekeXu之路 2020-07-30
1619

作者 | JiekeXu

来源 | JiekeXu之路(ID: JiekeXu_IT)

转载请联系授权 | (微信ID:xxq1426321293)

大家好,我是 JiekeXu,很高兴又和大家见面了,今天分享下 Oracle 11g ADG 快照备库切换步骤本文首发于微信公众号【JiekeXu之路】,欢迎点击上方蓝字关注我吧!

有时候为了配合业务部门的演练工作,需要在 ADG 备库进行一些业务模拟演练,这样就需要将备库切换成可以读写的模式,刚好 Oracle 11g 有个新特性就是快照备库(snapshot standby),将 ADG 备库切换成快照备库,这个就可以满足应用要求,实现读写的操作,待应用完成业务演练后,再将快照备库切换成物理备库即可,这样就不会破坏原有备库的结构。

以下备库为 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 STANDBYNAME          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   07/27/2020 10:43:58apply lag     +00 00:00:00         day(2) to second(0) interval   07/27/2020 10:43:58
复制

第二部分:设置快照备库

以 oracle 用户登录到备库数据库主机下执行:sqlplus as sysdba

检查磁盘组ARCH的剩余空间

col PATH for a33col NAME for a15col FAILGROUP for a15select group_number,name,total_mb/1024 total_gb,free_mb/1024 free_gb,TYPE,state--,(total_mb-free_mb)/total_mbfrom 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 immediate4.一节点启动到mount阶段[节点1]startup mount5.数据库开启闪回[节点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 immediate2.启动数据库到mount状态[节点1]startup mount3.将数据库从快照模式转换为物理备库[节点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]startup7.启动日志应用进程,同步生产主库数据[节点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:06apply lag     +00 00:00:00         day(2) to second(0) interval   05/27/2020 11:00:069.当然也可查看 MRP0 进程存在且处于 APPLYING_LOG  模式为正常。SELECT PROCESS, STATUS,SEQUENCE#,thread# FROM V$MANAGED_STANDBY;PROCESS   STATUS        SEQUENCE#    THREAD#--------- ------------ ---------- ----------ARCH      CLOSING            5695          2ARCH      CLOSING            6131          1ARCH      CLOSING            5882          2ARCH      CLOSING            5741          1ARCH      CLOSING            6061          1ARCH      CLOSING            5920          1ARCH      CONNECTED             0          0ARCH      CLOSING            6052          1ARCH      CLOSING            5720          1ARCH      CLOSING            5847          1RFS       IDLE                  0          0RFS       IDLE                  0          0MRP0      APPLYING_LOG       6109          213 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 immediate4.一节点启动到mount阶段[节点1]startup mount5.数据库开启闪回[节点1]alter database flashback on;6.将备库改成快照模式(只读变成读写)[节点1]alter database convert to snapshot standby;7.启动数据库[节点1]

alter database open;

复制

------------------------------------------------------

SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME -

> FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#; SEQUENCE# FIRST_TIME NEXT_TIME---------- ------------------ ------------------
8 11-JUL-07 17:50:45 11-JUL-07 17:50:53
9 11-JUL-07 17:50:53 11-JUL-07 17:50:58
10 11-JUL-07 17:50:58 11-JUL-07 17:51:03
11 11-JUL-07 17:51:03 11-JUL-07 18:34:11
4 rows selected.
复制

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

更多 DataGuard 请查看如下官方文档:

https://docs.oracle.com/cd/E11882_01/server.112/e41134/create_ps.htm#SBYDB00200


好了,今天就先到这里了,小伙伴们再见了。写作不易,此文如果对你有帮助,请支持“在看”与转发,您的支持便是我不断写作的最大的动力,实在吝啬点个赞也行哈,微信公众号以前的点赞又回来了,加油,让我们一起努力做更好的自己!



Oracle 12c 及以上版本补丁更新说明及下载方法(收藏版)

Oracle 19c 之多租户 PDB 连接与访问(三)

Oracle 12C 最新补丁下载与安装操作指北

关于 Oracle ACFS 相关知识的简单学习

Oracle 相关认证证书查询及真伪辨别


点亮在看,你最好看!

文章转载自JiekeXu之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论