在MAC上運(yùn)行Docker和Oracle 12.2數(shù)據(jù)庫(kù)環(huán)境
雖然Docker是那么的流行和熱鬧,可是沒想到我和Docker的***次接觸是因?yàn)镺racle。Oracle在上個(gè)月宣布支持Docker的容器部署,再加上Oracle Database 12.2的發(fā)布,再到支持MAC上的部署,大家可以想一想這足以激起我動(dòng)手的熱情,上一次在MAC上能夠直接部署的版本還是Oracle 10g,現(xiàn)在我們有了一個(gè)新的選擇。
基于Docker的部署簡(jiǎn)單到只需要一個(gè)命令,回顧一下我們?cè)贠racle 8的年代,在Linux上部署Oracle,你想到什么?無數(shù)的編譯錯(cuò)誤,深深淺淺的坑坑洼洼,說多了都是淚。
看看Oracle在Docker上的部署吧!需要準(zhǔn)備什么呢?
- Docker 環(huán)境下載;
- 從Github上下載 Oracle docker-images ;
- 從OTN下載 Oracle for Linux 的安裝包;
生產(chǎn)資料具備了,還要做一點(diǎn)點(diǎn)粗加工:
- 在MAC上安裝并啟動(dòng)Docker環(huán)境;
- 解壓docker-images-master.zip安裝包;
- 將Oracle安裝包整合到Docker images Master中;
我在Docker市場(chǎng)下載的穩(wěn)定版本,115.6M,地址是:
https://store.docker.com/editions/community/docker-ce-desktop-mac
雖然是***次,但是看到這條小鯨魚還是會(huì)很親切:
第二和第三步,我建立了一個(gè)獨(dú)立的Docker目錄存儲(chǔ)這些文件。
Github 上的文件下載地址是:
https://github.com/oracle/docker-images
然后兩個(gè)命令:
- unzip docker-images-master.zip
- mv linuxx64_12201_database.zip docker-images-master/OracleDatabase/dockerfiles/12.2.0.1/
接下來就可以擼起袖子加油干了,當(dāng)然也可以不擼袖子,因?yàn)闀?huì)非常順利和流暢,我的MAC版本是:macOS sierra 10.12.4 。
這個(gè)環(huán)節(jié)就只需要一條命令,需要執(zhí)行 docker-images-master/OracleDatabase/dockerfiles 下的build腳本:
- ./buildDockerImage.sh -v 12.2.0.1 -e
在這個(gè)步驟中首先需要安裝 OEL的 Slim 版本:oraclelinux:7-slim 。需要從網(wǎng)上下載文件,所以安裝過程中必須保持網(wǎng)絡(luò)的連通。整個(gè)過程有16個(gè)步驟,全部是自動(dòng)執(zhí)行的。
成功的日志類似如下的:
- Oracle Database Docker Image for 'ee' version 12.2.0.1 is ready to be extended:
- --> oracle/database:12.2.0.1-ee
- Build completed in 52755 seconds.
完成了安裝之后,你擁有了兩個(gè)鏡像,一個(gè)是OEL 7-slim 版本,大約114MB,一個(gè) oracle/database 大約14.8GB。
創(chuàng)建并啟動(dòng)數(shù)據(jù)庫(kù)只需要一個(gè)命令:
- docker run --name oracle -p 1521:1521 -p 5500:5500 -v /Users/eygle/oradata:/opt/oracle/oradata oracle/database:12.2.0.1-ee
這個(gè)命令有幾個(gè)主要參數(shù):
-p 指定端口映射,主機(jī)到Docker的端口對(duì)應(yīng);
-v 指定數(shù)據(jù)庫(kù)的對(duì)應(yīng)存儲(chǔ)路徑,我指定了一個(gè)Docker之外的本地存儲(chǔ),將數(shù)據(jù)庫(kù)獨(dú)立出來。
完成這個(gè)命令,會(huì)在本地完成數(shù)據(jù)庫(kù)的構(gòu)建并啟動(dòng)數(shù)據(jù)庫(kù),同時(shí)輸出告警日志的監(jiān)控。
當(dāng)然如果你不想剝離數(shù)據(jù)庫(kù)文件出來,也可以用類似以下命令來構(gòu)建數(shù)據(jù)庫(kù):
- docker run -p 1521:1521 --name eygle oracle/database:12.2.0.1-ee
由于數(shù)據(jù)庫(kù)缺省會(huì)指定用戶口令,所以我們可以通過如下命令來修改口令:
- docker exec oracle ./setPassword.sh youpassword
其他的必備命令是:
- docker start oracle
- docker stop oracle
- docker logs oracle
- docker ps
接下來就可以在 SQL Developer 里配置和連接這個(gè)數(shù)據(jù)庫(kù)了:
現(xiàn)在基于Docker來構(gòu)建一個(gè)測(cè)試環(huán)境,變得非常快速和簡(jiǎn)捷,大家簡(jiǎn)化了學(xué)習(xí)了了解Oracle入門的復(fù)雜度,非常值得嘗試。