在很多時候,我們需要在本地安裝Oracle資料庫,但是整個安裝的過程時間非常長而且安裝檔案大,那麼有不有更好的辦法來安裝Oracle資料庫既能減少安裝的時間而且還能夠快速進行部署呢?答案就是使用Docker來資料庫容器,那麼具體該怎麼進行呢?本文介紹如何在Win7和Win10上面進行Oracle映象的安裝以及如何使用DataGrip建立連線。
一 Windows7上面的安裝
首先就是在Window7上面安裝Docker Toolbox,具體安裝的過程,請參考 這篇文件。安裝完成後在桌面上一般會有一個Oracle VM VirtualBox和一個Docker Quickstart Terminal,一般在進行操作之前右鍵單擊Docker Quickstart Terminal,然後進入啟動介面,如果出現下面的介面就表示安裝已經成功了。
圖一 啟動Docker Quickstart Terminal
啟動完畢後我們就可以進行映象的拉取和執行了,這裡我們使用 docker search oracle 來搜尋oralce映象。
A 搜尋映象
圖二 搜尋Oracle映象
B 建立volume以持久化資料
在命令列輸入 docker volume create exeed-db命令建立名稱為exeed-db的volume
C 建立並執行Oracle資料庫
在命令列中輸入:docker run -d --name exeed-db -p 1521:1521 -p 8080:8080 --shm-size=1g --restart=always -e ORACLE_PWD=XXX -v exeed-db:/u01/app/oracle/oradata zerda/oracle-database:11.2.0.2-xe
這裡有幾點需要注意的是:
1 --name exeed-db指定建立的volume .
2 --shm-size=1g:設定/dev/shm的大小。格式為:。number必須大於0。unit可選,可以是b,k,m或g。如果不指定unit,系統預設使用位元組。如果此引數不指定,預設使用64m。
3 --restart=always --restart 標誌會檢查容器的退出程式碼,並據此來決定是否要重啟容器,預設是不會重啟。--restart的引數說明 always:無論容器的退出程式碼是什麼,Docker都會自動重啟該容器。on-failure:只有當容器的退出程式碼為非0值的時候才會自動重啟。另外,該引數還接受一個可選的重啟次數引數,`--restart=on-fialure:5`表示當容器退出程式碼為非0時,Docker會嘗試自動重啟該容器,最多5次。(注意:這裡如果不限定該重啟策略,那麼每一次重啟電腦後都要手動透過docker start命令來重啟當前容器)
4 ORACLE_PWD用於設定當前Oracle資料庫密碼。
5 -v exeed-db:/u01/app/oracle/oradata zerda/oracle-database:11.2.0.2-xe用於指定使用的Oracle映象如果本地找不到的話那麼就會去聯網進行下載。
當上面的命令執行完畢以後,如果出現下面的提示,則表示Oracle已經在當前機器上安裝完畢並且沒有錯誤。
SQL> Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
#########################
DATABASE IS READY TO USE!
#########################
D 檢視安裝映象的狀態
圖三 檢視已經正確執行的映象
E 使用DataGrip來連線建立的Oracle資料庫
圖四 DataGrip連線Oracle資料庫
這裡也許對Host有疑問,不應該是localhost,這裡其實我們安裝的oracle是跑在虛擬機器上面的,這裡的地址指的是虛擬機器的地址,我們可以在命令列中輸入 docker-machine ls來檢視當前的虛擬機器的地址。
圖五 獲取當前的Docker Machine 資訊
這裡我們使用sys as sysdba來作為登入使用者,這裡的密碼就是執行docker run 執行時建立的密碼,然後點選測試就可以連線自己的oracle資料庫了。
F 後續操作
使用sys as sysdba登入後建立新的使用者:AfterSales,這裡記住要建立預設的表空間,接著我們就可以給剛才建立的使用者AfterSales授予許可權了,這樣下次我們就可以透過新建的賬戶來進行資料庫操作了。
-- Oracle 管理使用者
-- 建立使用者
CREATE USER AfterSales IDENTIFIED BY XXX DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA UNLIMITED ON users;
-- 賦予許可權
GRANT CONNECT, CREATE TABLE, CREATE TRIGGER, CREATE PROCEDURE, CREATE VIEW, CREATE SEQUENCE, DEBUG CONNECT SESSION TO AfterSales ;
-- 刪除使用者
DROP USER AfterSales CASCADE;
二 Windows10上面的安裝
Windows10上面的安裝和Windows7上面有些差別,具體使用的技術也是完全不同的。
A 啟用Hyper-V
開啟控制皮膚 - 程式和功能 - 啟用或關閉Windows功能,勾選Hyper-V,然後點選確定即可,如圖:
圖六 開啟Hyper-V
B 安裝Docker
Docker下載地址請點選 , 點選如圖處即可下載安裝包,然後進行安裝。
C 重啟機器
在重啟機器後我們可以在工作列中發現已經執行的Docker,這點和Windows7上面不同,Windows7需要每次重啟啟動Docker Quickstart Terminal,Windows10則不需要。
圖七 Windows10中Docker工作列圖示
另外後續的過程和Windows7中完全一樣,只不過Windows10中Host不再是虛擬機器的地址了,而是直接使用localhost便可以進行登入了。
最後附上Oracle官方給出的在Docker上面安裝Oracle的文件,請點選 這裡。