在Docker中安裝Oracle數(shù)據(jù)庫超詳細步驟
前言
在這篇博客中,我們將探討如何使用 Docker 容器輕松地安裝和運行 Oracle 數(shù)據(jù)庫。Docker 提供了一種簡便的方式,通過容器化,我們可以在任何支持 Docker 的環(huán)境中快速部署 Oracle 數(shù)據(jù)庫。
步驟概覽
步驟 1:安裝 Docker
首先,確保你的系統(tǒng)上已經(jīng)安裝了 Docker。你可以根據(jù)官方文檔(Docker 官方文檔)提供的指南進行安裝。
步驟 2:獲取 Oracle 11g Docker 鏡像
在 Docker Hub 上,有許多社區(qū)提供的 Oracle 數(shù)據(jù)庫鏡像。你可以選擇合適的版本。例如,我將使用 阿里的oracle-11g 鏡像。
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

步驟 3:運行 Oracle 11g 容器(我選擇持久化)
使用以下命令運行 Oracle 11g 容器:
默認啟動容器的方式
docker run -d -it -p 1521:1521 --name oracle11g --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
-d: 表示以后臺運行的方式啟動容器。-it: 分別表示分配一個偽終端(pseudo-TTY)并保持 STDIN 打開。-p 1521:1521: 將主機的端口映射到容器的端口,這里是將主機的 1521 端口映射到容器的 1521 端口,用于訪問 Oracle 數(shù)據(jù)庫。--name oracle11g: 為容器指定一個名稱,這里是 "oracle11g"。--restart=always: 表示當容器退出時,總是重新啟動容器。
持久化啟動的方式
docker run -d -it -p 1521:1521 --name oracle --restart=always --mount source=oracle_vol,target=/home/oracle/app/oracle/oradata registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
與默認啟動方式相比,增加了一個 --mount 選項,用于將一個卷(volume)掛載到容器的指定路徑。
--mount source=oracle_vol,target=/home/oracle/app/oracle/oradata: 將名為 "oracle_vol" 的 Docker 卷掛載到容器中的 "/home/oracle/app/oracle/oradata" 路徑。這樣做的目的是將 Oracle 數(shù)據(jù)庫的數(shù)據(jù)存儲在持久化的卷中,以便數(shù)據(jù)在容器重啟時得以保留。
這兩種方式的選擇取決于你的需求。如果你希望容器在重啟時保留數(shù)據(jù),可以選擇使用掛載卷的方式,這樣可以確保數(shù)據(jù)持久化。如果你對數(shù)據(jù)的持久性沒有特殊要求,可以使用默認的啟動方式。
步驟 4:進入 Oracle 容器
通過以下命令進入 Oracle 容器的 shell: 這個容器名稱對應你之前--name的參數(shù)
docker exec -it 容器名稱 bash
步驟 5:在 Oracle 容器內部進行配置
進入容器后切換到root用戶,設置環(huán)境變量

有說修改/etc/profile也有說修改/home/oracle/.bashrc 這里選擇全都修改
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2 export ORACLE_SID=helowin export PATH=$ORACLE_HOME/bin:$PATH #末尾加上

修改完之后source一下
source /etc/profile source /home/oracle/.bashrc
切換回oracle用戶
su - oracle
進入oracle的命令行
sqlplus /nolog
接下來可以做一些修改密碼啊 等等的操作 舉個例子如下:
CONNECT / AS SYSDBA; alter user system identified by 新密碼; 修改system密碼 CREATE USER 用戶 IDENTIFIED BY 新密碼; 新建用戶設置密碼 GRANT CREATE SESSION TO 用戶; GRANT CREATE TABLE TO 用戶; ALTER USER 用戶 QUOTA UNLIMITED ON USERS;
CONNECT / AS SYSDBA;
以 SYSDBA 角色連接到數(shù)據(jù)庫。 使用 SYSDBA 角色登錄,該角色具有最高級別的數(shù)據(jù)庫權限,允許進行系統(tǒng)級別的管理任務。alter user system identified by 密碼;
修改系統(tǒng)用戶(system)的登錄密碼。CREATE USER hhhhh IDENTIFIED BY 密碼;
創(chuàng)建一個新用戶 hhhhh,并指定其登錄密碼。GRANT CREATE SESSION TO hhhhh;
允許用戶 hhhhh連接到數(shù)據(jù)庫。GRANT CREATE TABLE TO hhhhh;
允許用戶 hhhhh在數(shù)據(jù)庫中創(chuàng)建新的表。ALTER USER hhhhh QUOTA UNLIMITED ON USERS;
設置用戶 hhhhh 在表空間 USERS 上的存儲配額為無限制,允許用戶存儲數(shù)據(jù)。
開啟遠程連接(修改監(jiān)聽)
exit; 先退出剛才oracle命令行,已退出來的不用管了 cd /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin
在 /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin 目錄下,你可能會找到以下一些重要的配置文件:
listener.ora: 這個文件包含了 Oracle 數(shù)據(jù)庫監(jiān)聽器的配置信息。你可以在這里指定監(jiān)聽的端口、協(xié)議、監(jiān)聽地址等。
tnsnames.ora: 這個文件包含了數(shù)據(jù)庫連接的別名和連接信息。你可以在這里定義數(shù)據(jù)庫的連接方式。
sqlnet.ora: 這個文件包含了 SQL*Net 的配置信息,定義了 Oracle 客戶端與服務器之間的通信參數(shù)。
這里目前修改tnsnames.ora和listener.ora,把他們的hosts改為你訪問的ip我這測試環(huán)境直接全放了0.0.0.0

和


systemctl restart docker
步驟 6:連接到 Oracle 數(shù)據(jù)庫
最后,我使用nacivat連接(阿里的這個鏡像,所有的密碼都是統(tǒng)一的 helowin) 如果沒修改的話直接用helowin登錄就好

這只是一個簡要的指南,具體的步驟可能會根據(jù)使用的 Oracle Docker 鏡像版本而有所不同。在實際操作中,請確保遵循相關文檔并保持對 Oracle 數(shù)據(jù)庫許可的合規(guī)性。
總結
到此這篇關于在Docker中安裝Oracle數(shù)據(jù)庫的文章就介紹到這了,更多相關Docker安裝Oracle數(shù)據(jù)庫內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Docker容器定時備份數(shù)據(jù)庫并發(fā)送到指定郵箱(設計思路)
這篇文章主要介紹了Docker容器定時備份數(shù)據(jù)庫并發(fā)送到指定郵箱,文中寫了一下shell腳本,邏輯也很簡單,當前時間與啟動時間相同時,則調用sendmail函數(shù)發(fā)送郵件,具體腳本跟隨小編一起看看吧2022-01-01
詳解Docker創(chuàng)建Mysql容器并通過命令行連接到容器
本篇文章主要介紹了Docker創(chuàng)建Mysql容器并通過命令行連接到容器,具有一定的參考價值,有興趣的可以了解一下。2017-01-01
CentOS系統(tǒng)下docker的安裝配置及使用介紹
這篇文章主要介紹了CentOS系統(tǒng)下docker的安裝配置及使用詳細介紹,需要的朋友可以參考下2016-10-10
解決Docker啟動Elasticsearch7.x報錯的問題
這篇文章主要介紹了解決Docker啟動Elasticsearch7.x報錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11

