• docker、docker-compose部署oracle,plsql连接远程oracle


    一、docker部署oracle

    1. 下载镜像并启动容器

    # 拉取阿里oracle_11g的镜像
      docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
    # 创建容器并启动
      docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

    2. 进入oracle容器内修改配置


    # 进入容器内配置(以root用户进入)

    docker exec -it -u root oracle11g bash


    # 修改oracle环境变量
      vi /etc/profile
    编辑追加下面3行

    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

    保存编辑  esc shift+q   wq 回车

    修改profile后使它立即生效的命令
      source /etc/profile 或 . /etc/profile

    # 创建软链
      ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

    3. 修改用户密码、创建用户

    # 切回oracle用户并修改sys、system用户密码
      sqlplus / as sysdba(约等于sqlplus /nolog +  conn /as sysdba)

      alter user system identified by system;
      alter user sys identified by sys;
      // 创建用户  
      create user testUsr identified by 123;
      // 并给用户赋予权限
      grant connect,resource,dba to testUsr;
    若出现database not open, 进入SQL命令行去 alter database mount;alter database open;

    刷新刚才改密码操作
    ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED

    4. 验证端口

    可以去其他服务器使用telnet验证

    telnet oracle所在宿主机ip 1521

    ---- 至此已经部署完了,看plsql配置 ----
    数据库状态的指令: 在sql命令行下 startup、 shutdown指令
    监控状态:             oracle用户下 lsnrctl status

    一图流:

     

    二、docker-compose部署oracle

    TODO

    三、plsql连接远程oracle

    注:连接一、二里docker部署的oracle


    1. 下载plsql和instant_client,最好版本匹配或高一点点(百度找链接)


    2. 配置plsql


    plsql的工具->首选项->连接,里配置主目录和oci库
    oracle主目录:
    D:\****\instantclient_12_2
    oci库:
    D:\****\instantclient_12_2\oci.dll

    3 修改instant_client的tnsnames.ora


    在instant_client的目录里找network\admin\tnsnames.ora(没有就自己创建)
    D:\software\instantclient_12_2\network\admin

    docker_oracle =
     (DESCRIPTION =
       (ADDRESS_LIST =
         (ADDRESS = (PROTOCOL = TCP)(HOST = oracle容器ip)(PORT =1521))
       )
       (CONNECT_DATA =
         (SERVICE_NAME = helowinXDB)
       )
    )

    service_name对应oracle容器里的服务名,可以在进入容器内oracle用户下lsnrctl status选一个

    4. plsql连接登录

    四、出现的问题

    1. 启动容器时出现WARNING: IPv4 forwarding is disabled. Networking will not work.
    答案:https://blog.csdn.net/cljdsc/article/details/115207336

    2. 不是叫你修改oracle容器里的tnsnames.ora和listener.ora。

    看了些资料修改了导致无法连接

    参考资料:

    Docker 拉取 oracle 11g镜像配置_荡漾-的博客-CSDN博客_docker 访问oracle

    docker警告:WARNING: IPv4 forwarding is disabled. Networking will not work._杰哥的技术杂货铺的博客-CSDN博客

  • 相关阅读:
    ESP32网络开发实例-使用NTP获取当前时间
    SQL Server数据库理论篇(进行时......)
    [Power Query] 数据类型转换
    【前端进阶】-TypeScript类型声明文件详解及使用说明
    Istio服务网格进阶⑥:Istio服务网格之流量治理超时配置
    C++DAY10 结构体·结构体指针
    mybatis-plus自动生成
    【毕业设计】机器视觉停车位识别检测系统 - python 深度学习
    【基础篇】四、本地部署Flink
    LeetCode 409. Longest Palindrome
  • 原文地址:https://blog.csdn.net/qq_35911589/article/details/126949735