Blogger Information
Blog 291
fans 0
comment 0
visits 350697
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
docker 安装 oracle
Original
912 people have browsed it

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

背景

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

拉取镜像

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

file

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

例如 docker pull oraclelinux

file

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

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

file

file

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

file

启动容器

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

file

查看运行状态 docker ps -a

file

容器内环境配置

进入容器 docker exec -it oracle11g bash

file

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

file

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

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

file

编辑环境变量 vi /home/oracle/.bashrc,在文件最后加入以下命令

  1. export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
  2. export ORACLE_SID=helowin
  3. export PATH=$ORACLE_HOME/bin:$PATH

wq 保存并退出。然后使用 source /home/oracle/.bashrc 刷新环境变量,并使之生效

进入 oracle 命令行

使用 sqlplus /nolog 进入oracle命令行

file

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

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

file

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

file

这个错误是由于数据库名用错了

  1. su - oracle
  2. sqlplus /nolog
  3. conn / as sysdba
  4. select instance_name from v$instance;
  5. show user;

使用上述命令查出来的,就是所有可用的 “数据库名” 和 “用户名”

file

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

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

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

file

配置防火墙

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

  1. # 打开防火墙
  2. systemctl start firewalld
  3. # 查询端口状态
  4. firewall-cmd --query-port=1521/tcp
  5. # 永久性开放端口
  6. firewall-cmd --permanent --zone=public --add-port=1521/tcp
  7. # 重启防火墙
  8. firewall-cmd --reload
  9. firewall-cmd --query-port=1521/tcp

file

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

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post