環境:Windows10・Oracle12c・lenovoX250(メモリ8G HDD500G)
CDBとPDBの理解と、PDBにおけるデータベース構築まで。
Oracle12cでは、CDBとPDBについて理解する必要がある。弊社では初めてOracleに着手する場合、『ユージ&ギョータの実践データベース講座』の頁を参照しています。
- CDBとはマルチテナント・コンテナ・データベース。PDBとはプラガブル・データベースを指し、概念図は次の通り(図は『ユージ&ギョータの実践データベース講座』より引用)
- つまり、親玉のCDBがいて、子分のPDBがいくつも存在知るという構図。少々乱暴だが、初めはそういう理解でOK。
- Oracleのホームページより、Oracle12c(12.1.0.2.0)をダウンロード。ファイルは2.5Gと大きいので少々時間を要す。
- ダウンロードしたファイルを解凍し、databaseというフォルダが生成される。
- その中の、setup.exeをダブルクリックして実行。
- 次の画面が現れる。必要に応じてメールおよびセキュリティ・アップデート欄を入力。
- データベースの作成および構成にチェック
- ディスクトップ・クラスか、サーバー・クラスを選択。ここではディスクトップ・クラスを選択。
- Windows組込みアカウントの使用を選択。なお、Windowsログオン機能、またはMicrosoftアカウントにおいて日本語を使用している場合、インストールできないので注意。その場合は、新規Windowsユーザーの作成を押して対応。
- インストール先は左の例ではCドライブだが、適宜設定。左のボカシ部分は、ユーザー名が入る。
また管理パスワードを設定。必ず控えること。プラガブル・データベース名は初期のままとする。
- インストール前の確認。
- インストールには約一時間かかる。
- インストール作業終了
- 次に、Oracle SQL Developerを起動し、左上の緑色した+ボタンを押してデータベース接続の作成/選択を表示させ次の通り設定。
接続名 CDB1 ユーザ名 sys パスワード [先に設定したもの] ロール SYSDBA サービス名 orcl - つぎに「表示」メニューから、DBAを選択
- 左側にDBAビューが表示されるので、「接続」を右クリックし、「接続の追加…」を選択。「接続の選択」画面がポップアップ表示されるので、「Connection」に作成した接続「CDB1」を指定して、「OK」ボタンをクリック。
- DBAの接続が完了すると、DBAビューに「CDB1」が表示されるので、クリックして展開。
DBAビューの「コンテナ・データベース」を右クリックし、「プラガブル・データベースの作成…」を選択
- 次の通り設定。
データベース名 test_pdb ユーザ名 Admin パスワード [任意に設定] ファイル名の変換 カスタム名 記憶領域 無限 - さらに、カスタム名を選択し、新しいPDBのデータ・ファイルのファイル名を指定。ここではターゲット・ファイルの3つのファイルについて、ファイルの場所を分かりやすくするために以下の様にディレクトリ名を”PDBSEED”から”TEST”に変更。また、ファイル名から”.clone”を削除。また、一時
ファイルの名前にある時間情報部分を削除。
変更前(ソースファイル)
C:\APP\[USER]\ORADATA\ORCL\PDBSEED\SYSTEM01.DBF.clone
C:\APP\[USER]\ORADATA\ORCL\PDBSEED\SYSAUX01.DBF.clone
C:\APP\[USER]\ORADATA\ORCL\PDBSEED\PDBSEED_TEMP012015-XX-XX_XX-XX-XX-AM.DBF.clone
変更後(ターゲットファイル)
C:\APP\[USER]\ORADATA\ORCL\TEST\SYSTEM01.DBF
C:\APP\[USER]\ORADATA\ORCL\TEST\SYSAUX01.DBF
C:\APP\[USER]\ORADATA\ORCL\TEST\PDBSEED_TEMP.DBF
- 次にSQLタブに移動し、IDENTIFIED BY句の後ろにROLES句 ROLES=(DBA)を追加。
適用ボタンを押してデータベースを作成する。
- 先に作成したデータベースTEST_PDBが自動的にDBA欄に表示されるので、右クリックして状態の変更を選択。
- 新しい状態がOPEN、状態のオプションをREAD_WRITEであることを確認し適用ボタンを押す。これでデータベースが開始。なお、OSが起動した直後、PDBはCLOSEしている状態である。OSの起動の度、このようなOPEN作業を実施するのは手間なので、CDB起動と同時にPDBが起動するように設定するのが運用上望ましい。その方法はこちらをご参照。。
- 次にTEST_PDBへの接続を作成する。接続欄から、接続の作成を選択。
- 接続名:TEST
ユーザー名:Admin
パスワード:[設定したパスワード]
サービス名:test_pdb
を設定し、テストを実施。大丈夫であることを確認し保存する。
- 接続欄のTESTを展開し接続できていることを確認。右クリックしてSQLワークシートを開くを選択。
- まずはADMINにDBA権限の付与するため、次のSQL文を入力し実行。
GRANT "DBA" TO "ADMIN"
WITH ADMIN OPTION;
ALTER USER "ADMIN"
DEFAULT ROLE "DBA", "TEST_DBA"
- 次に、ユーザ領域を確保するため、次のスクリプトを入力し実行(ディレクトリは各自環境にて確認)。
CREATE TABLESPACE USERS
DATAFILE 'C:\app\[USER]\oradata\orcl\TEST\users01.dbf'
SIZE 2000M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
- 次に運用のための新規ユーザを作成する。名前はMMSとし、次のSQL文を入力し実行。
CREATE USER MMS
IDENTIFIED BY "MMS"
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp; - 作成したEACユーザにDBA権限を付与するため、次のSQL文を入力し、実行。
GRANT DBA TO MMS;
GRANT UNLIMITED TABLESPACE TO MMS;
- 最後に、tnsnames.oraの設定。
C:\app\[USER]\product\12.1.0\dbhome_1\NETWORK\ADMINフォルダ中のtnsnames.oraを開き、次の内容を文末に追加(内容は環境により変更すること)
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = test_pdb)
)
)