Docker安裝oracle數(shù)據(jù)庫最新版教程
1. 安裝 Docker 環(huán)境
首先,確保你的系統(tǒng)已經(jīng)安裝了 Docker 環(huán)境。你可以參考官方文檔來安裝 Docker:Docker安裝文檔。安裝完成后,確保 Docker 可以正常運行。
2. 拉取 Oracle 鏡像
使用 Docker 拉取 Oracle 11g 的鏡像。這里我們使用的是阿里云的 Oracle 11g 鏡像,你也可以根據(jù)需要選擇其他來源的鏡像。
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
此命令會從 Docker Hub 拉取一個 6GB 大小的 Oracle 11g 鏡像,可能需要一段時間,靜等片刻。
3. 查看鏡像
鏡像拉取完成后,可以使用以下命令查看已下載的 Docker 鏡像:
docker images
成功拉取后,您會看到類似如下的輸出,顯示鏡像的相關(guān)信息:
4. 創(chuàng)建容器
我們可以使用以下命令創(chuàng)建并運行一個 Docker 容器:
docker run -d --privileged -p 1521:1521 --name oracle11g --restart=always -v /home/oracle:/data/oracle registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
命令解析:
-d
:后臺運行容器。--privileged
: 允許掛載數(shù)據(jù)卷,默認是讀寫權(quán)限r(nóng)w-p 1521:1521
:將容器的 1521 端口映射到宿主機的 1521 端口。--name oracle11g
:為該容器命名為oracle11g
。oracle 數(shù)據(jù)文件掛載
:-v /data/dockerData/oracle:/data/oracle,將容器中的數(shù)據(jù)文件夾 /data/oracle 掛載到宿主機對應(yīng)的 /data/dockerData/oracl 文件夾中。registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
:使用之前拉取的鏡像。
你還可以編寫一個 Shell 腳本,便于下次快速啟動 Oracle 容器。腳本內(nèi)容如下:
# BEGIN ANSIBLE MANAGED BLOCK #!/bin/bash docker rm -f oracle11; docker run -it -d -p 1521:1521 -v /data/oracle:/data/oracle --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g # END ANSIBLE MANAGED BLOCK
**注意:**不推薦每次都使用腳本啟動容器,因為為了保留上次配置的值,建議下次直接使用 docker start oracle11
啟動。
如果容器創(chuàng)建成功,系統(tǒng)會返回容器 ID。
5. 進入容器進行配置
創(chuàng)建并啟動容器后,你可以進入容器內(nèi)部進行配置:
docker exec -it oracle11g bash
此命令會讓你進入 Oracle 容器的 Bash 環(huán)境。
6. 進行軟連接
在容器中執(zhí)行以下命令,嘗試使用 sqlplus
工具。如果提示沒有該命令,你需要切換到 root 用戶:
sqlplus /nolog
切換到 root 用戶:
su root
輸入密碼 helowin
(默認密碼)。
7. 配置 Oracle 環(huán)境變量
你需要編輯 Oracle 配置文件,設(shè)置環(huán)境變量。執(zhí)行以下命令:
vi /etc/profile
在文件末尾添加以下內(nèi)容:
# 設(shè)置 Oracle 數(shù)據(jù)庫的安裝目錄 # ORACLE_HOME 是 Oracle 數(shù)據(jù)庫安裝的根目錄,許多工具和腳本需要依賴這個路徑 export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2 # 設(shè)置 Oracle 實例名 # ORACLE_SID(System Identifier)是數(shù)據(jù)庫實例的標識符,在 Oracle 中用來區(qū)分不同的實例 # 這里設(shè)置為默認的實例名 "helowin",與安裝時的配置一致 (不設(shè)置默認服務(wù)名就是ORCL) export ORACLE_SID=helowin # 將 ORACLE_HOME/bin 添加到 PATH 環(huán)境變量中 # PATH 是系統(tǒng)查找可執(zhí)行程序的路徑列表,將 Oracle 的 bin 目錄加入 PATH,方便直接運行 Oracle 命令(如 sqlplus) export PATH=$ORACLE_HOME/bin:$PATH
保存并退出后,執(zhí)行以下命令加載環(huán)境變量:
source /etc/profile
8. 創(chuàng)建軟連接
接下來,創(chuàng)建一個軟連接,方便在任何地方使用 sqlplus
命令:
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
9. 切換到 Oracle 用戶
切換到 oracle
用戶以確保你有足夠的權(quán)限進行后續(xù)操作:
su - oracle
10. 登錄 SQL*Plus 并修改 sys、system 用戶密碼
通過 SQL*Plus 登錄并修改 sys
和 system
用戶的默認密碼:
# 1. 登錄 SQL*Plus # 使用 /nolog 命令啟動 sqlplus,并且不立即連接到任何用戶 sqlplus /nolog # 2. 連接數(shù)據(jù)庫并使用 SYSDBA 權(quán)限 # 通過以下命令使用 SYSDBA 權(quán)限連接到數(shù)據(jù)庫 # 該命令表示通過操作系統(tǒng)身份驗證以 sysdba 權(quán)限連接數(shù)據(jù)庫,擁有最高管理員權(quán)限。 conn /as sysdba # 3. 修改 system 用戶的密碼 # system 是 Oracle 數(shù)據(jù)庫中的一個管理員賬戶,修改默認的密碼為更安全的密碼 # 這里將密碼設(shè)置為 system(可以自行修改為更復雜的密碼) alter user system identified by system; # 4. 修改 sys 用戶的密碼 # sys 用戶是 Oracle 數(shù)據(jù)庫的另一個管理員賬戶,修改 sys 用戶的默認密碼 # 同樣可以將密碼設(shè)置為更復雜的值 alter user sys identified by system; # 5. 創(chuàng)建新用戶 test # 創(chuàng)建一個新的普通用戶 test,并設(shè)置其密碼為 test # 新用戶創(chuàng)建后,可以根據(jù)需求授予其特定的權(quán)限 create user test identified by test; # 6. 授予 test 用戶 DBA 權(quán)限 # 這里我們?yōu)樾聞?chuàng)建的 test 用戶授予了 DBA 權(quán)限,使其能夠進行數(shù)據(jù)庫的管理操作 # 注意:可以根據(jù)實際需求調(diào)整授予的權(quán)限 grant connect, resource, dba to test; # 7. 設(shè)置密碼永不過期 # Oracle 默認有一個密碼過期策略,這里我們將密碼策略設(shè)置為永不過期 # 這將防止在測試和開發(fā)環(huán)境中因密碼過期而中斷使用 ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; # 8. 修改數(shù)據(jù)庫最大連接數(shù) # 默認情況下,Oracle 數(shù)據(jù)庫的最大連接數(shù)是有限的,如果需要支持更多并發(fā)連接,可以調(diào)整該參數(shù) # 這條命令將數(shù)據(jù)庫最大連接數(shù)設(shè)置為 1000,并保存在 spfile 中 # 需要重啟數(shù)據(jù)庫后才能生效 alter system set processes=1000 scope=spfile; # 執(zhí)行完以上命令后,我們完成了用戶密碼修改、新用戶創(chuàng)建、權(quán)限授予、密碼策略配置和數(shù)據(jù)庫配置
11. 重新啟動數(shù)據(jù)庫
修改完數(shù)據(jù)庫用戶和設(shè)置后,需要重新啟動 Oracle 數(shù)據(jù)庫。執(zhí)行以下命令:
conn /as sysdba shutdown immediate; -- 關(guān)閉數(shù)據(jù)庫 startup; -- 啟動數(shù)據(jù)庫
12. 解決 “Database Not Open” 錯誤
在執(zhí)行 alter user
命令時,有時可能會遇到如下錯誤:
ORA-01507: database not open
如果你遇到此問題,可以按照以下步驟解決:
- 先輸入以下命令掛載數(shù)據(jù)庫:
alter database mount;
- 然后再輸入:
alter database open;
完成后就可以執(zhí)行修改密碼的操作了。
修改完后,再次執(zhí)行 ALTER PROFILE
語句,設(shè)置密碼永不過期:
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
執(zhí)行完畢后,輸入 exit
退出 SQL*Plus。
13. Navicat 連接測試
成功完成數(shù)據(jù)庫配置后,可以使用 Navicat 或其他數(shù)據(jù)庫管理工具測試連接。確??梢皂樌B接到數(shù)據(jù)庫:
總結(jié)
到此這篇關(guān)于Docker安裝oracle數(shù)據(jù)庫的文章就介紹到這了,更多相關(guān)Docker安裝oracle數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
備份Docker容器中的PostgreSQL數(shù)據(jù)的圖文實操教程
現(xiàn)在docker容器很方便,可以一鍵部署項目,但是方便部署的同時,也給運維帶來了麻煩,docker中的pgsql數(shù)據(jù),如何進行備份呢,本文小編給大家就介紹了備份Docker容器中的PostgreSQL數(shù)據(jù)的圖文實操教程,需要的朋友可以參考下2024-09-09Docker容器運行ASP.NET Core的實現(xiàn)步驟
這篇文章主要介紹了Docker容器運行ASP.NET Core的實現(xiàn)步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04使用Docker快速運行Firefox并實現(xiàn)遠程訪問本地火狐瀏覽器的詳細過程
文章介紹了如何在Docker中運行Firefox瀏覽器,并通過Cpolar內(nèi)網(wǎng)穿透工具實現(xiàn)遠程訪問,步驟包括部署Firefox、本地訪問、安裝Cpolar、配置公網(wǎng)地址、設(shè)置固定二級子域名等,本文給大家介紹的非常詳細,感興趣的朋友一起看看吧2025-02-02docker環(huán)境下數(shù)據(jù)庫的備份(postgresql, mysql) 實例代碼
這篇文章主要介紹了docker環(huán)境下數(shù)據(jù)庫的備份(postgresql, mysql) ,需要的朋友可以參考下2019-05-05Docker部署Kafka以及Spring Kafka實現(xiàn)
這篇文章主要介紹了Docker部署Kafka以及Spring Kafka實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-10-10