Docker安装oracle19c

news/2025/3/13 17:01:52/文章来源:https://www.cnblogs.com/wuchangsoft/p/18344847

1. 拉取镜像

docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
2. 创建目录并赋权

mkdir -p /docker/oracle19c/oradata
chmod 777  /docker/oracle19c/oradata

3. 构建容器并启动

docker run -d -p 1521:1521 \
 -p 5502:5500  \
 -e ORACLE_SID=ORCLCDB  \
 -e ORACLE_PDB=ORCLPDB  \
 -e ORACLE_PWD=oracle  \
 -e ORACLE_EDITION=standard \
 -e ORACLE_CHARACTERSET=AL32UTF8  \
 -v /docker/oracle19c/oradata/:/opt/oracle/oradata/ --name  oracle_19c\
  registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
=========================================================

  1.     docker run: 运行 Docker 容器的命令。
  2.     -d: 指定容器在后台运行(detached mode)。
  3.     -p 1521:1521: 将容器的 1521 端口映射到主机的 1521 端口,Oracle 数据库监听端口。
  4.     -p 5502:5500: 将容器的 5500 端口映射到主机的 5502 端口,用于 Oracle Enterprise Manager Express 访问的端口。
  5.     -e ORACLE_SID=ORCLCDB: 设置 Oracle 实例的 SID(System Identifier),这里设置为 ORCLCDB。
  6.     -e ORACLE_PDB=ORCLPDB: 设置 Oracle 的 Pluggable Database(PDB)的名称,这里设置为 ORCLPDB。
  7.     -e ORACLE_PWD=oracle: 设置 Oracle 系统用户 SYS 和 SYSTEM 的初始密码为 oracle。
  8.     -e ORACLE_EDITION=standard: 设置 Oracle 的版本为标准版(standard),这影响 Oracle 的功能集。
  9.     -e ORACLE_CHARACTERSET=AL32UTF8: 设置 Oracle 数据库的字符集为 AL32UTF8,即 Unicode 字符集。
  10.     -v /docker/oracle19c/oradata/:/opt/oracle/oradata/: 将主机上的 /docker/oracle19c/oradata/ 目录挂载到容器内的 /opt/oracle/oradata/ 目录,用于持久化存储数据库文件。
  11.     –name oracle_19c: 指定容器的名称为 oracle_19c。
  12.     registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c: 指定要运行的 Docker 镜像,这里是从阿里云的镜像仓库中拉取并运行名为 oracle:19c 的镜像。


这个命令通过 Docker 在后台运行 Oracle 19c 数据库容器,并配置了数据库实例的 SID、PDB 名称、密码、字符集等参数,同时将数据库数据目录挂载到主机上的指定目录,确保数据持久化。
============================================================

4. 查看日志

安装有点慢,请耐心等待执行完成

 

 

 5. 登录docker容器里面

docker exec -it oracle_19c /bin/bash

 

6. 登录sqlplus 创建PDB用户

sqlplus / as sysdba

 


在 Oracle 数据库中,sqlplus / as sysdba 是一种连接到数据库的方式,其中:
    sqlplus 是 Oracle 提供的交互式 SQL 工具,用于与 Oracle 数据库进行交互和执行 SQL 命令。
    / as sysdba 是一种特殊的连接方式,其中 / 表示连接时不需要输入用户名,sysdba 是系统管理员角色的一种,具有最高权限,可以执行数据库的管理操作。

因此,当你使用 sqlplus / as sysdba 命令连接到 Oracle 数据库时,你将以系统管理员 (sysdba) 的身份登录,拥有对数据库实例进行各种管理操作的权限。这种连接方式常用于执行数据库的操作和维护,例如创建和修改数据库对象、备份和恢复数据等。需要谨慎使用,以免误操作导致不可逆的损坏。

7. 查看show pdbs

show pdbs

 

7. 切换数据库

alter session set container=ORCLPDB;

 

8. 创建用户

 9. 授权

 在 Oracle 数据库中,GRANT DBA TO user; 是一种授权命令,用于赋予指定用户(user)数据库管理员 (DBA) 的权限。具体到你的问题 grant dba to root;,这个命令的含义如下:
    GRANT: 这是 Oracle 数据库中用于授权的关键字,用于给予用户特定的权限。
    DBA: 是一个预定义的角色(Role),代表数据库管理员角色,具有数据库的最高权限。DBA 角色允许用户管理数据库对象、执行系统级别的任务等。
    TO: 表示授权的目标,即要授予权限的用户或角色。
    root: 在你的命令中,root 可能指的是操作系统中的 root 用户,但需要注意,在 Oracle 数据库中,通常需要使用数据库用户(例如 SYS 用户)来执行授权操作,而不是操作系统的 root 用户。

