docker 安装 oracle

镜像下载、域名解析、时间同步请点击阿里云开源镜像站

背景

在Linux中安装oracle非常麻烦,相信每个人也会遇到各种坑。为了一次装好,也方便将来直接可以导出镜像在各平台移植使用,所以选择用docker安装

拉取镜像

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

docker 安装 oracle

注意,这里使用 docker pull oraclelinux 命令,是拉取不到镜像的,因为它没有 latest 标签。因此,只能手动指定它的版本号

例如 docker pull oraclelinux

docker 安装 oracle

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

在 dockerHub 上可以搜到 (第二个),可以参考这个配置

docker 安装 oracle

docker 安装 oracle

使用 docker images 查看镜像,确认已经下载完成

docker 安装 oracle

启动容器

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

docker 安装 oracle

查看运行状态 docker ps -a

docker 安装 oracle

容器内环境配置

进入容器 docker exec -it oracle11g bash

docker 安装 oracle

切换到 root 用户 su root,密码为 helowin

docker 安装 oracle

docker容器配置环境变量不是在 /etc/profile 中,容器启动不会走这个文件。

可以将环境变量的配置设置在 /home/oracle/.bashrc 文件下,这样可以省略掉软连接的创建 ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

docker 安装 oracle

编辑环境变量 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 刷新环境变量,并使之生效

进入 oracle 命令行

使用 sqlplus /nolog 进入oracle命令行

docker 安装 oracle

使用 “操作系统认证” 的方式,登录oracle conn / as sysdba

如果直接使用默认的 root 用户登录,会报登录失败。这里必须使用 su – oracle 命令,将当前用户切换到 oracle,然后在执行登录命令

docker 安装 oracle

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

docker 安装 oracle

此错误是由于误用数据库名称造成的

[En]

This error is due to the misuse of the database name

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

使用上面的命令可以找到所有可用的“数据库名”和“用户名”

[En]

What is found using the above command is all available “database names” and “user names”

docker 安装 oracle

阿里的这个镜像,所有的密码都是统一的 helowin

system用户具有DBA权限,但是没有SYSDBA权限。平常一般用该帐号管理数据库。

而sys用户是Oracle数据库中权限最高的帐号,具有”SYSDBA”和”SYSOPER”权限,一般不允许从外部登录

docker 安装 oracle

配置防火墙

防火墙要允许 1521 端口,外部的数据库管理工具才能连的上

打开防火墙
systemctl start firewalld
查询端口状态
firewall-cmd --query-port=1521/tcp
永久性开放端口
firewall-cmd --permanent --zone=public --add-port=1521/tcp
重启防火墙
firewall-cmd --reload
firewall-cmd --query-port=1521/tcp

docker 安装 oracle

本文转自:https://blog.csdn.net/chy555chy/article/details/124345973

Original: https://www.cnblogs.com/helong-123/p/16348961.html
Author: 萌褚
Title: docker 安装 oracle

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/523441/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球