半自動化搭建Data Guard的想法和實踐(三)

jeanron100發表於2016-08-04
今天總算抽了些時間把半自動化的指令碼完成了大半,目前還缺少兩部分的指令碼,一部分是安裝前的檢查指令碼,可以做一個預檢查。雖然目前來看還不是必須,但是這些是標準和規範的地方,這些條件不滿足,失敗的概率會加大。另外一部分是安裝後的補充指令碼,其實安裝後還有很多需要注意的地方。
大體想了下,補充的指令碼包含下面的部分。
配置crontab,目前的常用job是定期刪除歸檔,定期檢查監聽的情況
配置iptables ,把主庫的防火牆資訊拷貝過來,或者作為靜態備份,需要是啟用
配置大頁,這個可以在優化的基礎上進行計算,在核心引數中修改。
禁用NUMA,這個是系統層面,雖然安裝不會受到影響,但是需要在grub中禁用,而且這個操作需要重啟伺服器,在最後確認無誤後操作。

指令碼的實現思路:
目前的設計思路是在中控端執行,從主庫抓取配置資訊,向備庫同步這些配置,生成便捷的搭建指令碼。目前的指令碼的核心檔案是一個配置檔案,命名為autodg.cnf
內容如下:
export db_name=statdb1
export pri_db_unique_name=statdb96
export pri_db_ip_addr=10.127.133.96
export std_db_unique_name=statdb3
export std_db_ip_addr=10.127.133.45

預期的目標是隻需要知道主備庫的IP即可,剩下的事情不用一一連線到資料庫端去檢查,我們需要明確搭建的資料庫uniqe_name
這個工作是由一個便捷的檢查指令碼來得到主庫的資訊,指令碼的執行情況如下,是否已有備庫,主庫的資訊,重要的引數等都一目瞭然。

基於這些資訊我們可以很順利的完成autodg.cnf的配置。備庫的資訊則根據自己的需要來配置即可。
接下來的指令碼就會自動讀取autodg.cnf中的配置資訊,從主庫抓取配置資訊。


主備庫的明細資訊,延遲,SCN都會抓取到,其實後臺會進行更多的配置,對listener.ora,tnsnames.ora,hosts,pfile檔案進行修改。
最後開通主備庫的防火牆互通訪問,當然這個還需要一個指令碼open_firewall.sh,主要就是iptables命令在主備庫檢查開通埠訪問許可權。
接著半自動化的指令碼來了。init_pri.sh
這個指令碼會生成提示,我們需要在主庫端做下面兩個簡單的操作,需要手動完成,全是基於安全考慮。

目前最後一個指令碼是init_std.sh,會初始化備庫的環境。
會把配置資訊拷貝到備庫,在啟動資料庫之前需要檢查備庫中的一些路徑是否存在

這幾個指令碼,可以一下子都執行完,或者一個一個來執行,如果不跳出規範和標準,那麼應該能夠很快在5分鐘內配置完成。
後期繼續改進,我想想怎麼能夠更加便捷,哪些工作還可以補充進去。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2123002/,如需轉載,請註明出處,否則將追究法律責任。

相關文章