首页 > 数据库 >window10专业版系统,在docker中配置oracle19c

window10专业版系统,在docker中配置oracle19c

时间:2023-04-14 20:34:51浏览次数:72  
标签:容器 oracle19c 数据库 专业版 Oracle oracle docker

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选择工具--->选项--->环境--->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

相关文章

  • docker01 flask-sqlalchemy flask-migrate使用 flask项目演示 docker介绍与安装
    今日内容详细目录今日内容详细1flask-sqlalchemy使用2flask-migrate使用3flask项目演示4docker介绍4.1什么是虚拟化4.2docker是什么4.3容器与虚拟机比较4.4Docker概念5docker安装1flask-sqlalchemy使用#集成到flask中,直接使用sqlalchemy,看代码#有个第三方flask-sq......
  • docker03 容器操作 应用部署 迁移备份 dockerfile
    今日内容详细目录今日内容详细1容器操作2应用部署2.1mysql部署2.2redis部署2.3nginx部署3迁移与备份4Dockerfile1容器操作#启动容器 dockerstart容器id#停止容器 dockerstop容器id#文件拷贝 #容器的文件copy到宿主机上(不是在容器内执行)dockercp容......
  • docker常见错误收集
    一docker容器启动报错报错内容如下Errorresponsefromdaemon:errorcreatingoverlaymountto/var/lib/docker/overlay2/e6472f6c7675054284c3a62f6388b52d3d34bd99e492a351dd5a28b724634f/merged:invalidargumentError:failedtostartcontainers:spug原因分析网上搜索......
  • Docker: common container Dockerfile
     mavenFROM--platform=amd64maven:3-openjdk-18-slimRUNcd/etc/apt&&>sources.list&&cat>sources.list<<EOFdebhttps://mirrors.ustc.edu.cn/debianbullseyemaincontribnon-freedeb-srchttps://mirrors.ustc.edu.cn/deb......
  • docker nginx
    1,#创建挂载目录mkdir-p/home/nginx/confmkdir-p/home/nginx/logmkdir-p/home/nginx/html 2,#生成容器dockerrun--namenginx-p9001:80-dnginx#将容器nginx.conf文件复制到宿主机dockercpnginx:/etc/nginx/nginx.conf/home/nginx/conf/nginx.conf#将容器c......
  • Docker服务编排 Docker Compose 安装使用
    服务编排:微服务架构的应用系统中一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,维护的工作量会很大。•要从Dockerfilebuildimage或者去dockerhub拉取image•要创建多个container•要管理这些container(启动停止删除)服务编排:按照一定......
  • 学习笔记402—Warning: Stopping docker.service, but it can still be activated by:
    执行systemctlstopdocker后提示“Warning:Stoppingdocker.service,butitcanstillbeactivatedby:docker.socket”解释:这是docker在关闭状态下被访问自动唤醒机制,很人性化,即这时再执行任意docker命令会直接启动注:如果真的不希望docker被访问自动唤醒,执行systemct......
  • Docker容器
    Docker容器1.运行容器dockerrun是启动容器的方法。可用三种方式指定容器启动时执行的命令:(1)CMD指令。(2)ENTRYPOINT指令。(3)在dockerrun命令行中指定。例如下面的例子:[root@0x1e61~]#dockerrunubuntupwd/容器启动时执行pwd,返回的/是容器中的当前目录。执行docke......
  • [Docker]容器服务是如何与cgroups协同进行资源控制的?
    Docker利用Linux的控制组(cgroups)来进行资源控制。cgroups是一种内核特性,它允许对资源(例如CPU、内存、磁盘I/O等)进行限制、分配和优先级分配。Docker利用cgroups进行资源限制时,他会通过cgroups为每个容器分配特定的资源配额。这意味着每个容器只能够使用cgroups中指......
  • docker-day4——Dockerfile、docker私有仓库、dockercompose介绍、dockercompose部署f
    目录一、Dockerfile1.1常用和不常用命令1.2dockerfile构建一个djagno项目二、docker私有仓库2.1镜像传到官方仓库2.2镜像分层2.3私有仓库搭建三、dockercompose介绍四、dockercompose部署flask+redis项目4.1新建flask项目app.py4.2编写Dockerfile--》用于构建flask项目的......