Docker,讓資料庫部署完成在彈指一揮間
作者 郭旭瑞·沃趣科技產品專家
出品 沃趣科技
容器技術並非Docker的創新,容器技術所依賴的一些基礎技術,如namespace、cgroup、chroot等等,也都不是Docker的首創。
Docker之所以流行,很大程度上取決於它提出的鏡像(image)的概念。Docker通過其鏡像的概念,重新定義了雲時代的應用程序分發方式。
Docker讓軟體開發過程中的環境構建變得簡單,消除軟體測試過程中環境不一致導致的問題,又讓運維和部署變得輕鬆快速。
從Docker的logo就可以看出:容器就是集裝箱,我們的程序都被打包在集裝箱里;Docker就是搬運工,幫你把打包好的應用運輸到世界各地,隨處運行。
在《翻過那座山,就能看見海 | Kubernetes讓DBA更優雅地管理資料庫》一文中,我們探討過:資料庫的部署過程中,依賴包、內核參數、用戶與組、目錄等等一系列前置條件都需要DBA人工或腳本方式進行操作,以及後續的資料庫軟體安裝、資料庫創建等工作,造成了大量重複性無意義的時間、精力消耗。Docker的鏡像便是將這所有的一切配置進行打包,一個鏡像就是一個容易分發的即啟即用的應用,與資料庫結合後一個鏡像就是一個迅速部署、即啟即用的資料庫。
沃趣科技緊跟時代發展浪潮,將容器技術融入到資料庫全生命周期管理,打造容器化雲資料庫RDS產品,同時也積極回饋社區,貢獻我們在容器化資料庫建設中的諸多經驗。本文將公開我們製作的Oracle Database 11.2.0.4.0版本的Docker鏡像。
Oracle官方在Github上提供了一些Oracle Docker image,但並未提供11g R2版本。考慮到目前仍有大量用戶使用11g R2,所以,我們參考官方12.1版本image製作了11.2.0.4.0版本的image,並且在其基礎上做了進一步豐富和標準化,包括:
指定是否開啟歸檔
指定SGA及PGA大小(官方image指定的是固定的內存大小,如需修改,需要在資料庫創建之後手動調整,所以,在此我們做了相應的自動化)
指定資料庫角色,包括primary及standby(官方鏡像只能創建primary資料庫,我們同時實現了創建standby資料庫的邏輯,但該部分邏輯依賴沃趣科技QCFS雲存儲提供的快照功能,目前只能在QFusion 3.0 RDS資料庫雲平台中實現)
包含對主庫實例狀態、備庫實例狀態和MRP恢復狀態的健康檢查
ONLINE REDO LOG自動調整為1G大小避免日誌切換過於頻繁
設置用戶名密碼永不過期(雖不安全,但在絕大部分企業級用戶均採用此實踐)
關閉Concurrent Statistics Gathering功能
TEMP表空間設置為30G大小
SYSTEM表空間設置為1G大小
SYSAUX表空間設置為1G大小
UNDO表空間設置為10G大小
Image下載:
Image使用舉例:
PS:目前提供的社區版Image只能設置DB_ROLE為primary,standby尚不提供支持。該鏡像的Dockerfile我們放在Github上,請持續關注本項目。
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
TAG:數據浮雲 |