獨家:在MAC上運行Docker和Oracle 12.2數據庫環境
雖然Docker是那麼的流行和熱鬧,可是沒想到我和Docker的第一次接觸是因為Oracle。Oracle在上個月宣布支持Docker的容器部署,再加上Oracle Database 12.2的發布,再到支持MAC上的部署,大家可以想一想這足以激起我動手的熱情,上一次在MAC上能夠直接部署的版本還是Oracle 10g,現在我們有了一個新的選擇。
基於Docker的部署簡單到隻需要一個命令,回顧一下我們在Oracle 8的年代,在Linux上部署Oracle,你想到什麼?無數的編譯錯誤,深深淺淺的坑坑窪窪,說多了都是淚。
看看Oracle在Docker上的部署吧!需要準備什麼呢?
Docker 環境下載;
從Github上下載 Oracle docker-images ;
從OTN下載 Oracle for Linux 的安裝包;
生產資料具備了,還要做一點點粗加工:
在MAC上安裝並啟動Docker環境;
解壓docker-images-master.zip安裝包;
將Oracle安裝包整合到Docker images Master中;
我在Docker市場下載的穩定版本,115.6M,地址是:
https://store.docker.com/editions/community/docker-ce-desktop-mac
雖然是第一次,但是看到這條小鯨魚還是會很親切:
第二和第三步,我建立了一個獨立的Docker目錄存儲這些文件。
Github 上的文件下載地址是:
https://github.com/oracle/docker-images
然後兩個命令:
unzip docker-images-master.zip
mv linuxx64_12201_database.zip docker-images-master/OracleDatabase/dockerfiles/12.2.0.1/
接下來就可以擼起袖子加油幹了,當然也可以不擼袖子,因為會非常順利和流暢,我的MAC版本是:macOS sierra 10.12.4 。
這個環節就隻需要一條命令,需要執行 docker-images-master/OracleDatabase/dockerfiles 下的build腳本:
./buildDockerImage.sh -v 12.2.0.1 -e
在這個步驟中首先需要安裝 OEL的 Slim 版本:oraclelinux:7-slim 。需要從網上下載文件,所以安裝過程中必須保持網絡的連通。整個過程有16個步驟,全部是自動執行的。
成功的日誌類似如下的:
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.
完成了安裝之後,你擁有了兩個鏡像,一個是OEL 7-slim 版本,大約114MB,一個 oracle/database 大約14.8GB。
創建並啟動數據庫隻需要一個命令:
docker run --name oracle -p 1521:1521 -p 5500:5500 -v /Users/eygle/oradata:/opt/oracle/oradata oracle/database:12.2.0.1-ee
這個命令有幾個主要參數:
-p 指定端口映射,主機到Docker的端口對應;
-v 指定數據庫的對應存儲路徑,我指定了一個Docker之外的本地存儲,將數據庫獨立出來。
完成這個命令,會在本地完成數據庫的構建並啟動數據庫,同時輸出告警日誌的監控。
當然如果你不想剝離數據庫文件出來,也可以用類似以下命令來構建數據庫:
docker run -p 1521:1521 --name eygle oracle/database:12.2.0.1-ee
由於數據庫缺省會指定用戶口令,所以我們可以通過如下命令來修改口令:
docker exec oracle ./setPassword.sh youpassword
其他的必備命令是:
docker start oracle
docker stop oracle
docker logs oracle
docker ps
接下來就可以在 SQL Developer 裏配置和連接這個數據庫了:
現在基於Docker來構建一個測試環境,變得非常快速和簡捷,大家簡化了學習了了解Oracle入門的複雜度,非常值得嚐試。
大家快來一起探索一下Oracle的變化吧。更詳細的信息請參考原文鏈接。
文章轉自數據和雲公眾號,原文鏈接
最後更新:2017-07-18 10:02:51