Windows系统使用Docker搭建Oracle Database Enterprise Edition并连接至Oracle SQL Developer

本文详细指导了在Windows系统上安装Docker,并拉取Oracle镜像,创建、启动容器,配置sqlplus,连接OracleSQLDeveloper,包括tnsnames.ora设置和数据库用户密码修改。
摘要由CSDN通过智能技术生成

目录

1. Docker安装

1.1 环境配置及安装包

1.2 常见问题

2. Oracle镜像安装

2.1 拉取镜像

2.2 创建和启动容器(Container)

2.3 进入镜像内部进行配置并测试sqlplus是否能正常使用

3. 连接 Oracle SQL Developer

3.1 下载并安装 Oracle SQL Developer

3.2 配置 tnsnames.ora文件

3.3 连接数据库


1. Docker安装

1.1 环境配置及安装包

如果想在Windows系统上安装Docker,在去官网下载地址下载安装包前,需要先查看自己的系统是否满足以下需求: 

  1. WSL2
  2. Hpyer-V
  3. Windows Containers

具体如何查看以及如何安装不多赘述,详情可见下方链接,直接查看站内教程Docker官方安装文档

1.2 常见问题

1. 我的系统是windows 10 家庭版,没有Hpyer-V怎么办?

答:不一定非要升级系统,可以自己人工添加一个,具体方法见(2条消息) win10没有Hyper-v的解决方法_zhangxuewei的博客-CSDN博客_控制面板没有hyperv选项

2. Oracle镜像安装

2.1 拉取镜像

1. 前往Docker Hub搜索“Oracle database”

2. 进入页面后,点击“Proceed to Checkout”按钮获取Oracle Database镜像的官方pull命令 

这一步会需要用户注册账号并填写一些个人信息,完成后,直接无脑勾选“同意”和“下一步”就可以。

以上步骤完成后,会在页面右侧看到官方给出的最新pull命令,复制下来

3. 进入cmd拉取Oracle 镜像-执行命令

具体命令见下,但软件存在迭代的情况,因此还是以官网给出的为准,我这里只是做个展示

docker pull store/oracle/database-enterprise:12.2.0.1

敲下回车键后,静待下载。镜像有3.2个G,略有些大,一定要保证C盘有足够的空间来完成下载和安装,否则会失败。

下载完成后,输入以下命令查看镜像是否下载成功

docker images

 可以看到镜像已经下载好了

2.2 创建和启动容器(Container)

1. 创建容器

根据Oracle官网给出的安装建议,结合个人需求,创建容器的命令如下

docker run -d -it --name Oracle-DB -p 1521:1521 -p 5500:5500 store/oracle/database-enterprise:12.2.0.1

 其中,--name 后紧接着是容器的名字,想取什么名字就取什么名字,我这里给容器取名为"Oracle-DB"

-p 选项表示将容器的端口 1521(通常由容器使用的端口) server) 映射到 Docker 的端口 1521(我们将使用的端口); 5500 也一样。

这一部分非常关键,如果想要将Oracle与外部数据库连接,而不仅是在Container内部连接,就一定要自己把端口映射设定好。

命令运行完成后,输入以下命令查看是否新建成功

docker ps

看到 ↓ 这个就是基本创建成功了,但是现在不能马上进行下一步操作,必须等“health:starting”变成“healthy”才行。

整个过程需要2-5分钟,略等一下即可,期间可以不断输入以上命令查看容器状态。

直到STATUS变成 “ healthy ”,Oracle-DB 容器就算是创建完成了,数据库也可以在Container内部进行增删改查等功能了。

2.3 进入镜像内部进行配置并测试sqlplus是否能正常使用

1. 进入容器内部

运行以下代码以进入容器内部

docker exec -it Oracle-DB bash

2. 登录sqlplus并验证数据库是否能正常使用

由于此时我们不知道数据库中sys和system用户的密码,因此首先用以下命令实现无密码登录数据库,出现以下画面则说明登录成功,但此时还未成功连接至数据库。

sqlplus /nolog

接下来用以下命令连接至数据库,如出现 "connected.",则说明连接成功

conn / as sysdba

再用一个简单的SQL查询命令测试数据库是否能正常使用,当出现当前系统日期时,则数据库可正常使用。

SELECT SYSDATE FROM DUAL;

3. 修改sys、system用户密码

在上面的操作结束后,我们的Oracle数据库已经能够在Container内部正常运行了。但我们如果需要在外部连接数据库,就需要知道数据库内部用户的密码.

此时数据库内部有两个内置的用户,分别为 "sys" 和 "system"。因此,这一步,我们将在上一步的操作基础上,完成对数据库中sys和system用户密码的修改,以便后续使用。

执行以下命令以修改用户密码 (此处修改为了 "123456" ):

ALTER USER SYS IDENTIFIED BY 123456;
ALTER USER SYSTEM IDENTIFIED BY 123456;

出现 "User altered" 就说明用户密码已成功修改。

此时需要对表进行刷新,语句和成功状态见下:

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

至此,Oracle Database 的内部安装、配置和连接已经完成。连接到 Oracle 服务器是通过客户端完成的,下面我将以 SQL Developer 客户端为例,实现Oracle Database与Oracle SQL developer的连接。

3. 连接 Oracle SQL Developer

3.1 下载并安装 Oracle SQL Developer

Oracle SQL Developer的下载同样需要注册,下载地址见 → 官网下载地址

这个安装没什么难的,无脑安就行

3.2 配置 tnsnames.ora文件

要实现与各数据库客户端的连接,需要对Oracle Database的tnsnames.ora文件进行配置。

由于我们的Oracle Database是在docker上安装的一个镜像,因此本地计算机内并没有数据库的实体文件。

那么,接下来,我们将通过cmd,进入镜像内部,修改此文件。

1. 查看Oracle-DB所使用的端口

使用以下命令查看Oracle所使用的端口:

docker port Oracle-DB

2. 查看本机的ip地址

查看方法可见某度经验

3. 进入Oracle-DB容器内部

 运行以下代码以进入镜像内部:

docker exec -it Oracle-DB bash

4. 查找并修改tnsnames.ora文件

由于tnsnames.ora文件路径由 "TNS_ADMIN"这个环境变量(本地没有的别找了)指定,因此,利用 "echo"命令获取tnsnames.ora的保存路径。

代码及对应输出见下:

echo $TNS_ADMIN

 根据输出的路径,进入tnsnames.ora文件所在目录

cd /u01/app/oracle/product/12.2.0/dbhome_1/admin/ORCLCDB

 接下来,输入以下代码,查看该目录中是否有tnsnames.ora文件:

ls -a

 由输出可知,tnsnames.ora在该目录中,接着,输入以下代码,打开tnsnames.ora

vi tnsnames.ora

不出意外,得到的页面应该和上图是一样的。

此时,我们需要将HOST后方所对应的地址从 "0.0.0.0" 改为本机的IP地址,这里就是改为"192.168.0.183"。

如何修改?按"INSERT"键,当下方出现红框中的字样时即可开始修改文件

修改完成后,按"ESC"退出修改模式,上图红框中的字样消失

最后,按住 "shift" +":"键,输入"wq",回车,保存对文件的修改

 至此,对Oracle-DB的配置就成功完成,下面将进入本地的Oracle SQL Developer,连接数据库

3.3 连接数据库

新建连接并按照下图所示对应填入信息:

连接完成后,依旧使用一个简单的查询语句测试数据库

SELECT SYSDATE FROM DUAL;

 若数据库顺利输出当前系统日期,则数据库连接成功。

恭喜,撒花✿✿ヽ(°▽°)ノ✿

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值