在docker中配置Oracle11g

打印 上一主题 下一主题

主题 1023|帖子 1023|积分 3073

在docker中配置Oracle11g

docker镜像拉取及相关配置

1.在docker打开的情况下,使用下方命令拉去镜像,大概需要下载3个G的image文件
  1. docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
复制代码
2.启动Oracle镜像并为镜像新建容器,注意此处的oracle11g即为容器名,可以自主设置
  1. docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
复制代码
由于在windows10专业版系统的docker是使用wsl作为容器内核,所以存在着一系列的内存,CPU以及交换空间的一些限制,我们可以在一个
.wslconfig文件中配置如上信息。若是在运行上语句的时候发现容器并没有正常运行,而是以一个139的错误代码退出,则说明我们的wsl的一部分限制导致了此容器不能正常运行。此时,我们可以在C:\Users\username路径下新建一个.wslconfig文件,并写入如下内容(若是文件已存在则直接添加即可)
  1. [wsl2]
  2. kernelCommandLine = vsyscall=emulate
复制代码
3.打开容器命令如下(针对上一步没有正常打开容器)
  1. docker start oracle11g
复制代码
4.进入已打开容器命令如下
  1. docker exec -it oracle11g bash
复制代码
5.进行环境变量的配置
使用管理员账户密码为helowin
  1. su root
复制代码
编辑profile环境变量文件
  1. vi /etc/profile
复制代码
点击i进入文件编辑模式,在文件末尾添加如下信息,按ESC键退出编辑模式,键入:wq保存文件并退出文件
  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
复制代码
键入exit命令退出管理员账号,回到oracle用户
  1. exit
复制代码
使用如下命令使刚设置的环境变量生效
  1. source /etc/profile
复制代码
由于Oracle是基于实例和用户的,所以我们可以新建一个用户来完成我们当前需要完成的工作
  1. sqlplus /nolog #打开sqlplus但是不进行连接操作
  2. conn /as sysdba; #无用户、密码以最高权限登录
  3. alter user system identified by oracle; #更改system用户密码为oracle
  4. conn system/oracle; #连接system数据库
  5. create user username identified by username; #创建一个新用户,用户名可自由设置
  6. grant all privileges to username;#为新用户赋权
  7. shutdown immediate; #关闭当前数据库
  8. exit; #退出sqlplus
复制代码
6.设置oracle支持外部连接访问
登录管理员用户,密码为helowin
  1. su root
复制代码
使用如下命令获得当前主机名
  1. hostname
复制代码
获得监听器listener.ora和tnsnames.ora文件的目录
  1. find / | grep /network/admin
复制代码
使用获得的路径编辑文件,将文件中的localhost变量用我们查询到的hostname名替代
  1. vi /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/listener.ora
  2. vi /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora
复制代码
此时,我们需要做的配置已经全部做好了,之后只需要保持容器为运行的状态即可。
使用Nacicat连接已经配置好的数据库

首先,我们需要到Instant Client for Microsoft Windows (x64) 64-bit (oracle.com)即Oracle的官网下载数据库连接要用到的证书文件。(注意,我们需要下载与自己Oracle数据库版本对应的证书文件)
查询数据库的具体版本,需要在sqlplus中执行如下命令
  1. select * from v$version
复制代码
为Navicat配置OCI环境,Navicat选择工具--->选项--->环境--->OCI环境,选中我们解压后的证书文件夹中的oci.dll文件即可。新建连接的时候的配置如下:

使用python连接Oracle数据库

建议使用anoconda创建一个新的虚拟环境来进行新的系统任务。
首先,使用如下命令下载需要进行连接oracle数据库的包cx_Oracle
  1. pip install cx_Oracle
复制代码
其后,我们需要创建一个.py文件,并在其中输入如下代码:
  1. import cx_Oracle
  2. conn = cx_Oracle.connect('账号','密码','数据IP:端口/数据库实例名称')
  3. cusor = conn.cursor()
  4. print('连接数据库成功!')
  5. print(cx_Oracle.__version__)
复制代码
直接运行该代码是行不通的,我们需要将必要的驱动文件放到与该文件同级目录下,驱动文件在我们之前下载的证书文件压缩包中已经有了,我们需要移动的文件有oci.dll,ocijdbc11.dll,ociw32.dll,orannzsbb11.dll,oraocci11.dll,oraociei11.dll,orasql11.dll
配置好文件之后,我们运行代码得到如下输出即代表数据库连接完成
  1. 连接数据库成功!
  2. 8.3.0
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王國慶

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表