【DB笔试面试763】在Oracle中,物理DG维护中常用到的SQL语句有哪些?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【DB笔试面试763】在Oracle中,物理DG维护中常用到的SQL语句有哪些?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6783字,纯文字阅读大概需要10分钟。
内容图文
在Oracle中,物理DG维护中常用到的SQL语句有哪些?
? ? ? ? ? ?答案部分 ? ? ? ? ?
1.启用日志应用
1ALTER?DATABASE?RECOVER?MANAGED?STANDBY?DATABASE?DISCONNECT?FROM?SESSION;
? ? ?2.启用实时的日志应用
1ALTER?DATABASE?RECOVER?MANAGED?STANDBY?DATABASE?USING?CURRENT?LOGFILE?DISCONNECT?FROM?SESSION;
? ? ?DISCONNECT FROM SESSION子句并非必需,该子句的作用是指定启动完应用后自动退出到命令操作符前。如果不指定该子句的话,那么当前SESSION就会一直停留处理Redo应用,如果想做其它操作,那么就只能新建一个连接。
3.停止日志应用服务
1ALTER?DATABASE?RECOVER?MANAGED?STANDBY?DATABASE?CANCEL;
? ? ?4.查看DG备机是否启用了日志应用,有两种办法可以判断:①可以查看是否有mrp进程,如果看不到mrp进程,那么说明没有启用日志应用。②查看V$ARCHIVE_DEST_STATUS的RECOVERY_MODE列,若启用了实时应用,则在Oracle 11g显示MANAGED REAL TIME APPLY,在Oracle 10g显示MANAGED。
1[oracle@dg?~]$?ps?-ef|grep?ora_mrp
2oracle???19592?????1??0?10:15??????????00:00:01?ora_mrp0_phydb
? ? ?5.DG总体情况查询
以下的SQL是一个非常有用的SQL语句,可以查询出当前DG的运行和配置的总体情况:
1SET?LINE?9999
2COL??DEST_NAME?FORMAT?A20
3COL?DESTINATION?FORMAT?A15
4COL?GAP_STATUS?FORMAT?A10
5COL?DB_UNIQUE_NAME?FORMAT?A15
6COL?ERROR?FORMAT?A10
7COL?APPLIED_SCN?FOR?999999999999999
8SELECT?AL.THREAD#,
9???????ADS.DEST_ID,
10???????ADS.DEST_NAME,
11???????(SELECT?ADS.TYPE?||?'?'?||?AD.TARGET
12??????????FROM?V$ARCHIVE_DEST?AD
13?????????WHERE?AD.DEST_ID?=?ADS.DEST_ID)?TARGET,
14???????ADS.DATABASE_MODE,
15???????ADS.STATUS,
16???????ADS.ERROR,
17???????ADS.RECOVERY_MODE,
18???????ADS.DB_UNIQUE_NAME,
19???????ADS.DESTINATION,
20???????ADS.GAP_STATUS,
21???????(SELECT?MAX(SEQUENCE#)?FROM?V$LOG?NA?WHERE?NA.THREAD#?=?AL.THREAD#)?CURRENT_SEQ#,
22???????MAX(SEQUENCE#)?LAST_ARCHIVED,
23???????MAX(CASE
24?????????????WHEN?AL.APPLIED?=?'YES'?AND?ADS.TYPE?<>?'LOCAL'?THEN
25??????????????AL.SEQUENCE#
26???????????END)?APPLIED_SEQ#,
27???????(SELECT?AD.APPLIED_SCN
28??????????FROM?V$ARCHIVE_DEST?AD
29?????????WHERE?AD.DEST_ID?=?ADS.DEST_ID)?APPLIED_SCN
30??FROM?(SELECT?*
31??????????FROM?V$ARCHIVED_LOG?V
32?????????WHERE?V.RESETLOGS_CHANGE#?=
33???????????????(SELECT?D.RESETLOGS_CHANGE#?FROM?V$DATABASE?D))?AL,
34???????V$ARCHIVE_DEST_STATUS?ADS
35?WHERE?AL.DEST_ID(+)?=?ADS.DEST_ID
36???AND?ADS.STATUS?!=?'INACTIVE'
37?GROUP?BY?AL.THREAD#,
38??????????ADS.DEST_ID,
39??????????ADS.DEST_NAME,
40??????????ADS.STATUS,
41??????????ADS.ERROR,
42??????????ADS.TYPE,
43??????????ADS.DATABASE_MODE,
44??????????ADS.RECOVERY_MODE,
45??????????ADS.DB_UNIQUE_NAME,
46??????????ADS.DESTINATION,
47??????????ADS.GAP_STATUS
48?ORDER?BY?ADS.DEST_ID,AL.THREAD#;
? ? ?如下是一个运行结果截图,由于太长,作者分割成了2块图,可以看到主库和备库都是RAC环境,RAC1当前的日志号为26,DG应用到了25,而RAC2当前的日志号为16,DG应用到了14号日志,备库的模式都是实时应用模式(MANAGED REAL TIME APPLY),说明当前的RAC和DG环境是正常的环境。
6.日志应用情况
检查是否存在GAP的SQL语句:
1SELECT?THREAD#,LOW_SEQUENCE#,HIGH_SEQUENCE#?FROM?V$ARCHIVE_GAP;
? ? ?物理DG日志应用情况:
1COL?NAME?FOR?A100
2SET?LINESIZE?9999??PAGESIZE?9999
3COL?NEXT_CHANGE#?FOR?999999999999999
4SELECT?THREAD#,?NAME,?SEQUENCE#,?ARCHIVED,?APPLIED,?A.NEXT_CHANGE#
5??FROM?V$ARCHIVED_LOG?A
6?WHERE?A.SEQUENCE#?>=?(SELECT?MAX(B.SEQUENCE#)?-?3
7?????????????????????????FROM?V$ARCHIVED_LOG?B
8????????????????????????WHERE?B.THREAD#?=?A.THREAD#
9??????????????????????????AND?B.RESETLOGS_CHANGE#?=?A.RESETLOGS_CHANGE#
10??????????????????????????AND?B.RESETLOGS_CHANGE#?=
11??????????????????????????????(SELECT?D.RESETLOGS_CHANGE#?FROM?V$DATABASE?D)
12??????????????????????????AND?B.APPLIED?=?'YES'?
13??????????????GROUP?BY?B.THREAD#)
14?ORDER?BY?A.THREAD#,?A.SEQUENCE#;
? ? ?假设有如下的结果:
1???THREAD#?NAME???????????????????????????SEQUENCE#?ARC?APPLIED???????NEXT_CHANGE#
2----------?-----------------------------?----------?---?---------?----------------
3?????????1?/arch/1_121_916055651.dbf????????????121?YES?YES????????????????5792359
4?????????1?/arch/1_122_916055651.dbf????????????122?YES?YES????????????????5799614
5?????????1?/arch/1_123_916055651.dbf????????????123?YES?NO?????????????????5839995
6?????????2?/arch/2_94_916055651.dbf??????????????94?YES?YES????????????????5782610
7?????????2?/arch/2_95_916055651.dbf??????????????95?YES?YES????????????????5799607
8?????????2?/arch/2_96_916055651.dbf??????????????96?YES?YES????????????????5839974
? ? ?可以看出,实例1日志应用到了123号,而实例2日志应用到了96号。
7.物理备库进程信息
1COL?GROUP_#?FORMAT?A5
2COL?CLIENT_PID?FORMAT?A8
3SET?LINE?9999?PAGESIZE?9999
4SELECT?A.INST_ID,
5???????A.PROCESS,
6???????A.CLIENT_PROCESS,
7???????A.CLIENT_PID,
8???????A.STATUS,
9???????A.GROUP#?????????GROUP_#,
10???????A.THREAD#,
11???????A.SEQUENCE#,
12???????A.DELAY_MINS,
13???????A.RESETLOG_ID,
14???????C.SID,
15???????C.SERIAL#,
16???????A.PID????????????SPID,
17???????B.PNAME
18??FROM?GV$MANAGED_STANDBY?A,?GV$PROCESS?B,?GV$SESSION?C
19?WHERE?A.PID?=?B.SPID
20???AND?B.ADDR?=?C.PADDR
21???AND?A.INST_ID?=?B.INST_ID
22???AND?B.INST_ID?=?C.INST_ID
23ORDER?BY?A.INST_ID,B.PNAME;
? ? ?① PROCESS:进程名称,如ARCH、RFS、MRP0等
② CLIENT_PID:在备库查询时对应的Primary数据库中的进程,如ARCH、LGWR等,在主库查询时就是后台进程
③ SEQUENCE#:归档序号
④ STATUS:进程的当前状态,值较多,常见的有:
l ALLOCATED:正准备连接Primary数据库
l ATTACHED:正在连接Primary数据库
l CONNECTED:已连接至Primary数据库
l IDLE:空闲中
l RECEIVING:归档文件接收中
l OPENING:归档文件处理中
l CLOSING:归档文件处理完,收尾中
l WRITING:Redo数据库写向归档文件中
l WAIT_FOR_LOG:等待新的Redo数据中
l WAIT_FOR_GAP:归档有中断,正等待中断的那部分Redo数据
l APPLYING_LOG:应用Redo数据中
8.手动注册日志
如果有日志文件未被传输或未被注册到备库,那么可以使用如下命令手工注册到备库。下面的SQL语句可以生成物理和逻辑DG注册的SQL语句,日志号从1980到2000:
1SELECT?'alter?database?register?or?replace?logical?logfile?''/arch/log_1_'?||?A?||
2???????'?_666200636.arc'';'?LOGICAL_DG,
3???????'alter?database?register?or?replace??logfile?''/arch/log_1_'?||?A?||
4???????'?_666200636.arc'';'?PHYSICAL_DG
5??FROM?(SELECT?LEVEL?A?FROM?DUAL?CONNECT?BY?LEVEL?<=?2000)
6?WHERE?A?>=?1980;
? ? ?本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗
---------------优质麦课------------
详细内容可以添加麦老师微信或QQ私聊。
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:618766405
● 提供OCP、OCM和高可用部分最实用的技能培训
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。
本文分享自微信公众号 - DB宝(lhrdba)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
内容总结
以上是互联网集市为您收集整理的【DB笔试面试763】在Oracle中,物理DG维护中常用到的SQL语句有哪些?全部内容,希望文章能够帮你解决【DB笔试面试763】在Oracle中,物理DG维护中常用到的SQL语句有哪些?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。