docker-compose部署oracle11g

1.创建Oracle镜像和容器 

1.下载镜像

拉取oracle镜像:  

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
文件较大 大概7G 请耐心等待 下载成功之后 执行 docker images -a 查看镜像是否拉取成功

2. 创建并启动oracle11g容器

先后运行下面2个命令
   docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
   docker start oracle11g
   结束后 执行docker ps -a 查看容器是否启动 

3. 容器配置


   (1) 进入容器 docker exec -it oracle11g bash
   (2) 切换到root用户s
       su root 密码为:helowin  (这是因为拉取下来的oracle镜像 默认带了一个叫helowin的实例)
   (3) 编辑profile文件配置ORACLE环境变量
       vi /etc/profile
       在文件最后追加以下三行配置
       export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
       export ORACLE_SID=helowin
       export PATH=$ORACLE_HOME/bin:$PATH
       按ESC键 然后输入:wq! 然后按ENTER键保存并退出vi编辑器
       让配置生效:运行 source /etc/profile
   (4) 创建软连接

        ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
   (5) 切换到oracle用户

         su - oracle
   (6) 登录sqlplus并修改sys、system用户密码:

        sqlplus /nolog --登录
        startup; --启动数据库,注意第一次进入才执行
        conn /as sysdba --连接数据库
        alter user system identified by 123456;–修改system用户账号密码;
        alter user sys identified by 123456;–修改sys用户账号密码;
        create user test identified by 123456; – 创建内部管理员账号密码;
        grant connect,resource,dba to test; --将dba权限授权给内部管理员账号和密码;
        alter profile default limit password_life_time unlimited; --修改密码规则策略为密码永不过期;
        alter system set processes=1000 scope=spfile; --修改数据库最大连接数据;

       grant sysdba to system;

修改以上信息后,需要重新启动数据库

conn /as sysdba
shutdown immediate; --关闭数据库
startup; --启动数据库
exit:退出软链接 

4. navicat无法登陆

alter system set local_listener=‘(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))’;

然后重启,如果执行不成也退出!!!!!!!!
然后退出SQL页面在执行
lsnrctl start    #开启监听
dbstart           # 启动用户实例 

 

2.docker-compose部署

 1.交给docker-compose管理: 在根目录下新建oracle11目录 并在里面新建datahe和etc目录 全部赋予chmod 777 权限
   回到根目录  执行 docker cp oracle11g:/etc/profile ./oracle11g/data/etc/ 将容器内的profile文件复制到宿主机用于挂载。profile位置:/opt/oracle11g/data/etc/profile
 2.将下面配置追加到docker-compose.yml

version: '3.7'
services:
  oracle_11g:
    image: registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
    container_name: oracle_11g
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - $PWD/etc/localtime:/etc/localtime:ro
      - $PWD/data/oracle:/data/oracle
      - $PWD/data/etc/profile:/etc/profile
    ports:
      - 1522:1521
    privileged: true
    user: root
    restart: always
    command: /bin/bash -c "ln -s $ORACLE_HOME/bin/sqlplus /usr/bin"
    deploy:
      resources:
        limits:
          memory: 2G
        reservations:
          memory: 500M
    networks:
      application:
        aliases:
          -  net-oracle_11g
  application:
   name: net
   driver: bridge
 

  3.注意: 从docker run直接启动的容器 不能直接交给docker-compose继续关闭或启动 会冲突
         如果已经用docker启动了容器 需要先用 docker rm 删除 然后再用 docker-compose up -d 命令统一启动,docker-compose会首先检查容器是否存在 存在就直接启动 不存在先创建容器再启动
   4.执行

docker-compose up -d

sqlplus /nolog
如果没有 进行一下操作

vi /etc/profile
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH

 然后在执行 source /etc/profile 使配置生效
最后方便使用创建软连接 ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

参考:

docker-compose部署oracle11-CSDN博客

docker-compose安装oracle11g_docker compose oracle11g-CSDN博客

oracle 11g 数据库常用操作实例总结_oracle_脚本之家

  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值