• Docker - Oracle Database 23ai Free


    博文目录


    说明

    Oracle 官方镜像仓库

    Database 23ai Free | Oracle

    Docker 官方没有提供 Oracle Database 相关镜像, 但是 Oracle 官方镜像仓库有提供, 打开上面的链接, 选择 Database, 选择合适的版本, 如 enterprise, express 和 free, 这里以 free 为例. Free 分为 FULL 和 LITE 两个版本, 这里以 LITE 为例

    Oracle Database Free 有使用限制, 前台进程最多 2 个 CPU, 2 GB RAM 和 12 GB 用户数据(硬盘)

    Oracle Database 23ai Free offers the ability to experience Oracle Database, which businesses throughout the world rely on for their mission-critical workloads. The resource limits for Oracle Database Free are up to 2 CPUs for foreground processes, 2 GB of RAM and 12 GB of user data on disk. It is packaged for ease of use and simple download.

    数据卷数据卷印射在容器内的路径
    oracle/opt/oracle/oradata
    容器内的路径说明
    /opt/oracle/oradata数据目录
    /opt/oracle/scripts/startup数据库启动后要运行的自定义脚本目录

    命令

    docker run -d --name oracle -p 1521:1521 -e TZ=Asia/Shanghai -e ORACLE_PWD=Mrv587.. -v oracle:/opt/oracle/oradata container-registry.oracle.com/database/free:23.4.0.0-lite
    
    # 查看日志
    docker logs oracle
    # 跟踪日志
    docker logs -f oracle
    docker logs --follow oracle
    # 查看最后10条日志
    docker logs --tail 10 oracle
    # 查看最近10分钟的日志
    docker logs --since 10m oracle
    
    # 进入容器并执行 bash
    docker exec -it oracle bash
    # 退出容器
    exit
    
    # 直接从主机进入客户端
    docker exec -it oracle sqlplus sys/Mrv587..@FREE as sysdba
    docker exec -it oracle sqlplus system/Mrv587..@FREE
    docker exec -it oracle sqlplus pdbadmin/Mrv587..@FREEPDB1
    
    # 创建公共用户
    # -- 以具有DBA权限的用户连接到数据库
    CONNECT sys/password AS SYSDBA;
    # -- 切换到根容器
    ALTER SESSION SET CONTAINER = CDB$ROOT;
    # -- 创建公共用户
    CREATE USER C##COMMON_USER IDENTIFIED BY password;
    # -- 授予公共用户权限
    GRANT DBA TO C##COMMON_USER;
    
    # 创建本地用户
    # -- 以具有DBA权限的用户连接到数据库
    CONNECT sys/password AS SYSDBA;
    # -- 切换到目标 PDB,例如 freepdb1
    ALTER SESSION SET CONTAINER = freepdb1;
    # -- 创建本地用户
    CREATE USER LOCAL_USER IDENTIFIED BY password;
    # -- 授予本地用户权限
    GRANT CONNECT, RESOURCE TO LOCAL_USER;
    

    Navicat

    SYSTEM

    在这里插入图片描述

    PDBADMIN

    在这里插入图片描述

    扩展

    Oracle PDB(Pluggable Database,可插拔数据库)是 Oracle Multitenant 架构的一部分,这一架构在 Oracle 12c 中引入。Multitenant 架构允许一个单独的容器数据库(Container Database,CDB)容纳多个独立的 PDB。每个 PDB 可以被认为是一个完全独立的数据库实例,具有自己的数据文件、系统表空间和用户表空间。

    在 Oracle Multitenant 架构中,每个 PDB 都有一个默认的管理账户,通常命名为 PDBADMIN。这个账户类似于单实例 Oracle 数据库中的 SYSTEM 用户,但它的权限范围仅限于 PDB 本身。

    在 Oracle 12c 及其后的版本中,引入了多租户架构,支持容器数据库(CDB)和可插拔数据库(PDB)。在这种架构中,用户可以分为公共用户(Common Users)和本地用户(Local Users)。这两种用户类型有不同的特性和用途。

    • 公共用户(Common Users):在整个 CDB 中具有统一身份,必须以 C## 开头,管理范围覆盖所有 PDB,适用于全局性管理和操作。
    • 本地用户(Local Users):仅存在于特定 PDB 中,没有命名规则限制,管理范围仅限各自 PDB,适用于特定应用或业务需求。

    公共用户

    • 公共用户是一个在 CDB 的根容器(CDB$ROOT)和所有 PDB 中都存在的用户。这个用户在创建时自动存在于每个 PDB 中。
    • 公共用户的名称必须以 C## 或 c## 开头。例如:C##ADMIN。
    • 公共用户在 CDB 和所有 PDB 中具有统一的身份。创建、修改或删除公共用户时,这些操作会自动应用到 CDB 和所有 PDB。
    • 公共用户通常用于管理和维护整个 CDB。例如,DBA 可能会创建一个公共用户来管理所有 PDB 中的资源或执行全局性操作。

    本地用户

    • 本地用户是只存在于特定 PDB 中的用户。每个 PDB 可以有自己的本地用户,这些用户只能在各自的 PDB 中操作。
    • 本地用户的名称没有特殊的命名规则限制,可以是任何合法的 Oracle 用户名(不需要以 C## 开头)。
    • 本地用户只能在创建它的 PDB 中存在和操作。本地用户无法访问其他 PDB,也不能在根容器(CDB$ROOT)中存在。
    • 本地用户通常用于特定应用程序或业务单元,只需要访问和操作一个特定 PDB 中的数据。
  • 相关阅读:
    SpringBoot+微信小程序实现的酒店预订小程序系统 附带详细运行指导视频
    VUE3照本宣科——package.json与vite.config.js
    安装NodeJS并使用yarn下载前端依赖
    Zebec联合Visa推出实体借记卡持续利好生态,$ZBC表现强劲
    基于vue3/Vue3的组件库
    黑客(网络安全)技术自学——高效学习
    单片机和FreeRTOS上跑机器人ROS的应用
    【Linux网络编程】TCP/IP协议详解
    【数字IC基础】DFT(Design For Test)可测性设计
    【使用OpenCV进行目标分割与计数的代码实例详解】
  • 原文地址:https://blog.csdn.net/mrathena/article/details/139918413