window10专业版系统,在Docker中配置Oracle19c
1.环境说明
系统:windows 10专业版(已打开与wsl相关的服务)
Docker:Dokcer 4.17.0(已为Docker配置环境变量)
2.配置流程
<1>镜像拉取
首先,打开Docker客户端,在cmd中输入以下命令用以镜像拉取(使用命令行拉取镜像会被默认保存至C盘):
docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
<2>创建本地资源保存目录,用以被挂载来实现数据持久化保存
本教程假定被挂载的本地目录为:E:\oracle\oradata
<3>创建并运行容器
使用如下命令创建并运行容器:
docker run -d -p 1521:1521 -p 5500:5500 -e ORACLE_SID=ORCLCDB -e ORACLE_PDB=ORCLPDB1 -e ORACLE_PWD=123456 -e ORACLE_EDITION=standard -e ORACLE_CHARACTERSET=ZHS16GBK -v /e/oracle/oradata:/opt/oracle/oradata --name oracle19c registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
各参数详解:
-p:设定容器与本机的端口映射关系
-e:传入相应环境变量参数,在Oracle12C及以上的版本中引入了CDB和PDB概念,此处创建了一个名为ORCLCDB的CDB数据库以及一个名为ORCLPDB1的PDB数据库。
-v:设定本机目录与容器内目录的挂载关系
--name:所创建容器的名字
正常运行容器命令:
docker start oracle19c
进入已打开容器命令:
docker exec -it oracle19c bash
<4>创建新用户
sys用户并不能直接用于外部连接,我们需要为PDB数据库创建新的用户。
首先,使用最高权限登录数据库(注意/和as中有一个空格),查看现有哪些容器:
sqlplus / as sysdba
show pdbs;
登录为CDB数据库,需切换至PDB数据库(注意;不可省略)
sqlplus system/123456
alter session set container=ORCLPDB1;
show con_name; #查看当前容器名
使用如下命令创建新用户并赋权:
create user username identified by password;
grant all privileges to username;
<5>配置外部连接
首先,到Instant Client for Microsoft Windows (x64) 64-bit (oracle.com)Oracle官方驱动网站下载对应版本的驱动和证书文件(版本19开头的即可),将下载好的文件解压到一个不包含中文的目录中。
Navicat连接数据库
Navicat选择工具--->选项--->环境--->OCI环境,选中我们解压后的驱动文件夹中的oci.dll文件即可。新建连接的时候的配置如下:
python连接数据库
将解压后的Oracleclient文件夹中的所有dll文件复制到你所用python环境的根目录下即可,例:我使用的是anoconda的虚拟环境,将dll文件复制到D:\anaconda3\envs\MA中即可(MA为我所用的虚拟环境名)。
使用pip下载python连接oracle的cx_Oracle驱动模块:
pip install cx_Oracle
使用如下代码测试连接:
import cx_Oracle
conn = cx_Oracle.connect('username','password','127.0.0.1:1521/ORCLPDB1')
cusor = conn.cursor()
print('连接数据库成功!')
print(cx_Oracle.__version__)
结果如下即为环境配置正确:
连接数据库成功!
8.3.0
<6>其它可能用到的命令:
关闭docker容器:
docker stop oracle19c
关闭wsl子系统:
wsl --shutdown
标签:容器,oracle19c,数据库,专业版,Oracle,oracle,docker
From: https://www.cnblogs.com/fpgboy/p/17319828.html