1、下載 oracle image
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g |
2、安裝 oracle (這里沒有配置自動啟動容器 和 文件映射)
docker run -d –p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g |
3、啟動容器
docker start oracle11g |
4、配置 oracle
docker exec -it oracle11g bash |
5、切換oracle數據庫的root用戶下,密碼helowin
su root |
6、修改profile的配置文件,打開profile文件,在末尾添加配置。
vi /etc/profile export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2 export ORACLE_SID=helowin export PATH=$ORACLE_HOME/bin:$PATH |
7、刷新文件
source /etc/profile |
8、創建軟連接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin |
9、切換oracle環境
su - oracle |
10、登錄sqlplus,修改sys、system用戶密碼,創建用戶
//登錄 sqlplus /nolog
//連接 conn /as sysdba
//修改密碼 alter user system identified by system; alter user sys identified by sys;
//創建用戶 create user dev identified by dev; //並給用戶賦予權限 grant connect,resource,dba to dev; |
11、使用navcat連接oracle , 注意 服務名/SID 選項,username && password 都是 dev
Ps:
可以簡單的這樣理解:一個公司比喻成一台服務器,數據庫是這個公司中的一個部門。
1.SID:一個數據庫可以有多個實例(如RAC),SID是用來標識這個數據庫內部每個實例的名字,
就好像一個部門里,每個人都有一個自己的名字。
2.SERVICE_NAME:是這個數據庫對外宣稱的名字,外面的人要想連接我這個數據庫,
你就在客戶端的連接串里寫上service_name。它就像一個部門的名字,這個部門的名稱在看門大爺(listener)那里有登記,
看門大爺一看你是要找SERVICE_NAME這個部門,就告訴你我們公司確實有這個部門,於是你就找到了,連接就建立了。
一句話來說就是:SID是對內的,是實例級別的一個名字,用來內部之間稱呼用。SERVICE_name是對外的,
是數據庫級別的一個名字,用來告訴外面的人,我數據庫叫"SERVICE_NAME"。
你可以通過service_name參數指定這個名字是什么,可以有多個名字,名字隨便起,叫狗蛋,翠花都沒關系。
如果你不指定,默認的是Db_name. Db_domain,也就是global_name。
數據庫里,還有ORACLE_SID,是告訴OS系統,我這個實例叫做什么。