Docker安装Oracle11g

470 阅读2分钟

前言

该文主要整合了网络上的安装教程,踩了一些坑,便于后续使用

环境

CentOS 7.6 64bitDocker Engine-Communityoracle_11g

安装Docker

www.runoob.com/docker/cent…

使用Docker,按如下步骤安装oracle11g

## 拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
## 启动容器(若需要挂载方式启动,可查阅参考链接首条)
docker run -d -p 1521:1521 --name oracle11g --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
## 查看运行中的容器(STATUS为Up代表成功)
docker ps

进入容器配置环境和参数

## 进入容器
docker exec -it 容器id或名称 bash
## 切换root账号(密码:helowin)
su root
## 配置环境变量
vi /etc/profile
## --------start--------将如下配置插入环境变量末尾
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
## --------end--------
## 使配置生效
source /etc/profile
## 插入sqlplus的软链接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
## 切换到oracle用户,启用sqlplus
su - oracle
sqlplus /nolog
conn /as sysdba
## 修改sys、system用户密码(以下sql最好单条执行,密码可自定义,此处设置为oracle123456)
alter user system identified by oracle123456;
alter user sys identified by oracle123456;
alter profile default limit PASSWORD_LIFE_TIME UNLIMITED;
######## 以下可选 ########
## 创建用户并授权(用户名必须大写,否则无法删除和连接该用户,oracle会使用大写去匹配,所以匹配会失败)
create user 用户名 identified by 密码;
grant connect, resource, dba to 用户名;

退出

退出sqlplusexit
退出容器:exit 或者 Ctrl + p + q

注意事项

  • 表空间、用户、字段的命名,按照规范需要大写、并严格避免和关键字重复,方便后续升级、数据迁移等等
  • Oracle中,表空间和用户是对应的,需要注意操作顺序:
    • 创建:先创建表空间,再创建用户
    • 删除:先删除用户,再删除表空间
  • Oracle建表后,使用时发现找不到:Oracle11特性,新建一张空表时,需要等插入第一行数据后,才会将该表插入表空间
  • 对于一般的用户,只需赋予 connectresourcecreate view 这3个权限即可,不行再给 dba 权限
  • 查询数据库编码:select userenv('language') from dual;

参考链接