使用Docker搭建Oracle Database 23ai Free并扩展MAX_STRING_SIZE的完整指南

使用Docker搭建Oracle Database 23ai Free并扩展MAX_STRING_SIZE的完整指南

前言

本文将详细讲解在Docker环境中配置Oracle Database 23ai Free,并进行扩展字符串长度(MAX_STRING_SIZE=EXTENDED)设置及PDB操作的完整流程。适合作为开发环境搭建的参考手册。

环境准备

目录创建

为数据持久化创建专用目录(权限设置适用于开发环境):

bash 复制代码
mkdir -p /u01/data/free23ai/
chmod 777 /u01/data/free23ai/  # 生产环境建议设置适当权限

启动Docker容器

运行Oracle Database 23c Free容器:

bash 复制代码
docker run -d --name oracle-db \
  -p 1521:1521 \
  -e ORACLE_PDB=FREEPDB1 \
  -e ORACLE_PWD=<自定义密码> \
  -v /u01/data/free23ai/:/opt/oracle/oradata \
  container-registry.oracle.com/database/free:23.7.0.0-amd64

数据库配置修改

进入容器启动SQL*Plus

bash 复制代码
docker exec -it oracle-db bash
sqlplus / as sysdba

PDB操作与字符串扩展设置

sql 复制代码
-- PDB状态确认
SHOW PDBS;

-- 以升级模式重新打开PDB
ALTER PLUGGABLE DATABASE FREEPDB1 CLOSE;
ALTER PLUGGABLE DATABASE FREEPDB1 OPEN UPGRADE;

-- 切换容器
ALTER SESSION SET CONTAINER=FREEPDB1;

-- 扩展字符串长度配置
ALTER SYSTEM SET MAX_STRING_SIZE=EXTENDED;

-- 执行变更应用脚本
@?/rdbms/admin/utl32k.sql

-- 正常模式重启
ALTER PLUGGABLE DATABASE FREEPDB1 CLOSE;
ALTER PLUGGABLE DATABASE FREEPDB1 OPEN;

配置验证

sql 复制代码
-- 扩展字符串长度建表测试
CREATE TABLE large_text_table (
    large_text_column VARCHAR2(20000)
);

DROP TABLE large_text_table;

管理员用户创建

sql 复制代码
-- 授予DBA权限
CREATE USER admin IDENTIFIED BY <密码>;
GRANT DBA TO admin;
GRANT EXECUTE ON CTX_DDL TO admin;  -- 如需使用全文检索功能

注意事项

  1. 必须实施卷挂载实现数据持久化
  2. MAX_STRING_SIZE修改仅限数据库创建初期
  3. 生产环境需重新审核权限设置(777权限仅限开发)
  4. 请设置高强度密码

总结

本文详细讲解了使用Docker搭建Oracle数据库并进行关键配置修改的全流程。希望为开发环境搭建提供有效参考,生产环境请务必重新审核安全设置!

相关推荐
阿桨15 分钟前
【保姆级教程-Centos7环境下部署mongodb并设置开机自启】
数据库·mongodb·centos
lolo大魔王31 分钟前
MongoDB的增删改查操作
数据库·mongodb
马大胡子1 小时前
Greenbone(绿骨)开源GVM容器docker部署和汉化介绍
linux·网络安全·docker
layman05282 小时前
node.js 实战——mongoDB
数据库·mongodb·node.js
AdaTina2 小时前
Docker的分解分析
运维·docker·容器
weisian1512 小时前
云原生--核心组件-容器篇-7-Docker私有镜像仓库--Harbor
docker·云原生·容器
爱可生开源社区2 小时前
SQLShift 全新上线:Oracle→OceanBase 迁移利器
数据库
wkj0013 小时前
java 和 C#操作数据库对比
java·数据库·c#
编程在手天下我有3 小时前
Redis 数据类型全览:特性、场景与操作实例
数据库·redis·数据结构与算法
左灯右行的爱情3 小时前
缓存并发更新的挑战
jvm·数据库·redis·后端·缓存