制作Oracle的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下載:

docker pull registry.cn-hangzhou.aliyuncs.com/woqutech/oracle-database-11.2.0.4.0-ee

Image使用舉例:

創建數據庫存儲路徑: mkdir -p /data/oracledb 啟動Oracle數據庫容器: docker run -d --name oracledb \ -p 1521:1521 \ -e ORACLE_SID=oracledb \ -e ORACLE_PWD=oracle \ -e ORACLE_CHARACTERSET=ZHS16GBK \ -e SGA_SIZE=8G \ -e PGA_SIZE=8G \ -e DB_ROLE=primary \ -e ENABLE_ARCH=true \ -v /data/oracledb:/opt/oracle/oradata \ registry.cn-hangzhou.aliyuncs.com/woqutech/oracle-database-11.2.0.4.0-ee 接下來就可以通過1521端口訪問數據庫啦!Enjoy it

PS:目前提供的社區版Image只能設置DB_ROLE為primary,standby尚不提供支持。該鏡像的Dockerfile我們放在Github上,請持續關注本項目。

項目鏈接: 
https://github.com/woqutech/docker-images/tree/master/Oracle/11.2.0.4


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM