DG相關指令碼
#############################
# 常用資訊的查詢 #
#############################
--涉及SQL應用的不同程式的當前狀態的相關資訊
select * from v$logstdby_process;
select * from v$logstdby_progress;
select * from v$logstdby;
select * from v$logstdby_transaction;
select sid ,serial#, spid , 'kill -9'||spid ||';' from v$logstdby_process;
檢視邏輯standby的相關引數
select name param_name, value param_value from dba_logstdby_parameters;
ALTER DATABASE STOP LOGICAL STANDBY APPLY;
EXECUTE DBMS_LOGSTDBY.APPLY_SET('APPLY_SERVERS',20);
ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;
--SQL應用的當前狀態的概要
select * from v$logstdby_state;
--在SQL應用操作期間發生的感興趣的事件(如果SQL 應用應該未預料地停止,問題的原因也記錄在該檢視中)
select * from dba_logstdby_events order by event_time desc;
--預設列出最近的100個事件,可以改成保留10000個事件
--execute dbms_logstdby.apply_set ('MAX_EVENTS_RECORDED','10000');
--被SQL應用處理的歸檔日誌的動態相關資訊
select * from dba_logstdby_log;
--邏輯備資料庫的故障轉移特性的相關資訊,包括:
--到故障轉移的時間(apply finish time)
--在邏輯備資料庫中已提交的資料有多新(lag time)
--在災難發生的情況下可能會丟失什麼資料(potential data loss)
select * from v$logstdby_stats;
--檢視預設不同步的使用者下的物件
select owner,name from DBA_LOGSTDBY_SKIP;
--skip
select owner,NAME from dba_logstdby_skip WHERE statement_opt='SCHEMA_DDL' ORDER BY 1,2;
select owner,NAME from dba_logstdby_skip WHERE statement_opt='DML' ORDER BY 1,2;
select * from dba_logstdby_skip_transaction;
#############################
# skip and unskip #
#############################
--skip事務
--A.透過包
--1.透過dba_logstdby_events檢視找到事務的3個SN(XIDUSN,XIDSLT,XIDSQN)
select * from dba_logstdby_events order by event_time desc;
--2.停止sql apply(可能已經自動停掉了)
alter database stop logical standby apply;
--3.透過DBMS_LOGSTDBY.SKIP_TRANSACTION包skip掉該事務
--exec dbms_logstdby.skip_transaction (XIDUSN =>139 , XIDSLT =>22 , XIDSQN =>32374 );
exec dbms_logstdby.skip_transaction (8 , 14 , 3049627 ); --要寫成這樣
EXEC dbms_logstdby.skip_transaction (
--4.開啟sql apply
alter database start logical standby apply immediate;
--恢復ddl或者dml
--檢視skip的相關資訊
select owner,NAME from dba_logstdby_skip WHERE statement_opt='SCHEMA_DDL' ORDER BY 1,2;
select owner,NAME from dba_logstdby_skip WHERE statement_opt='DML' ORDER BY 1,2;
--1.停止sql apply(可能已經自動停掉了)
alter database stop logical standby apply;
--2.透過DBMS_LOGSTDBY.SKIP_TRANSACTION包skip和unskip
exec dbms_logstdby.unskip (stmt => 'SCHEMA_DDL',schema_name => 'CPS',object_name => 'T_TMC_AT_DATA_REQUEST'); --多執行三遍
exec dbms_logstdby.unskip (stmt => 'DML',schema_name => 'CPS',object_name => 'T_TMC_AT_DATA_REQUEST'); --多執行三遍
exec dbms_logstdby.skip (stmt => 'SCHEMA_DDL',schema_name => 'CPS',object_name => 'T_TMC_AT_DATA_REQUEST'); --多執行三遍
exec dbms_logstdby.skip (stmt => 'DML',schema_name => 'CPS',object_name => 'T_TMC_AT_DATA_REQUEST'); --多執行三遍
--3.開啟sql apply
alter database start logical standby apply immediate;
DML: update 、insert 、delete
SCHEMA_DDL:create、alter、drop、truncate、rename 、COMMENT
表名一定要大寫!!
--其他檢視
select * from dba_logstdby_progress;
select * from dba_logstdby_history;
select * from dba_logstdby_not_unique;
select * from dba_logstdby_parameters;
select * from dba_logstdby_unsupported;
#############################
# sql應用的啟動和關閉 #
#############################
--開始sql應用
alter database start logical standby apply immediate;
--停止sql應用
alter database stop logical standby apply;
--alter database abort logical standby apply
--等待 "kksfbc child completion" 導致複製異常等待處理,Oracle之Bug
ALTER DATABASE ABORT LOGICAL STANDBY APPLY --停掉複製程式
alter database start logical standby apply immediate; --開啟複製程式
#############################
# 常見問題處理 #
#############################
--日誌卡著不動
--1.檢視RFS程式有沒有問題
select * from v$managed_standby
--2.檢查日誌傳輸是否開啟,若沒有開啟,修改
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = ENABLE scope = both;
--3.檢視卡在哪個日誌上了
select * from v$logstdby_process;
--4.從主庫上往備庫上推日誌
scp /u02/archive/billdb/Arc_3_29152_592235202.arc oracle@192.168.1.102:/u02/stdlog/
--5.註冊日誌檔案
alter database register or replace logical logfile '/u02/stdlog/vposdb/Arc_1_76561_676043623.arc';
--ORA-01291: missing logfile
--1.在主庫上重新生成一份資料字典
EXECUTE DBMS_LOGSTDBY.BUILD;
--2.切換日誌
alter system switch logfile;
--一切正常但延時嚴重
select a.sid, a.status, c.sql_text
from v$logstdby_process a, v$session b, v$sqlarea c
where a.sid = b.sid
and b.sql_id = c.sql_id;
--在DATAGUARD中手工處理日誌GAP的方法
1.在備庫檢查是否有日誌缺失
select * from V$ARCHIVE_GAP;
2.在主庫中查詢缺失的日誌的所在路徑和名稱
SELECT NAME FROM V$ARCHIVED_LOG WHERE THREAD#=1 AND DEST_ID=1 AND SEQUENCE# BETWEEN 99 AND 109;
3.把日誌複製到備庫上
4.在備庫上手工註冊上一步中從主庫複製來的日誌
alter database register or replace logical logfile '/u02/stdlog/Arc_1_31085_592235202.arc';
5.稍等片刻,觀察備庫的alert日誌資訊
6.檢查備庫是否還有日誌GAP,如果有記錄重複以上步驟,直到沒有結果顯示。
select * from V$ARCHIVE_GAP
# 常用資訊的查詢 #
#############################
--涉及SQL應用的不同程式的當前狀態的相關資訊
select * from v$logstdby_process;
select * from v$logstdby_progress;
select * from v$logstdby;
select * from v$logstdby_transaction;
select sid ,serial#, spid , 'kill -9'||spid ||';' from v$logstdby_process;
檢視邏輯standby的相關引數
select name param_name, value param_value from dba_logstdby_parameters;
ALTER DATABASE STOP LOGICAL STANDBY APPLY;
EXECUTE DBMS_LOGSTDBY.APPLY_SET('APPLY_SERVERS',20);
ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;
--SQL應用的當前狀態的概要
select * from v$logstdby_state;
--在SQL應用操作期間發生的感興趣的事件(如果SQL 應用應該未預料地停止,問題的原因也記錄在該檢視中)
select * from dba_logstdby_events order by event_time desc;
--預設列出最近的100個事件,可以改成保留10000個事件
--execute dbms_logstdby.apply_set ('MAX_EVENTS_RECORDED','10000');
--被SQL應用處理的歸檔日誌的動態相關資訊
select * from dba_logstdby_log;
--邏輯備資料庫的故障轉移特性的相關資訊,包括:
--到故障轉移的時間(apply finish time)
--在邏輯備資料庫中已提交的資料有多新(lag time)
--在災難發生的情況下可能會丟失什麼資料(potential data loss)
select * from v$logstdby_stats;
--檢視預設不同步的使用者下的物件
select owner,name from DBA_LOGSTDBY_SKIP;
--skip
select owner,NAME from dba_logstdby_skip WHERE statement_opt='SCHEMA_DDL' ORDER BY 1,2;
select owner,NAME from dba_logstdby_skip WHERE statement_opt='DML' ORDER BY 1,2;
select * from dba_logstdby_skip_transaction;
#############################
# skip and unskip #
#############################
--skip事務
--A.透過包
--1.透過dba_logstdby_events檢視找到事務的3個SN(XIDUSN,XIDSLT,XIDSQN)
select * from dba_logstdby_events order by event_time desc;
--2.停止sql apply(可能已經自動停掉了)
alter database stop logical standby apply;
--3.透過DBMS_LOGSTDBY.SKIP_TRANSACTION包skip掉該事務
--exec dbms_logstdby.skip_transaction (XIDUSN =>139 , XIDSLT =>22 , XIDSQN =>32374 );
exec dbms_logstdby.skip_transaction (8 , 14 , 3049627 ); --要寫成這樣
EXEC dbms_logstdby.skip_transaction (
--4.開啟sql apply
alter database start logical standby apply immediate;
--恢復ddl或者dml
--檢視skip的相關資訊
select owner,NAME from dba_logstdby_skip WHERE statement_opt='SCHEMA_DDL' ORDER BY 1,2;
select owner,NAME from dba_logstdby_skip WHERE statement_opt='DML' ORDER BY 1,2;
--1.停止sql apply(可能已經自動停掉了)
alter database stop logical standby apply;
--2.透過DBMS_LOGSTDBY.SKIP_TRANSACTION包skip和unskip
exec dbms_logstdby.unskip (stmt => 'SCHEMA_DDL',schema_name => 'CPS',object_name => 'T_TMC_AT_DATA_REQUEST'); --多執行三遍
exec dbms_logstdby.unskip (stmt => 'DML',schema_name => 'CPS',object_name => 'T_TMC_AT_DATA_REQUEST'); --多執行三遍
exec dbms_logstdby.skip (stmt => 'SCHEMA_DDL',schema_name => 'CPS',object_name => 'T_TMC_AT_DATA_REQUEST'); --多執行三遍
exec dbms_logstdby.skip (stmt => 'DML',schema_name => 'CPS',object_name => 'T_TMC_AT_DATA_REQUEST'); --多執行三遍
--3.開啟sql apply
alter database start logical standby apply immediate;
DML: update 、insert 、delete
SCHEMA_DDL:create、alter、drop、truncate、rename 、COMMENT
表名一定要大寫!!
--其他檢視
select * from dba_logstdby_progress;
select * from dba_logstdby_history;
select * from dba_logstdby_not_unique;
select * from dba_logstdby_parameters;
select * from dba_logstdby_unsupported;
#############################
# sql應用的啟動和關閉 #
#############################
--開始sql應用
alter database start logical standby apply immediate;
--停止sql應用
alter database stop logical standby apply;
--alter database abort logical standby apply
--等待 "kksfbc child completion" 導致複製異常等待處理,Oracle之Bug
ALTER DATABASE ABORT LOGICAL STANDBY APPLY --停掉複製程式
alter database start logical standby apply immediate; --開啟複製程式
#############################
# 常見問題處理 #
#############################
--日誌卡著不動
--1.檢視RFS程式有沒有問題
select * from v$managed_standby
--2.檢查日誌傳輸是否開啟,若沒有開啟,修改
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = ENABLE scope = both;
--3.檢視卡在哪個日誌上了
select * from v$logstdby_process;
--4.從主庫上往備庫上推日誌
scp /u02/archive/billdb/Arc_3_29152_592235202.arc oracle@192.168.1.102:/u02/stdlog/
--5.註冊日誌檔案
alter database register or replace logical logfile '/u02/stdlog/vposdb/Arc_1_76561_676043623.arc';
--ORA-01291: missing logfile
--1.在主庫上重新生成一份資料字典
EXECUTE DBMS_LOGSTDBY.BUILD;
--2.切換日誌
alter system switch logfile;
--一切正常但延時嚴重
select a.sid, a.status, c.sql_text
from v$logstdby_process a, v$session b, v$sqlarea c
where a.sid = b.sid
and b.sql_id = c.sql_id;
--在DATAGUARD中手工處理日誌GAP的方法
1.在備庫檢查是否有日誌缺失
select * from V$ARCHIVE_GAP;
2.在主庫中查詢缺失的日誌的所在路徑和名稱
SELECT NAME FROM V$ARCHIVED_LOG WHERE THREAD#=1 AND DEST_ID=1 AND SEQUENCE# BETWEEN 99 AND 109;
3.把日誌複製到備庫上
4.在備庫上手工註冊上一步中從主庫複製來的日誌
alter database register or replace logical logfile '/u02/stdlog/Arc_1_31085_592235202.arc';
5.稍等片刻,觀察備庫的alert日誌資訊
6.檢查備庫是否還有日誌GAP,如果有記錄重複以上步驟,直到沒有結果顯示。
select * from V$ARCHIVE_GAP
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25462274/viewspace-2124959/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- QTP - 指令碼相關收集QT指令碼
- sql_trace相關指令碼SQL指令碼
- Oracle 效能相關常用指令碼(SQL)Oracle指令碼SQL
- 刪除 AP 發票相關指令碼指令碼
- 【DG】搭建(二)及相關測試
- [20170324]dg相關程式.txt
- 解剖Nginx·自動指令碼篇(7)型別相關指令碼系列Nginx指令碼型別
- 記錄shell指令碼程式設計相關指令碼程式設計
- 關於Solidity指令碼相關環境配置及指令碼資料的查詢Solid指令碼
- vim的相關指令
- Monkey相關指令
- vue指令相關的Vue
- 解剖Nginx·自動指令碼篇(5)編譯器相關主指令碼Nginx指令碼編譯
- 解剖Nginx·自動指令碼篇(3)原始碼相關變數指令碼 auto/sourcesNginx指令碼原始碼變數
- 精讀Nginx·自動指令碼篇(5)編譯器相關主指令碼Nginx指令碼編譯
- DG學習筆記(12)_相關檢視筆記
- 精讀 Nginx 原始碼·自動指令碼篇(3)原始碼相關變數指令碼 auto/sourcesNginx原始碼指令碼變數
- ORACLE及OS相關監控指令碼 For AIX6.1Oracle指令碼AI
- Linux相關的操作指令Linux
- IE 頁面不正常顯示 錯誤指令碼不報錯 指令碼除錯相關指令碼除錯
- AllowOverride以及Options相關指令(轉)IDE
- CE認證相關指令(轉載)
- 【效能調整】等待事件(七) io相關等待查詢指令碼事件指令碼
- Oracle DG standby刪除歸檔的判斷指令碼Oracle指令碼
- 檢視Oracle基礎配置資訊和效能相關資訊的指令碼Oracle指令碼
- Linux執行python相關指令LinuxPython
- 與oracle10g data guard(dg)緊密關聯的相關檢視Oracle
- Oracle 密碼相關Oracle密碼
- 您好!關於指令碼指令碼
- 檢查REDO日誌相關資訊並生成HTML檔案的指令碼HTML指令碼
- 計算機指令集的相關概念計算機
- 在ubuntu中查詢與某指令碼或某裝置相關的程序Ubuntu指令碼
- Flex相關注冊碼Flex
- 關於群起kafka指令碼Kafka指令碼
- oracle報表相關指令碼Oracle指令碼
- linux及HP-UX 開機帶起指令碼的相關配置檔案Linux指令碼
- 原碼反碼補碼的相關理解
- Android密碼學相關Android密碼學