6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Oracle マルチテナント TIPS

6
Posted at

マルチテナント用語

用語 説明
マルチテナント・アーキテクチャ Oracleのコンテナ型データベースの実装技術
CDB コンテナ型のDBインスタンス、文脈によりルートを指す場合もあり
非CDB 非コンテナ型(従来型)のDB
コンテナID/名 インスタンス内のコンテナを一意に識別するIDと名前
ルート(CDB$ROOT) 共通オブジェクトを持つコンテナ。インスタンス名で接続するとCDB$ROOTに繋がる。
PDB ユーザデータベースとなるコンテナ。PDB名はNET接続時のサービス名となる。
シード(PDB$SEED) PDBのテンプレートとなる読取専用PDB。コンテナ名はPDB$SEED。

主要ファイル

用語 ルート PDB 補足説明
制御ファイル ◎CDB全体
REDOログファイル ◎CDB全体
UNDO表領域 ◎共通 △ローカル(12.2~)
TEMP(一時)表領域 ◎デフォルト 〇ローカル 基本はコンテナ毎のTEMPを使う
SYSTEM,SYSAUX ◎共通部 ◎個別部
ユーザ表領域 〇USERS 〇USERS PDB$SEEDにはない
 <凡例>◎必須、〇作成、△作成可、-無

sqlplusからPDBへの接続

# 1.ROOTへ接続した後、PDBに接続変更(共通ユーザ)
#  DB作成時にサービス名がtnsnames.oraに追加される。別サーバからの接続は2.か3.で。
sqlplus system/パスワード@サービス名
alter session set container=pdb名;

# 2.ホスト[:ポート]/サービス名の形式でPDBに直接接続。ポート1521の場合省略可
sqlplus system/パスワード@ホスト[:ポート]/pdb名

# 3.tnsnames.oraにネットサービス名を追加し直接接続
vi $ORACLE_HOME/network/admin/tnsnames.ora
## 下記を追加(ネットサービス名をpdb1とした場合)
pdb1=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ホスト)(PORT=ポート))(CONNECT_DATA=(SERVICE_NAME=pdb名)))
## 接続
sqlplus system/パスワード@pdb1

sqlplusのマルチテナント拡張(SQL Developerでも可)

-- ROOTに接続
sqlplus / as sysdba
-- PDBの一覧(rootコンテナから実行した場合は全部。PDBからの場合今のPDBのみ)
show pdbs
-- 現在の接続コンテナID、名前の表示.ID=1はCDB,ID=2はseed
show con_id
show con_name
-- 接続コンテナの変更(PDB1へ)
alter session set container=pdb1;
-- 接続コンテナの変更(rootコンテナへ)
alter session set container=CDB$ROOT;
-- PDBの状態変更(CDBから実行) closeするとMOUNT状態となる。
-- デフォルトではDB起動時にPDBはclose状態
alter pluggable database all|PDB open [read only|read write];
alter pluggable database all|PDB close [immediate];
-- PDBの現在の状態を保存し、次回DB起動時にその状態にする。
alter pluggable database all|PDB save state;

RMANバックアップ

  • CDB全体: ルートに接続しbackup database;
  • ルートのみ: ルートに接続しbackup database root;
  • PDB: PDBに接続しbackup database;
  • 複数PDB: ルートに接続しbackup pluggable database pdb1,pdb2,・・
  • アーカイブログのバックアップはルートに接続して実行。PDBでは対象なしとなる。
    • backup database plus archivelog [delete all input];
    • backup archivelog all [delete all input];
  • RMAN内では接続コンテナの変更(aleter session set container=xx)は不可

更新履歴

2018/05/30 初版

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?