在宿主机中使用PLSQL连接Docker中配置的Oracle

在宿主机中使用PLSQL连接Docker中配置的Oracle

不想繁琐的在机器上安装 Oracle 数据库。利用 Docker 拉取 Oracle 镜像,创建实例。并通过宿主机的PLSQL 连接,以便进行需要的后续操作。

一、环境说明:

宿主机操作系统:Windows 10

Docker版本:Docker version 19.03.8

二、操作步骤
  1. 下载 Oracle instantclient 下载地址下载 Basic Package 即可。

  2. 解压到指定目录,如: D:\Develop\instantclient_19_8。

  3. D:\Develop\instantclient_19_8 目录下新建 network/admin/ 并在其目录下 新建 tnsnames.ora 文件。

  4. 在 Docker 中 ,进入Oracle 容器的 bash,使用 sqlplus 登录 Oracle,并查看 service_names 。

    • 使用如下命令进入 Oracle 的 bash
    docker exec -it oracle11g /bin/bash
    
    • 进入之后 cd $ORACLE_HOME 切换到 ORACLE_HOME 目录下,使用 sqlplus 进行登录。
    root@92e15e179d42:/# cd $ORACLE_HOME
    
    root@92e15e179d42:/u01/app/oracle/product/11.2.0/xe# sqlplus
    
    • 使用如下命令查看 oracle 的 service name。
    SQL>show parameter service_name
    
  5. 查看 Docker 在宿主机上的 IP 地址,在网络连接上查看Docker虚拟机的 IPV4 属性上的地址。

  6. 编辑之前建立好的 tnsnames.ora 文件。内容如下:

    test_docker_oracle=
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST= 172.18.20.129)(PORT = 1521))
      (CONNECT_DATA =
        (SERVER = DEDICATED)
        (SERVICE_NAME = xe)
      )
    )
    

    HOST 为 Docker 在宿主机上的 IP 地址, SERVICE_NAME 是之前在 Docker 中 ORACLE 中查看得到的服务名。

  7. 配置 Windows 环境变量。

    ORACLE_HOME = D:\Develop\instantclient_19_8

    TNS_ADMIN = %ORACLE_HOME%\network\admin

    NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK

    将 ORACLE_HOME 配置到 Path 变量中。

  8. 启动 PLSQL。此时登录画面可以选择的数据库选项有刚刚配置的 test_docker_oracle

  9. 登录成功,即连接成功。

三、遇到的问题
  • Error while trying to retrieve text for error ORA-01804

    解决:
    1.检查一下环境变量的配置是否正确。不能存在其他版本的oracle 的配置。
    2.检查PLSQL的配置oci库是否配置正确。指定 instantclient 的 oci 库。在这里插入图片描述

  • 登录时候,连接超时。

    解决:此时需要宿主机测试 与 Docker 是否连通。如果 ping 不通。则需要建立路由。

    route add 172.18.20.129 mask 255.255.255.0 192.168.43.151
    

    将 Doker 和 宿主机 路由连通。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值