1、AWT緩存組
AWT緩存組是TimesTen的異步寫緩存,數(shù)據(jù)只允許在TimesTen中修改,然后同步到Oracle。當(dāng)然,TimesTen中的數(shù)據(jù)最初是從Oracle加載而來。對于存儲來說,cache分為write-through(直接寫)和write-back(回寫),而TimesTen的AWT對應(yīng)的就是存儲的write-back。由于有雙向的數(shù)據(jù)流動,對于AWT,除了只讀緩存組所需的cacheagent外,還需要一個replicationagent,負責(zé)數(shù)據(jù)從TimesTen到Oracle的同步。使用AWT緩存的好處除了性能外,還可以保證當(dāng)后端Oracle失效時,TimesTen仍可以接收和修改數(shù)據(jù),保證數(shù)據(jù)不丟失,待Oracle正常后,數(shù)據(jù)自動同步到后端。
AWT緩存組可以保證:
1.不會因為Oracle失效而丟數(shù)據(jù),且可以通過復(fù)制代理replicationagent自動恢復(fù)。
2.不會因復(fù)制代理replicationagent失效而丟數(shù)據(jù),自動恢復(fù)。
3.保證數(shù)據(jù)的一致性。
AWT緩存組數(shù)據(jù)流向圖
2、ClassicReplication(傳統(tǒng)復(fù)制)
當(dāng)前應(yīng)用的TimesTen內(nèi)存庫的復(fù)制方式為ClassicReplication。Replication就是在多個數(shù)據(jù)庫中存在多份數(shù)據(jù)拷貝,對性能影響最小的同時保證數(shù)據(jù)高可用,除了數(shù)據(jù)恢復(fù)外,還可以均衡工作負載,以最大化性能和實現(xiàn)滾動升級和維護。它的特點是比較靈活,支持豐富的復(fù)制拓撲形式,可以利用雙活復(fù)制實現(xiàn)業(yè)務(wù)系統(tǒng)的橫向擴展,利用一對多復(fù)制實現(xiàn)數(shù)據(jù)分發(fā)和讀寫分離等。
對TimesTen的AWT核心緩存組的誤操作進行恢復(fù)
2.1故障現(xiàn)象
(1)運維人員和應(yīng)用人員收到告警通知,包括日志告警、服務(wù)告警、內(nèi)存使用率告警
(2)用戶查余額異常,日志積壓嚴重且長時間刷不掉
2.2故障分析
(1)后因客戶通報,操作人員在AWT緩存組上進行了delete全表刪除誤操作,該表接近1000萬的數(shù)據(jù)量。由于是AWT緩存組,刪除操作會同步到物理庫,直接導(dǎo)致嚴重的數(shù)據(jù)丟失。
(2)kill掉delete進程后,日志積壓的問題仍未緩解
(3)急停replicationagent,切斷AWT緩存組到Oracle的數(shù)據(jù)同步
(4)經(jīng)各方討論,原因應(yīng)該是delete操作已經(jīng)寫入了TimesTen的日志記錄,timesten是通過日志的方式將數(shù)據(jù)同步到Oracle,日志是自動排序的且是按順序進行同步處理的,因replicationagent已停,日志就不能自動同步。因此陷入死循環(huán):若停止replicationagent,日志會積壓,數(shù)據(jù)不能同步;若開啟replicationagent,delete操作會同步到oracle造成數(shù)據(jù)丟失。
2.3故障處理
第一階段:主庫恢復(fù)
1、備份物理庫中的相關(guān)表數(shù)據(jù),同時備份TT中異常緩存組的數(shù)據(jù)(TT中備份語句如下)
如:ttbulkcp-o -s "|" "DSN=ABM_BAL_WH"ABM1_BAL_WH.ACCT_BALANCE_T ACCT_BALANCE_T.txt
2、停相關(guān)應(yīng)用或應(yīng)用切離線
3、刪除TT庫中異常緩存組的復(fù)制關(guān)系
如:ALTERREPLICATION ABM_BAL_wh.biwholestore ALTER element abm1_abm2 EXCLUDEcache group ABM1_BAL1.WH_ACCT_BALANCE_C ALTER ELEMENT abm2_abm1EXCLUDE cache group ABM1_BAL1.WH_ACCT_BALANCE_C;
4、刪除異常緩存組
如:dropcache group ABM1_BAL1.WH_ACCT_BALANCE_C;
5、由于物理庫中對應(yīng)表的object_id已經(jīng)記錄在Timesten的日志文件中,重建緩存組不會改變object_id,delete操作仍會通過日志文件同步到oracle,所以在重建緩存組之前需要刷新物理庫中對應(yīng)表的object_id(已踩坑,這點很關(guān)鍵)
6、啟動replicationagent
如:ttadmin-repstart ABM_BAL_WH
7、重建AWT緩存組
createasynchronous writethrough cache group ABM1_BAL1.WH_ACCT_BALANCE_C
fromABM1_BAL_WH.ACCT_BALANCE_T ……
8、從物理庫中重新載入數(shù)據(jù)到TT
如:loadcache group ABM1_BAL1.WH_ACCT_BALANCE_C_NEW commit every 2000 rowsparallel 8;
9、將新建的緩存組加入到復(fù)制關(guān)系中(加入前需停止復(fù)制代理,加入后需啟動復(fù)制代理)
如:callttrepstop;
ALTERREPLICATION ABM_BAL_WH.BIWHOLESTORE ALTER element abm1_abm2 includecache group WH_ACCT_BALANCE_C_NEW ALTER ELEMENT abm2_abm1 includecache group WH_ACCT_BALANCE_C_NEW;
callttrepstart;
10、驗證TT庫是否正常,并檢查TT日志是否正常
如:callttbookmark;
callttlogholds;
11、重啟相關(guān)應(yīng)用并驗證是否正常
第二階段:重建備庫
因主備TT庫已存在數(shù)據(jù)差異,備庫數(shù)據(jù)已無用,應(yīng)重建備庫
1、停應(yīng)用,不停TT監(jiān)聽,可能存在其他TT庫也在用同一個監(jiān)聽
2、注釋crontab,避免重建過程中出現(xiàn)異常報錯
如:crontab-e
3、停復(fù)制代理和緩存代理
如:ttadmin-repstop ABM_BAL_WH
ttadmin-cachestop ABM_BAL_WH
5、從內(nèi)存中卸載datastore
如:ttadmin-ramunload ABM_BAL_WH
6、刪除datastore
如:ttdestroy-force ABM_BAL_WH
7、重建備庫(應(yīng)確保主庫復(fù)制代理已開啟)
如:nohupttrepadmin -duplicate -from ABM_BAL_WH -host bossabm2 -UID abm1_bal1-PWD oInc5d46 -setMasterRepStart -ramLoad -compression 0 -verbosity 2-keepCG -cacheUid abm1_bal1 -cachePwd oInc5d46 -localhost bossabm1-connStr "dsn=ABM_BAL_WH" &
8、修改內(nèi)存策略為manual
如:ttadmin-query ABM_BAL_WH
ttadmin-rampolicy manual ABM_BAL_WH
9、啟動復(fù)制代理和緩存代理
如:ttadmin-repstart ABM_BAL_WH
ttadmin-cachestart ABM_BAL_WH
10、檢查主備庫是否正常,并檢查TT日志是否正常
如:callttbookmark;
callttlogholds;
11、檢查應(yīng)用是否正常
1、需對在TT庫上的操作進行評審把控,特別是delete、drop、load、unload、refresh等操作應(yīng)提前準備腳本待評審?fù)ㄟ^后再操作
2、研究針對在TT庫中操作語句的監(jiān)控
3、針對核心表縮短監(jiān)控的刷新時間間隔,有10分鐘縮短至5分鐘
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/130137.html
摘要:優(yōu)雅的服務(wù)降級微服務(wù)架構(gòu)最大的優(yōu)點之一就是當(dāng)組件出現(xiàn)故障時,能隔離這些故障并且能做到優(yōu)雅地服務(wù)降級。 本文首先介紹微服務(wù)架構(gòu)存在的風(fēng)險,然后針對如何避免微服務(wù)架構(gòu)的故障,提出了多種有效的微服務(wù)架構(gòu)中的方法和技術(shù),其中例如服務(wù)降級、變更管理、健康檢查和修復(fù)、斷路器、限流器等。 目錄 1、微服務(wù)架構(gòu)的風(fēng)險 2、優(yōu)雅的服務(wù)降級 3、變更管理 4、健康檢查和負載均衡 5、自我修復(fù) 6、故障轉(zhuǎn)移...
摘要:優(yōu)雅的服務(wù)降級微服務(wù)架構(gòu)最大的優(yōu)點之一就是當(dāng)組件出現(xiàn)故障時,能隔離這些故障并且能做到優(yōu)雅地服務(wù)降級。 本文首先介紹微服務(wù)架構(gòu)存在的風(fēng)險,然后針對如何避免微服務(wù)架構(gòu)的故障,提出了多種有效的微服務(wù)架構(gòu)中的方法和技術(shù),其中例如服務(wù)降級、變更管理、健康檢查和修復(fù)、斷路器、限流器等。 目錄 1、微服務(wù)架構(gòu)的風(fēng)險 2、優(yōu)雅的服務(wù)降級 3、變更管理 4、健康檢查和負載均衡 5、自我修復(fù) 6、故障轉(zhuǎn)移...
摘要:并根據(jù)調(diào)用方指定的負載均衡策略將被調(diào)節(jié)點信息返給調(diào)用方。并且被調(diào)方信息緩存負載均衡以及失效節(jié)點剔除都在中完成。 作者: 鐘科 showImg(https://segmentfault.com/img/remote/1460000014436075); 一.TSeer簡介 TSeer是一套服務(wù)注冊發(fā)現(xiàn)容錯的方案,是對Tars名字服務(wù)功能的輕量化。在騰訊瀏覽器、應(yīng)用寶、管家、手機書城、騰訊...
摘要:最近參加了一次架構(gòu)師的面試,吐槽一下整個面試時間相當(dāng)?shù)拈L,幾乎經(jīng)歷了半年左右,但是我也是抱著學(xué)習(xí)偉大的云產(chǎn)品的態(tài)度所以在整個過程中學(xué)到不少的云產(chǎn)品的功能設(shè)計等知識,所以說還是相當(dāng)有益處的。 最近參加了一次AWS 架構(gòu)師的面試,吐槽一下整個面試時間相當(dāng)?shù)拈L,幾乎經(jīng)歷了半年左右,但是我也是抱著學(xué)習(xí)偉大的AWS云產(chǎn)品的態(tài)度所以在整個過程中學(xué)到不少的云產(chǎn)品的功能、設(shè)計等知識,所以說還是相當(dāng)有益...
閱讀 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