鏡像下載、域名解析楣导、時間同步請點擊 阿里云開源鏡像站
背景
在Linux中安裝oracle非常麻煩废境,相信每個人也會遇到各種坑。為了一次裝好,也方便將來直接可以導出鏡像在各平臺移植使用噩凹,所以選擇用docker安裝
拉取鏡像
在 DockerHub 上搜索 Oracle 可以找到 Oracle 的官方鏡像巴元,地址:https://hub.docker.com/
注意,這里使用 docker pull oraclelinux 命令驮宴,是拉取不到鏡像的逮刨,因為它沒有 latest 標簽。因此修己,只能手動指定它的版本號
例如 docker pull oraclelinux
使用 官方鏡像 下載速度非常慢迎罗,因此,我們可以使用阿里鏡像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
在 dockerHub 上可以搜到 (第二個)佳谦,可以參考這個配置
使用 docker images 查看鏡像戴涝,確認已經(jīng)下載完成
啟動容器
1钻蔑、默認啟動容器的方式
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
查看運行狀態(tài) docker ps -a
容器內環(huán)境配置
進入容器 docker exec -it oracle11g bash
切換到 root 用戶 su root咪笑,密碼為 helowin
docker容器配置環(huán)境變量不是在 /etc/profile 中可帽,容器啟動不會走這個文件窗怒。
可以將環(huán)境變量的配置設置在 /home/oracle/.bashrc 文件下,這樣可以省略掉軟連接的創(chuàng)建 ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
編輯環(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)境變量,并使之生效
進入 oracle 命令行
使用 sqlplus /nolog 進入oracle命令行
使用 “操作系統(tǒng)認證” 的方式堪置,登錄oracle conn / as sysdba
如果直接使用默認的 root 用戶登錄舀锨,會報登錄失敗。這里必須使用 su - oracle 命令坎匿,將當前用戶切換到 oracle雷激,然后在執(zhí)行登錄命令
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
這個錯誤是由于數(shù)據(jù)庫名用錯了
su - oracle
sqlplus /nolog
conn / as sysdba
select instance_name from v$instance;
show user;
使用上述命令查出來的侥锦,就是所有可用的 “數(shù)據(jù)庫名” 和 “用戶名”
阿里的這個鏡像恭垦,所有的密碼都是統(tǒng)一的 helowin
system用戶具有DBA權限格嗅,但是沒有SYSDBA權限。平常一般用該帳號管理數(shù)據(jù)庫屯掖。
而sys用戶是Oracle數(shù)據(jù)庫中權限最高的帳號,具有“SYSDBA”和“SYSOPER”權限贴铜,一般不允許從外部登錄
配置防火墻
防火墻要允許 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
本文轉自:https://blog.csdn.net/chy555chy/article/details/124345973