10. 使用navicat连接

 

 



 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/778647.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

便捷地发get或者post请求的方法

import org.springframework.http.HttpMethod;import org.springframework.web.client.RestTemplate;

易基因:哺乳动物胎盘DNA甲基化变化和胎儿出生体重的综合分析 | 科研速递

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 出生体重是一个复杂的多因素性状,与后期生活中的健康状况和疾病风险有关。胎盘对胎儿的正常生长至关重要,并负责促进母体和发育中胎儿之间的气体、营养和废物交换。胎盘DNA甲基化变化如何影响胎儿出生体重尚…

高性能USB转串口适配器,让USB和串行接口轻松实现双向通信!

多功能数字接口转发器,让USB和串行接口轻松实现双向通信!高性能USB转串口适配器,助力你的嵌入式程序开发!USB转串口适配器可编程开发板TYPE接口是一种多功能的数字接口物理层协议转发器,可以转换USB接口和串行接口之间的双向通信。它支持多种嵌入式程序开发,并可以自由制…

医院信息管理系统(慢病管理)

基于若依前后端分离版基础框架实现的医院患者信息管理系统(慢病管理),主要包含系统管理,科室配置,用户配置,患者配置,药品进销存,看病就诊,收费管理,患者就诊问询,数据统计,慢病管理,医生每日待办等核心模块医院慢病管理系统简介: 基于若依前后端分离版基础框架实…

PuerTS和HybridCLR哪个更适合开发微信小游戏

1)PuerTS和HybridCLR哪个更适合开发微信小游戏2)使用了Play Asset Delivery提交版本被Google报错3)怎样设置normalize来改变摄像机位置4)如何禁用增强型输入法中除某些输入操作之外的输入操作这是第397篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社…

vue 父子组件传值报错:this.$emit is not a function 解决

报错基本上都是因为this指向问题,基本上就是 function 和 () => 之间的问题,进行这俩的替换基本上都可以解决。我碰到了此问题,因为this指向了方法,而不是vue 改成箭头函数,解决

.NET 开源权限认证项目 MiniAuth上线

前言 在Web应用项目中权限认证是个绕不开的话题,传统方法复杂又耗时。MiniAuth推出专为.NET开发者设计的简单、实用的权限认证项目。 MiniAuth,作为ASP.NET Core的插件,让我们快速轻松实现用户登录、权限检查等功能。它支持多种认证方式,如JWT、Cookie,且易于集成到现有项…

(已解决)QT4 自定义信号函数调用报错 error: C2248: “Boss::DeadSignal”: 无法访问 protected 成员(在“Boss”类中声明)

(解决方法见文章末尾) 报错语句如下 DeadSignal是自定义槽函数,是放在public下的,不知道为什么报错说是protected,不知道是不是版本问题 Boss类和DeadSignal定义如下 mboss是在自定义类Widget中调用的Boss对象 调用位置是Widget的自定义槽函数 解决方法 在Boss中定义一…

使用rewriteBatchedStatements属性优化Mybatis-Plus批量插入数据(转)

原文:https://blog.csdn.net/mcband/article/details/131530297 前言由于项目是使用MyBatis-Plus开发的,用起来也确实比较方便,尤其是service层封装好的一些通用的增删改查方法,省去了不少sql语句的书写,但是在开发过程中,我也发现MyBatis-Plus的saveBatch批量插入方法针…

CSS中span元素垂直居中【解决span元素内基线对齐问题】

CSS中span元素垂直居中【解决span元素内基线对齐问题】 在样式的书写中,我们常常使用以下方式实现垂直居中,若span元素内例外,解决办法看文章最后 <div class="parent"><span class="child">text</span> </div>1.flex布局方式垂…

【YashanDB数据库】大事务回滚导致其他操作无法执行,报错YAS-02016 no free undo blocks

问题现象 客户将一个100G的表的数据插入到另一个表中,使用insert into select插入数据。从第一天下午2点开始执行,到第二天上午10点,一直未执行完毕。 由于需要实施下一步操作,客户kill重启了数据库,之后数据库一直回滚中,导致后续执行其他操作都报错YAS-02016 no free u…

用友U8 13.0填制凭证、查询明细账提示内存溢出

问题:用友U8 13.0填制凭证、查询明细账提示内存溢出解决办法:可能是由于系统缺少文件造成的。您可以按照以下步骤进行操作: 检查路径:C:\Program Files (x86)\Common Files\microsoft shared\DAO 中的控件是否缺少。 如果发现缺少文件,您可以从其他正常运行的机器上拷贝文…