zoukankan      html  css  js  c++  java
  • docker 安装 oracle_11g_r2 并实现数据持久化

    1,采用 docker-compose 安装

    1,创建相关文件

    mkdir /usr/local/docker
    cd /usr/local/docker
    mkdir oracle
    cd oracle
    touch docker-compose.yml 
    

    2,docker-compose.yml 配置文件的内容如下

    version: '3.1'
    services:
      master:
        image: registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
        container_name: oracle
        privileged: true
        ports:
          - 1521:1521
    

    3,启动容器,并进入容器

    docker-compose up -d
    docker exec -it oracle bash
    

    4,配置环境,并创建一个用户,实现外部连接

    cd /home/oracle                                           # 进入到 oracle 用户目录
    source .bash_profile                                      # 加载 oracle 环境变量
    $PATH                                                     # 查看 oracle 环境变量是否生效
    sqlplus / as sysdba                                       # 连接 oracle 数据库
    alter user system identified by oracle;                   # 修改 DBA 账号的密码
    alter user sys identified by oracle;                      # 修改 DBA 账号的密码
    alter profile default limit password_life_time unlimited; # 设置密码为永不过期
    create user test identified by oracle;                    # 创建一个 test 用户,密码 oracle
    select * from dba_users t where t.username = 'TEST';      # 查询用户是否创建成功
    grant connect, resource to test;                          # 给用户授予连接和数据权限
    

    5,相关配置(可省略)

    grant select on V_$session to test;
    grant select on V_$sesstat to test;
    grant select on V_$statname to test;
    show parameter deferred_segment_creation;          -- 查看是否启用 true 为启动
    alter system set deferred_segment_creation=false;  -- 修改为不启用
    show parameter deferred_segment_creation;          -- 查看是否修改成功 false 未启用
    

    6,使用 plsql 连接

    1. 账号:test
    2. 密码:oracle
    3. 连接:ip:1521/helowin

    2,数据持久化

    1,可以发现,helowin 的实例安装在:/home/oracle/app/oracle/oradata/helowin 目录下

    2,拷贝数据到本地,并修改拥有者

    docker cp oracle:/home/oracle/app/oracle/oradata/helowin /usr/local/docker/oracle/helowin
    cd /usr/local/docker/oracle
    chown -R 500.500 ./helowin  # 500 500 是容器内 oracle 组合用户的 id
    

    3,关闭容器:docker-compose down

    4,重新启动容器,并在 docker-composr.yml 添加数据卷配置

    version: '3.1'
    services:
      master:
        image: registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
        container_name: oracle
        privileged: true
        ports:
          - 1521:1521
        volumes:
          - ./helowin:/home/oracle/app/oracle/oradata/helowin
    

    5,查看启动日志:docker logs -f oracle,我们发现了一个错误,这是由于 oracle 为了数据安全,添加的版本验证

    6,进入容器内,解决错误

    docker exec -it oracle bash
    cd /home/oracle              # 进入到 oracle 用户目录
    source .bash_profile         # 加载 oracle 环境变量(每次进入容器都要加载配置文件)
    
    # 删除新生成的版本控制文件,将数据卷中的版本控制文件复制为新生成的版本控制文件
    rm -rf /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl
    cp /home/oracle/app/oracle/oradata/helowin/control01.ctl /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl
    
    sqlplus / as sysdba          # 以 dba 身份连接 oracle 数据库
    shutdown immediate           # 关闭数据库实例(这里会报错,不用管)
    startup                      # 启动实例
    

    7,再次使用 plsql 连接,发现之前创建 test 用户可以连接,数据持久化顺利完成

    PS,镜像的 root 用户账号密码:root/helowin

  • 相关阅读:
    【梦话区】一直迷茫的net小伙
    【ASP.NET】登陆成功后如何跳转到上一个页面
    【C#】强类型DataSet实现登录次数限制
    【ASP.NET】ItemDataBound之repeater 和 listview
    【网页设计】框架的高度随框架里面的内容的多少而改变——转
    【连载】Scala程序设计:Java虚拟机多核编程实战——简介
    博客园图灵杯第五届博问大赛(2010.8.3~2010.9.2)
    【连载】高效人士的116个IT秘诀(第2版)——秘诀23早晨就来一次突破
    图灵2010.08书讯
    图灵五周年生日聚会圆满成功,多家媒体对此进行报道
  • 原文地址:https://www.cnblogs.com/lovling/p/12547007.html
Copyright © 2011-2022 走看看