在OGG中遇到的一些故障問題,以下是我對日常OGG運維的故障一些梳理。OGG在運行中,除了mgr還有三個主要的進(jìn)程,也就是我們??吹脑搭^抽取進(jìn)程Extract、源頭傳輸進(jìn)程Dump、目的端應(yīng)用進(jìn)程Replicat(常叫復(fù)制進(jìn)程)。而我們一般出問題的大多是復(fù)制進(jìn)程,由于各種各樣的原因?qū)е聫?fù)制進(jìn)程延遲與終止。
首先對三個進(jìn)程簡單介紹
1、Extract進(jìn)程(捕獲)
extract運行在數(shù)據(jù)庫源端,負(fù)責(zé)從源端數(shù)據(jù)表或者日志中捕獲數(shù)據(jù)。初始數(shù)據(jù)裝載階段;Extract進(jìn)程直接從源端的數(shù)據(jù)表中抽取數(shù)據(jù)。同步變化捕獲階段;初始數(shù)據(jù)同步以后,Extract進(jìn)程負(fù)責(zé)捕獲源段數(shù)據(jù)的變化(DML/DDL)。
Extract進(jìn)程利用其內(nèi)在的checkpoint機制,周期性的檢查并記錄其讀寫的位置,通常是寫入到一個本地的trail文件。這種機制是為了保證如果Extract進(jìn)程終止或者操作體統(tǒng)宕機,我們重新啟動Extract進(jìn)程后,GoldenGate能夠恢復(fù)到以前的狀態(tài),從上一個斷點處繼續(xù)往下運行,而不會有任何的數(shù)據(jù)損失。
2、Pump進(jìn)程(投遞)
Pump進(jìn)程運行在數(shù)據(jù)庫源端,作用就是:
a、源端使用了本地trail文件,Pump進(jìn)程把trail以數(shù)據(jù)塊的形式通過tcp/ip協(xié)議發(fā)送到目標(biāo)端,這也是通常推薦的方式。
b、如果不使用trail文件,那么就是Extract進(jìn)程在抽取完數(shù)據(jù)以后,直接投遞到目標(biāo)端。
3、Replicat進(jìn)程(交付)
Replicat進(jìn)程,通常我們也把它叫做復(fù)制進(jìn)程。運行在目標(biāo)端,負(fù)責(zé)讀取目標(biāo)端trail文件中的內(nèi)容,并將其解析為DML或DDL語句,然后應(yīng)用到目標(biāo)數(shù)據(jù)庫中。
和Extract進(jìn)程一樣,Replicat也有其內(nèi)部的checkpoint機制,保證進(jìn)程重啟后可以從上次的記錄的位置開始恢復(fù)而無數(shù)據(jù)損失的風(fēng)險。
一般是源端表結(jié)構(gòu)增加列或減少列變化導(dǎo)致的ogg進(jìn)程異常
起因
OGG復(fù)制進(jìn)程abend
查詢經(jīng)過
查看進(jìn)程report
發(fā)現(xiàn)OGG-01169Encountered an update where all key columns for target tabletablename are not present.
解決過程
首先想到是檢查源端與目標(biāo)端的表結(jié)構(gòu),但是查看后發(fā)現(xiàn)表結(jié)構(gòu)是一樣的,再回看報錯信息,說有allkeycolumns,猜測是否出現(xiàn)索引造成的,那么再查看表上的索引,發(fā)現(xiàn)源端的表上有一個唯一索引,而目標(biāo)端沒有,那么我們先給目標(biāo)端加上同樣的唯一索引看下,重啟進(jìn)程并觀察,發(fā)現(xiàn)恢復(fù)正常。
ALTER schema.tableName ADD UNIQUE schema.indexNameON (&colname);
注意建索引加schema,避免建在sys下。
起因
OGG復(fù)制進(jìn)程異常abend
查詢經(jīng)過
Report查看詳細(xì)信息
由此檢查源端與目標(biāo)端的表結(jié)構(gòu)
進(jìn)庫查詢desc&tablename
源端
目標(biāo)端
發(fā)現(xiàn)約束有問題,目標(biāo)端的表字段AREA_ID是notnull,與源端不一致
解決辦法
給目標(biāo)端的表字段約束notnull去掉,允許null值,保持與源端表約束一致。
Altertable &table_name modify AREA_ID null;
進(jìn)入ogg
GGSCI> start &process
重啟進(jìn)程,并觀察,進(jìn)程運行正常
起因
OGG延遲告警
查詢經(jīng)過
首先查看進(jìn)程狀態(tài),發(fā)現(xiàn)OGG所有進(jìn)程都正常
再看進(jìn)程的詳細(xì)統(tǒng)計信息
statsextract XXX,total
發(fā)現(xiàn)大量delete操作
解決方法
有一個參數(shù)IGNOREDELETES
詢問業(yè)務(wù)人員是否可以忽略delete,征得同意以后,加入?yún)?shù)。
GGSCI> edit param process
加入?yún)?shù),或者直接進(jìn)入目錄vi編輯
追加參數(shù)
IGNOREDELETES
重啟進(jìn)程,觀察,很快恢復(fù)
備選方案
落后太多的情況,可以做OGG初始化
初始化時注意版本問題,12C到11G,需要在expdp指定版本version=11。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/130115.html
摘要:問題九庫控制文件擴展報錯庫的擴展報錯,用的是裸設(shè)備,和還是原來大小,主庫的沒有報錯,并且大小沒有變,求解釋。專家解答從報錯可以看出,控制文件從個塊擴展到個塊時報錯,而裸設(shè)備最大只支持個塊,無法擴展,可以嘗試將參數(shù)改小,避免控制文件報錯。 鏈接描述引言 近期我們在DBASK小程序新關(guān)聯(lián)了運維之美、高端存儲知識、一森咖記、運維咖啡吧等數(shù)據(jù)領(lǐng)域的公眾號,歡迎大家閱讀分享。 問答集萃 接下來,...
摘要:我們將使用純打造一些切換開關(guān)并使其擁有類似于的用戶體驗??偨Y(jié)這是一個關(guān)于一些很好的切換開關(guān)示例這種技術(shù)使得一切完全復(fù)合語義,不會增加任何瘋狂的標(biāo)記,并且用純就可以完成。獲取開關(guān)按鈕代碼可以 我們將使用純CSS打造一些切換開關(guān)并使其擁有類似于checkbox的用戶體驗。 很多時候我們都需要用戶通過勾選/取消checkbox來表明他們對一些問題的答案。我們設(shè)置了一個標(biāo)簽,一個checkbo...
摘要:我們將使用純打造一些切換開關(guān)并使其擁有類似于的用戶體驗??偨Y(jié)這是一個關(guān)于一些很好的切換開關(guān)示例這種技術(shù)使得一切完全復(fù)合語義,不會增加任何瘋狂的標(biāo)記,并且用純就可以完成。獲取開關(guān)按鈕代碼可以 我們將使用純CSS打造一些切換開關(guān)并使其擁有類似于checkbox的用戶體驗。 很多時候我們都需要用戶通過勾選/取消checkbox來表明他們對一些問題的答案。我們設(shè)置了一個標(biāo)簽,一個checkbo...
閱讀 1356·2023-01-11 13:20
閱讀 1707·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1906·2023-01-11 13:20
閱讀 4165·2023-01-11 13:20
閱讀 2757·2023-01-11 13:20
閱讀 1402·2023-01-11 13:20
閱讀 3671·2023-01-11 13:20