Oracle ADG相關(guān)查詢的實(shí)現(xiàn)
1、判斷有無ADG
show parameter dest show parameter log_archive_config select open_mode,protection_mode,database_role,switchover_status from v$database;
2、主庫(kù)查詢gap
set lines 222 pages 100 col error for a20 col gap_status for a20 col dest_name for a20 select dest_id,dest_name,status,type,error,gap_status from v$archive_dest_status where type='PHYSICAL';

3、備庫(kù)查詢GAP
select * from v$archive_gap; --無結(jié)果說明無gap
GAP_STATUS: NO GAP:無GAP LOG SWITCH GAP : 有GAP,日志還沒有切換完成,不需要人工干預(yù) RESOLVABLE GAP:有GAP,但是可以自動(dòng)解決,不需要人工干預(yù) UNRESOLVABLE GAP:有GAP,不能自動(dòng)解決,需要人工干預(yù)(從主庫(kù)SCP歸檔到備庫(kù)并重新注冊(cè)歸檔恢復(fù)) LOCALLY UNRESOLVABLE GAP:有GAP,不能從本機(jī)獲取日志自動(dòng)解決,可以存其他機(jī)器獲取日志自動(dòng)解決
4、查看主庫(kù)多節(jié)點(diǎn)最大日志編號(hào)、查備庫(kù)recover到的日志序號(hào)
select thread#,max(sequence#) from gv$archived_log group by thread# order by 1; tail -1000f alert.log
5、主備庫(kù)查看ADG異常信息
select status,error,valid_type,valid_role,db_unique_name from v$archive_dest;
6、主庫(kù)查找備庫(kù)缺失的日志路徑和名稱:
set lines 200 pages 100 col name for a100 select name from v$archived_log where thread#=1 and dest_id=1 and sequence# between xxx and xxx;
7、判斷未應(yīng)用日志(備庫(kù)查)
select thread#,0 not_send_count,not_apply_count
from (select s.thread#,
s.sequence# - ( select max(s.sequence#) seq
from gv$managed_standby i
where i.process='ARCH'
and i.thread# = s.thread#) not_apply_count
from gv$managed_standby s
where s.process = 'MRP0')
where not_apply_count >= 0;8、判斷未傳輸日志(主庫(kù)查)
with temp as
( select process,thread#,max(sequence#) seq
from gv$managed_standby
where process in ('ARCH','LNS')
group by process,thread#)
select aa.thread#,bb.seq - aa.seq not_send_count,0 not_apply_count
from temp aa.temp bb
where aa.process='ARCH'
and bb.process='LNS'
and aa.thread#=bb.thread#
and bb.seq - aa.seq >= 0
order by 1;9、查案?jìng)鋷?kù)未應(yīng)用日志(在備庫(kù)執(zhí)行)
select dest_id,count(*) from v$archived_log where applied='NO' group by thread#,dest_id order by 1; select thread#,count(*) from v$archived_log where applied='NO' group by thread#,dest_id order by 1; select thread#,sequence#,applied from v$archived_log where applied='NO'; select thread#,dest_id,to_char(FIRST_TIME,'YYYY-MM-DD HH24:MI:SS'),name,applied,deleted,status from v$archived_log where applied='NO' order by 3;
10、查詢同步信息及相關(guān)進(jìn)程(在備庫(kù)執(zhí)行)
set lines 222 pages 100 col client_pid for a10 select inst_id,thread#,process,status,client_pid,sequence# from gv$managed_standby;

