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!
專案連結:https://github.com/woqutech/docker-images/tree/master/Oracle/11.2.0.4
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28218939/viewspace-2153323/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 莽撞闖蕩的6週年,也就是彈指一揮間
- 資料庫為何不建議部署在Docker容器內資料庫Docker
- 在玩客雲上透過docker部署zabbix(PostgreSQL資料庫)DockerSQL資料庫
- 《統一指揮2》:在歷史與遊戲之間找到平衡遊戲
- 為什麼不建議把資料庫部署在docker容器內?資料庫Docker
- 使用虛擬機器在CentOS上安裝部署openGauss資料庫指導虛擬機CentOS資料庫
- 面試官問:我把資料庫部署在Docker容器內,你覺得如何?面試資料庫Docker
- Docker一個漏洞讓駭客侵入刪除了資料庫 | NewsBlur 部落格Docker資料庫
- 在Docker中能使用資料庫嗎? | BaeldungDocker資料庫
- 在Linux系統上部署docker私有倉庫LinuxDocker
- 在雲上輕鬆部署達夢資料庫資料庫
- 基於Docker部署Oracle、MySQL等資料庫的資料檔案持久化DockerOracleMySql資料庫持久化
- 部署伺服器系列一:Linux環境結合Docker搭建資料庫服務伺服器LinuxDocker資料庫
- 自定義註解完成資料庫切庫資料庫
- 用 Docker swarm 快速部署分散式圖資料庫 Nebula Graph 叢集DockerSwarm分散式資料庫
- 2.5.9 在資料庫建立期間支援大檔案表空間資料庫
- 華納雲:怎麼在Docker中執行資料庫?Docker資料庫
- 一條SQL完成跨資料庫例項Join查詢SQL資料庫
- [譯] 在 Laravel 應用程式之間共享資料庫Laravel資料庫
- FastAPI(62)- FastAPI 部署在 DockerASTAPIDocker
- 在Docker容器和主機之間複製檔案/資料夾Docker
- 大資料合成作戰指揮平臺建設,情指勤一體化管控系統開發大資料
- 在Docker環境下的kafka部署之一:三種基本部署DockerKafka
- docker配置前端和資料庫Docker前端資料庫
- TiDB資料庫PD混合部署TiDB資料庫
- Hbase資料庫安裝部署資料庫
- MongoDB在不同主機間複製資料庫和集合MongoDB資料庫
- 一鍵完成php程式碼部署,你還在一點點的編輯?PHP
- 從零寫一個時間序列資料庫資料庫
- paddleocr 在docker環境下部署Docker
- 【MySQL】 在Docker中快速部署PXCMySqlDocker
- 讓領導懂資料庫是資料庫國產化替代成功的一半資料庫
- 專案完成小結 - Django-React-Docker-Swag部署配置DjangoReactDocker
- Azure DevOps (十) 通過流水線完成Docker映象的部署devDocker
- PostgreSQL在雲端:部署、管理和擴充套件你的資料庫SQL套件資料庫
- 使用虛擬機器在CentOS上安裝部署資料庫使用虛擬機CentOS資料庫
- 阿里資料庫的極致彈性之路阿里資料庫
- 初涉MySQL資料庫部署解析MySql資料庫