您好,登錄后才能下訂單哦!
這套維護優化腳本,是我在業余時間編寫的,專門用于針對goldengate數據同步工具的腳本
主要原因還是本人有點懶不喜歡繁瑣的手動操作。所以借助shell腳本來減低自己的工作量
部分參考了一些網絡大牛的shell腳本設計
因為離職的緣故估計以后職業生涯中可能不會用到,因此將該腳本的設計方案以及具體內容共享出來
給各位網友學習和參考
因為能力問題部分功能可能寫的比較粗糙,希望各位別見怪。歡迎各位提出自己意見。謝謝各位
我會慢慢更新博文完善內容。
一、腳本設計目的
我在進行OGG的運維工作,會遇到以下問題
1> 加表步驟繁瑣
部分需求提供表存在表格式不規范,已經重復配置,導致加表時需花費時間進行重復配置確認
2> 因應用頻繁修改表結構導致目標端頻繁異常中斷,同時影響進程內其他表的正常同步
3> 因維護需要停止進程操作中,遇到長事務過多,導致比較繁瑣的跳過長事務操作。
4> 因數據庫異常導致的進程非正常延時,導致數據同步滯后,同時因監控未能及時通知,導致歸檔文件被備份清理導致的進程中斷
5> 因線路增加導致后期運維(注釋加表)操作日益繁瑣。同時OGG配置信息過于混亂,難以統一查詢
因此需要通過有效的輔助手段優化或改善目前運維中會遇到的問題
二、腳本設計思路
使用腳本直接整合重復表過濾以及附加日志添加操作。
1.優化大批量新增表需求的加表操作
直接操作prm文件
在編輯原文件時自動備份,確保因為誤操作導致異常后可以正常進行恢復
每一步操作都有日志記錄確保可追查操作人
配有參數條件的表需要特別手動調整
注:該腳本需要對所有進程進行格式注釋配置,方能生效
大概腳本功能ER圖(僅為需求設計,部分功能已經完成,部分尚未完成)
2.單表一鍵插入
這是根據多表批量插入腳本測試后單獨設計的,針對少量加表需求的腳本
可以按照指令 表名區域名 操作用戶名
的格式快速插入進程,并完成附加日志的增加操作
該腳本僅針對EXTRACT和PUMP進程,無法對REPLICAT進程進行操作。
大概腳本功能ER圖
3.跳過長事務
正常運維中,每次加表或者修改EXTRACT配置后,必須對每個進程進行啟停
以對配置生效。但是因為數據庫長事務導致進程必須進行長事務跳過操作,才能正常停止。
如果長事務過多,該操作較為繁瑣,需要通過showtrans獲取長事務信息,再比對,修改成指令后于ggsci內執行
因此專門設計該腳本用于自動化的對EXTRACT進程進行長事務跳過操作
4.批量注釋
用于應對業務取消相關表同步配置的需求
因為部分業務方需要對源端進行歷史數據清理,因為清理操作時大量的delete或者update操作會導致大批量的歸檔文件生成。可能導致數據鏈路的高延時。
因此需要對已配置的表信息進行注釋處理
因為數據清理量大時,表數量可能會達到40-50張
一張張的加注釋肯定會把自己累的發飆的,所以需求時設計了該個批量注釋腳本
5.批量取消注釋
該腳本功能與批量注釋腳本功能相反
主要用于應對應用數據清理后要求取消注釋的操作
6.信息上傳
這個腳本專門用于發送OGG生成的定義文件,日志,或者其他相關信息到指定的目標機器
可作為同步定義文件,日志分類整理或者整理配置信息的輔助功能腳本。可以在其他優化腳本中以指定格式被調用
因為是通過SSH協議發送,因此需要在防火墻安全策略上做出相應配置才能正常發送
同時可以通過計劃任務的方式定時執行
7.進程配置信息查詢
該腳本通過進程內人為填寫的進程INFO信息,獲取并整理為進程詳細配置信息表
包括源端,源端IP,發送目標端及IP,定義文件等等信息(可根據需求調整)
分為本機查詢和上傳用HTML2個版本
8.定義文件自動同步
因為源端與目標端存在表結構的異常,因此OGG通過定義文件來確保數據能夠正常同步
但是因為目前運維中,部分源端的開發人員經常不經預先提醒的頻繁修改表結構
或因為定義文件的損壞,配置錯誤,導致目標端replicate進程異常。
以致目標端trail文件積壓,導致磁盤空間告警等連鎖系統異常問題。
因此通過定義文件自動同步腳本,可以實時的更新定義文件,確保目標端replicate進程的正常運行
注:該腳本需要對定義文件生成prm文件進行格式注釋配置,方能生效(詳見后面的說明),同時需配置源端的計劃任務,目標端的自動重啟參數確保寫入進程因為數據格式異常中斷后,能夠重啟讀取新的定義文件
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。