docker 安裝 oracle

鏡像下載、域名解析、時間同步請點(diǎn)擊 阿里云開源鏡像站

背景

在Linux中安裝oracle非常麻煩,相信每個人也會遇到各種坑。為了一次裝好,也方便將來直接可以導(dǎo)出鏡像在各平臺移植使用,所以選擇用docker安裝

拉取鏡像

在 DockerHub 上搜索 Oracle 可以找到 Oracle 的官方鏡像,地址:https://hub.docker.com/

file

注意,這里使用 docker pull oraclelinux 命令,是拉取不到鏡像的,因?yàn)樗鼪]有 latest 標(biāo)簽。因此,只能手動指定它的版本號

例如 docker pull oraclelinux

file

使用 官方鏡像 下載速度非常慢,因此,我們可以使用阿里鏡像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

在 dockerHub 上可以搜到 (第二個),可以參考這個配置

file
file

使用 docker images 查看鏡像,確認(rèn)已經(jīng)下載完成

file

啟動容器

1、默認(rèn)啟動容器的方式

docker run -d -it -p 1521:1521 --name oracle11g --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

2、持久化啟動的方式

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

查看啟動的線程 netstat -tulnp

file

查看運(yùn)行狀態(tài) docker ps -a

file

容器內(nèi)環(huán)境配置

進(jìn)入容器 docker exec -it oracle11g bash

file

切換到 root 用戶 su root,密碼為 helowin

file

docker容器配置環(huán)境變量不是在 /etc/profile 中,容器啟動不會走這個文件。

可以將環(huán)境變量的配置設(shè)置在 /home/oracle/.bashrc 文件下,這樣可以省略掉軟連接的創(chuàng)建 ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

file

編輯環(huán)境變量 vi /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

wq 保存并退出。然后使用 source /home/oracle/.bashrc 刷新環(huán)境變量,并使之生效

進(jìn)入 oracle 命令行

使用 sqlplus /nolog 進(jìn)入oracle命令行

file

使用 “操作系統(tǒng)認(rèn)證” 的方式,登錄oracle conn / as sysdba

如果直接使用默認(rèn)的 root 用戶登錄,會報登錄失敗。這里必須使用 su - oracle 命令,將當(dāng)前用戶切換到 oracle,然后在執(zhí)行登錄命令

file

ORA-12514, TNS:listener does not currently know of service requested in connect descriptor

file

這個錯誤是由于數(shù)據(jù)庫名用錯了

su - oracle
sqlplus /nolog
conn / as sysdba
select instance_name from v$instance;
show user;

使用上述命令查出來的,就是所有可用的 “數(shù)據(jù)庫名” 和 “用戶名”

file

阿里的這個鏡像,所有的密碼都是統(tǒng)一的 helowin

system用戶具有DBA權(quán)限,但是沒有SYSDBA權(quán)限。平常一般用該帳號管理數(shù)據(jù)庫。

而sys用戶是Oracle數(shù)據(jù)庫中權(quán)限最高的帳號,具有“SYSDBA”和“SYSOPER”權(quán)限,一般不允許從外部登錄

file

配置防火墻

防火墻要允許 1521 端口,外部的數(shù)據(jù)庫管理工具才能連的上

# 打開防火墻
systemctl start firewalld
# 查詢端口狀態(tài)
firewall-cmd --query-port=1521/tcp
# 永久性開放端口
firewall-cmd --permanent --zone=public --add-port=1521/tcp
# 重啟防火墻
firewall-cmd --reload
firewall-cmd --query-port=1521/tcp
file

本文轉(zhuǎn)自:https://blog.csdn.net/chy555chy/article/details/124345973

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容