Docker部署Oracle 11g
部署步骤
开始之前,确保Docker环境已安装并运行。执行以下命令以启动Oracle 11g数据库容器:
# 启动容器
docker run -d -p 61251:1521 \
--name oracle11g \
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
# 挂载到宿主机 -v /data/oracle:/home/oracle/app/oracle/oradata/orcl11g
# 进入容器
docker exec -it oracle11g bash
此命令中,61251
是宿主机对外开放的端口,/data/oracle
为宿主机上用于持久化Oracle数据的目录,racle_11g
是容器的名称,而registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
是使用的Oracle 11g镜像地址。
修改环境变量
# cat ~/.bashrc
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=orcl11g
export PATH=$ORACLE_HOME/bin:$PATH
登入数据库
docker exec -it oracle11g
sqlplus / as SYSDBA
通过sqlplus / as SYSDBA
命令登录到SQL*Plus,开始进行数据库的管理与配置。
数据库网络配置
1.修改 tnsnames.ora 文件
为了确保数据库能够正确响应外部请求,需要调整tnsnames.ora
文件中的配置。在容器内部,文件路径通常位于:
1/home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora
示例配置如下:
ORCL11G =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl11g.us.oracle.com)
)
)
LISTENER_ORCL11G =
(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
这里的配置意味着监听器接受来自任何IP地址的连接请求,端口为1521。
2.重启监听服务
lsnrctl stop
lsnrctl start
lsnrctl status # 查看状态
本地客户端配置
为了从本地机器访问数据库,客户端的tnsnames.ora
文件也需相应配置,示例如下:
ORCL11G =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.xxx)(PORT = 61251))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl11g.us.oracle.com)
)
)
这里,172.16.140.135
是运行Docker容器的宿主机IP地址,61251
是宿主机上对外映射的端口。
Centos7 一键部署Oracle 11g
tar zxvf oracle-11g-offline.tar.gz
bash oracle-11g.sh