簡介
oracle數據庫是甲骨文公司旗下的一款關系型數據庫產品,提供完整的數據管理功能,相較於mysql、redis等輕量級數據庫,oracle數據庫顯得有點笨重,但因其數據安全性強、穩定性強等優點,仍被很多企業公司所使用。這里是通過docker容器技術來安裝oracle,並使用navicat測試連接的詳細教程。
1、拉取 docker 鏡像:
2、查看 docker 鏡像:
命令:docker images
然后運行鏡像:docker run -d -p 1521:1521 --name oracle registry.aliyuncs.com/helowin/oracle_11g
3、查看 docker 鏡像:
4、配置oracle:
第一步:進入容器
首先需要進入到oracle容器中,使用命令:docker exec -it oracle bash
第二步:修改環境變量
修改環境變量,切換到root:su root,密碼是helowin,然后編輯文件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
注意:按i進入編輯模式,輸入上述命令后,按ESC鍵退出編輯模式,再輸入:wq保存退出
第三步:使修改生效
要記住export ORACLE_SID=helowin,helowin是naivcat登錄的重要選項,
加載環境變量
source /home/oracle/.bash_profile
最后使用指令source /etc/profile使環境變量立即生效
5、配置oracle system用戶的賬號和密碼:
使用sysdba 連接oracle
7、 配置oracle網絡,實現遠程訪問連接
修改oracle配置,主要修改listener.ora和tnsnames.ora兩個文件,首先我們需要進到這兩個文件目錄cd /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin,如果這個目錄不對,我們可以通過這樣查找find / | grep /network/admin,這樣會返回所有匹配的目錄路徑,然后再選出我們的文件目錄
- 使用
vi listener.ora命令修改listener.ora,內容如下:
# listener.ora Network Configuration File: /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) # localhost:1521
)
)
ADR_BASE_LISTENER = /home/oracle/app/oracle

- 使用
vi tnsnames.ora命令修改tnsnames.ora,內容如下:
# tnsnames.ora Network Configuration File: /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_HELOWIN =
(ADDRESS = (PROTOCOL = TCP)(HOST = loaclhost)(PORT = 1521))
HELOWIN =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = helowin)
)
)

這里需要注意的是,HOST改為localhost,PORT改為1521,SERVICE_NAME設置為helowin,這個與前面2.2 節配置oracle數據庫設置的export ORACLE_SID=helowin 相同。
當然也可以在oracle用戶下通過命令lsnrctl status來查看服務是否被偵聽,如果報錯:lsnrctl command not found,則需要先su 密碼是helowin后,再切換到su - oracle 即可,
1. lsnrctl status 查看網絡狀態
2. lsnrctl reload 重啟網絡
3. lsnrctl start 開啟網絡
4. lsnrctl stop 停止網絡

這里的helowin和helowinXDB就是啟動中的服務名,需要放在tnsnames.ora中SERVICE_NAME ,這里為保持一致,選擇helowin
一切配置好之后,執行lsnrctl reload 重啟網絡
8、navicat測試連接
需要注意幾點:
主機ip地址是個人服務器的ip地址,端口是服務器的端口號,該端口號自動映射到oracle數據庫的1521端口(docker已經設好)
服務名是helowin而不是默認的ORAL
用戶名和密碼就是在oracle新建數據庫的賬號密碼,這里是system:system
9、使用navicat 遠程創建表空間和用戶
創建表空間
create tablespace ZJBPM
datafile '/home/oracle/app/oracle/oradata/helowin/ZJBPM.dbf'
size 400M autoextend on next 50M;
創建用戶
create user zjbpm identified by zjbpm default tablespace ZJBPM;
給用戶授權
grant dba to zjbpm;
10、使用navicat再次連接docker的oracle數據庫
1,啟動鏡像
docker run -d -p 1521:1521 --name oracle registry.aliyuncs.com/helowin/oracle_11g
2. 啟動容器
docker start oracle
運行進入容器docker exec -it oracle bash
加載環境變量
source /home/oracle/.bash_profile
使用sysdba 連接oracle
