DockerでOracle Database 23ai FreeをセットアップしMAX_STRING_SIZEを拡張する手順
- はじめに
- 環境準備
- ディレクトリ作成
- Dockerコンテナ起動
- データベース設定変更
- コンテナ内でSQL*Plus起動
- PDB操作と文字列サイズ拡張
- 設定検証
- 管理者ユーザー作成
- 注意事項
- まとめ
中文版请访问这里
はじめに
Oracle Database 23ai FreeをDocker環境でセットアップし、拡張文字列サイズ(MAX_STRING_SIZE=EXTENDED)の設定とPDB操作を行う手順を解説します。開発環境構築時の参考にしてください。
環境準備
ディレクトリ作成
データ永続化用のディレクトリを作成(権限設定は開発環境用):
mkdir -p /u01/data/free/
chmod 777 /u01/data/free/ # 本番環境では適切な権限設定を推奨
Dockerコンテナ起動
Oracle Database 23c Freeのコンテナを起動:
docker run -d --name oracle-db \-p 1521:1521 \-e ORACLE_PDB=FREEPDB1 \-e ORACLE_PWD=<任意のパスワード> \-v /u01/data/free/:/opt/oracle/oradata \container-registry.oracle.com/database/free:23.7.0.0-amd64
データベース設定変更
コンテナ内でSQL*Plus起動
docker exec -it oracle-db bash
sqlplus / as sysdba
PDB操作と文字列サイズ拡張
-- 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;
設定検証
-- 拡張文字列サイズでのテーブル作成テスト
CREATE TABLE large_text_table (large_text_column VARCHAR2(20000)
);DROP TABLE large_text_table;
管理者ユーザー作成
-- DBA権限付与
CREATE USER admin IDENTIFIED BY <パスワード>;
GRANT DBA TO admin;
GRANT EXECUTE ON CTX_DDL TO admin; -- Text検索機能利用の場合
注意事項
- データ永続化のためボリュームマウントを実施
MAX_STRING_SIZE
変更はデータベース作成直後のみ可能- 本番環境では権限設定を見直し(777は開発用)
- パスワードは強固なものを設定
まとめ
Dockerを使ったOracle Databaseのセットアップと重要な設定変更の流れを解説しました。開発環境構築の参考になれば幸いです。本番環境ではセキュリティ設定の見直しをお忘れなく!