目录
2.3 进入镜像内部进行配置并测试sqlplus是否能正常使用
3.1 下载并安装 Oracle SQL Developer
1. Docker安装
1.1 环境配置及安装包
如果想在Windows系统上安装Docker,在去官网下载地址下载安装包前,需要先查看自己的系统是否满足以下需求:
- WSL2
- Hpyer-V
- 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;
若数据库顺利输出当前系统日期,则数据库连接成功。
恭喜,撒花✿✿ヽ(°▽°)ノ✿