Oracle系Tips集 > マルチテナントのTips集


だいたいDBAロール持っているSYSユーザでの操作を想定しています。
Oracle系Tips集


マルチテナントのOS認証(BEQ接続)について

  • マルチテナント・コンテナ・データベースでの接続方法(KROWN:164595) (ドキュメントID 1766741.1)
  • ORACLE_PID_SID環境変数にPDBを指定してもCDB$ROOTに接続される (ドキュメントID 2984554.1)
CDBへのOS認証(BEQ接続)(SYSユーザ)
export ORACLE_SID=dbor1
sqlplus / as sysdba

PDBへのOS認証(BEQ接続)①(SYSユーザ)
  • 隠しパラメータ _system_trig_enabled=TRUE
export ORACLE_SID=dbor1
export ORACLE_PDB_SID=pdb
sqlplus / as sysdba

PDBへのOS認証(BEQ接続)②(SYSユーザ)
  • 初期化パラメータOS_AUTHENT_PREFIX=""
  • tnsnames.oraにPDBへのOS認証(BEQ接続)用の設定の追加
NSNAME_PDB1 =(DESCRIPTION =
(ADDRESS = (PROTOCOL = BEQ)(PROGRAM = oracle)(ARGS = '(DESCRIPTION=(ADDRESS=(PROTOCOL=BEQ)))'))
(CONNECT_DATA = (SERVICE_NAME =pdb)))
export ORACLE_SID=dbor1
sqlplus /@NSNAME_PDB1 as sysdba

PDBへのOS認証(BEQ接続)③(一般ユーザ)
  • ALTER USER user1 IDENTIFIED EXTERNALLY;
  • 初期化パラメータOS_AUTHENT_PREFIX=""
  • tnsnames.oraにPDBへのOS認証(BEQ接続)用の設定の追加
NSNAME_PDB1 =(DESCRIPTION =
(ADDRESS = (PROTOCOL = BEQ)(PROGRAM = oracle)(ARGS = '(DESCRIPTION=(ADDRESS=(PROTOCOL=BEQ)))'))
(CONNECT_DATA = (SERVICE_NAME =pdb)))
export ORACLE_SID=dbor1
sqlplus /@NSNAME_PDB1

マルチテナントのパスワード認証(BEQ接続)について

CDBへのパスワード認証(BEQ接続)(SYSユーザ)
  • パスワード・ファイルの作成
  • CDBの初期化パラメータREMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
export ORACLE_SID=dbor1
sqlplus sys as sysdba

PDBへのパスワード認証(BEQ接続)(SYSユーザ)
  • パスワード・ファイルの作成
  • PDBの初期化パラメータREMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
  • 隠しパラメータ _system_trig_enabled=TRUE
export ORACLE_SID=dbor1
export ORACLE_PDB_SID=pdb
sqlplus sys as sysdba

マルチテナントのパスワード認証(リスナー接続)について

CDBへのパスワード認証(リスナー接続)(SYSユーザ)
  • パスワード・ファイルの作成
  • CDBの初期化パラメータREMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
  • tnsnames.oraにCDBへのリスナー接続用の設定の追加(ネットサービス名NSNAME_CDB2)
  • listener.oraにCDBへのリスナー接続用の設定の追加
  • CDBの初期化パラメータLOCAL_LISTENERに上記と整合性が合うように設定
  • リスナーの起動
sqlplus sys@NSNAME_CDB2 as sysdba

PDBへのパスワード認証(リスナー接続)(SYSユーザ)
  • パスワード・ファイルの作成
  • PDBの初期化パラメータREMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
  • tnsnames.oraにPDBへのリスナー接続用の設定の追加(ネットサービス名NSNAME_PDB3)
  • listener.oraにPDBへのリスナー接続用の設定の追加
  • PDBの初期化パラメータLOCAL_LISTENERに上記と整合性が合うように設定
  • リスナーの起動
sqlplus sys@NSNAME_PDB3 as sysdba

PDBへのパスワード認証(リスナー接続)(一般ユーザ)
  • tnsnames.oraにPDBへのリスナー接続用の設定の追加(ネットサービス名NSNAME_PDB3)
  • listener.oraにPDBへのリスナー接続用の設定の追加
  • PDBの初期化パラメータLOCAL_LISTENERに上記と整合性が合うように設定
  • リスナーの起動
sqlplus user2@NSNAME_PDB3

ASMのOS認証(BEQ接続)について

ASMへのOS認証(BEQ接続)(SYSユーザ)
  • gridユーザにて行う
export ORACLE_SID=+ASM
sqlplus / as sysasm


マルチテナントで気を付けるポイント。

至極当たり前のことも書く。
  • CDB側、PDB側それぞれに初期化パラメータlocal_listenerを設定して、それぞれの設定のlistener.oraのリスナーを設定しないと起動のたびにORAメッセージがでる。
  • 監査ファイルはCDB側、PDB側それぞれ出るが、初期化パラメータaudit_file_destの値はCDBとPDBで同じとなる。
  • CDB側の監査ファイルは初期化パラメータaudit_file_destの直下に出力される。
  • PDB側の監査ファイルは初期化パラメータaudit_file_destの配下のPDBのGUID(英数字32文字)のディレクトリ配下に出力される。
  • PDB側の監査ファイルはスピルオーバー監査ファイルの配下(${ORACLE_BASE}/audit/${ORACLE_SID})のPDBのGUID(英数字32文字)のディレクトリ配下に出力される。
  • DB構築(マルチテナントならCDBもPDBも)後には、スケジューラのデフォルトタイムゾーンを東京に変更すること。
SELECT value FROM dba_scheduler_global_attribute WHERE attribute_name='DEFAULT_TIMEZONE';
EXEC DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE('DEFAULT_TIMEZONE','Asia/Tokyo');
  • 自動統計情報収集などOracleデフォルトのジョブ、ウインドウ、スケジューラなどはCDB側、PDB側でそれぞれ存在する。
  • UNDO表領域は、CDB,PDBそれぞれに存在し、初期化パラメータundo_tablespaceもそれぞれ設定となる。
  • rmanのバックアップ、リストアは特別な設定をしないかぎり、CDB,PDBすべてに対して適応される。
  • AWRのスナップショットは特別な設定をしないかぎり、CDB,PDBすべてに対して情報が収集される。
  • (上記のAWRスナップショットの場合)AWRのレポート出力はPDB単位での出力も、CDB,PDBすべてに対しての出力も可能。両方の出力も可能。
  • CDBのデータベース文字セットは「AL32UTF8」にすること。
    • PDB 候補のデータベース・キャラクタセットが CDB のデータベース・キャラクタセットと同一の場合、(データベース・キャラクタセットに関する限り)プラグインは成功します。
    • CDBのデータベース文字セットがAL32UTF8である場合、PDB候補のデータベース文字セットに関係なく、プラグイン操作は成功します。
    • (ドキュメントID 2082704.1)


ページ初期作成日:2022年12月01日
ページの更新日時:2024年12月08日 (日) 14時16分52秒
ページ作成から884日目
ここを編集
最終更新:2024年12月08日 14:16