主要看MRP0進(jìn)程(日志應(yīng)用進(jìn)程)
MRP0有多個(gè)狀態(tài):
WAIT_FOR_GAP:有GAP,看看GAP是否可以自動(dòng)解決,不需要人工干預(yù)
APPLYING_LOG:正在應(yīng)用日志
WAIT_FOR_LOG:正在等待日志同步
如果WAIT_FOR_GAP持續(xù)太久就需要關(guān)注了
如果WAIT_FOR_GAP持續(xù)不長(zhǎng),可以看看主庫(kù)當(dāng)天歸檔量的大小
11、查詢一周的歸檔量
select logtime,count(*),round(sum(sr)/1024/1024/1024,2) size_gb
from ( select to_char(first_time,'YYYY-MM-DD') as logtime
(a.blocks * a.block_size) sz
from gv$archived_log a
where a.dest_id = 1
and a.first_time > trunc(sysdate - 8))
group by logtime
order by logtime;12、關(guān)閉日志應(yīng)用
alter database recover managed standby database cancel;
13、開啟日志應(yīng)用
alter database recover managed standby database parallel 16 using current logfile disconnect from session; alter database recover managed standby database using current logfile disconnect from session;
14、ADG備庫(kù)刪除歸檔
1、一般備庫(kù)應(yīng)用完歸檔會(huì)自動(dòng)刪除已經(jīng)應(yīng)用的歸檔 2、備庫(kù)歸檔不要使用強(qiáng)制刪除(force),如果備庫(kù)強(qiáng)制刪除未應(yīng)用的歸檔,此時(shí)主庫(kù)相應(yīng)的歸檔也會(huì)被策略刪除,ADG主備就不可用了 select count(*) from v$archive_gap; select count(*) from v$archived_log where applied='NO';
15、停止主庫(kù)向備庫(kù)傳輸日志
在主庫(kù)操作,將主庫(kù)的"log_archive_dest_state_2"設(shè)置為DEFER,停止主庫(kù)歸檔向備庫(kù)傳輸,可緩解備庫(kù)歸檔空間壓力,等備庫(kù)歸檔應(yīng)用并自動(dòng)刪除足夠多時(shí),再將"log_archive_dest_state_2"設(shè)置為enable,開啟主庫(kù)對(duì)備庫(kù)的傳輸 show parameter log_archive_dest_state_2 alter system set log_archive_dest_state_2=defer; alter system set log_archive_dest_state_2=enable;
16、手動(dòng)應(yīng)用歸檔日志(在備庫(kù)執(zhí)行)
asmcmd cd +ARCH/archivelog/2025-01-14/ cp thread_2_seq_458535 /tmp scp /tmp/thread_2_seq_458535 bakup:/tmp/ sqlplus / as sysdba alter database register logfile '/tmp/thread_2_seq_458535'; #或 rman target / catalog start with '/tmp/xxxx.dbf'
17、ADG切換
ADG切換之后,主備庫(kù)不傳輸?shù)那闆r,除了密碼文件的問題,有可能是觸發(fā)器的問題。(主庫(kù)禁用系統(tǒng)觸發(fā)器,等回切之后要改成true,一直是備庫(kù)禁用系統(tǒng)觸發(fā)器)
alter system set "_system_tring_enabled"=FALSE;
ADG主備切換,如果主庫(kù)有多個(gè)備庫(kù),先驗(yàn)證每個(gè)備庫(kù)是否都通,如果不能通的話需要把不通的備庫(kù)的log_archive_dest_*參數(shù)置空,要不主庫(kù)的歸檔一直發(fā)不到不通的備庫(kù),其他備庫(kù)一直等待歸檔傳輸
到此這篇關(guān)于Oracle ADG相關(guān)查詢的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Oracle ADG查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle數(shù)據(jù)庫(kù)統(tǒng)計(jì)信息方法詳解
這篇文章主要介紹了如何查看和收集Oracle數(shù)據(jù)庫(kù)中的統(tǒng)計(jì)信息,包括表、索引和列的統(tǒng)計(jì)信息,介紹了DBMS_STATS包的功能和使用方法,以及如何通過分析和刪除統(tǒng)計(jì)信息來優(yōu)化數(shù)據(jù)庫(kù)性能,需要的朋友可以參考下2024-12-12
Oracle數(shù)據(jù)庫(kù)升級(jí)到19C用戶登錄報(bào)錯(cuò)問題解決辦法
oracle是一款非常流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),被廣泛應(yīng)用于各個(gè)領(lǐng)域,下面這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)升級(jí)到19C用戶登錄報(bào)錯(cuò)問題的解決辦法,需要的朋友可以參考下2024-08-08
Oracle數(shù)據(jù)庫(kù)表空間滿了的問題處理方法
在Oracle數(shù)據(jù)庫(kù)管理中,表空間是一個(gè)重要的概念,用于存儲(chǔ)數(shù)據(jù)庫(kù)對(duì)象和數(shù)據(jù),當(dāng)表空間滿了時(shí),可能會(huì)導(dǎo)致數(shù)據(jù)庫(kù)的運(yùn)行受到影響,本文將介紹如何診斷和處理 Oracle 數(shù)據(jù)庫(kù)中表空間滿的問題,并給出相應(yīng)的 SQL 命令,需要的朋友可以參考下2024-03-03
Oracle 11g數(shù)據(jù)庫(kù)使用expdp每周進(jìn)行數(shù)據(jù)備份并上傳到備份服務(wù)器
這篇文章主要介紹了Oracle 11g數(shù)據(jù)庫(kù)使用expdp每周進(jìn)行數(shù)據(jù)備份并上傳到備份服務(wù)器,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
Oracle?查詢語(yǔ)句限制只選擇最前面幾行和最后面幾行的實(shí)現(xiàn)方式
在Oracle中,可以使用?ROWNUM?關(guān)鍵字來限制查詢結(jié)果的行數(shù),這篇文章主要介紹了Oracle?查詢語(yǔ)句限制只選擇最前面幾行和最后面幾行的實(shí)現(xiàn)方式,需要的朋友可以參考下2023-12-12
Oracle數(shù)據(jù)庫(kù)ORA-28040:沒有匹配的驗(yàn)證協(xié)議解決辦法
這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)ORA-28040:沒有匹配的驗(yàn)證協(xié)議問題的解決辦法,ORA-28040是Oracle數(shù)據(jù)庫(kù)的錯(cuò)誤代碼,表示沒有匹配的驗(yàn)證協(xié)議,這通常是由于客戶端和服務(wù)器之間的身份驗(yàn)證協(xié)議不匹配導(dǎo)致的,需要的朋友可以參考下2024-03-03

