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 中的数据。
  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值