2013年7月3日水曜日

Oracle 12c プラガブル・データベースのデータファイル構成について

Oracle 12c コンテナ・データベース(CDB)、プラガブル・データベース(PDB)の
データファイル構成を見てみました。

DB構成は、前回と同様で、
CDB「orcl」に、PDB「pdborcl」と「pdb2orcl」が接続されています。
コンテナ・データベース: CDB$ROOT
                |-- プラガブル・データベース1: PDBORCL
                |-- プラガブル・データベース2: PDB2ORCL

まず、CDBにsqlplusでログインして、データファイルを見てみます。
CDB(ROOT)から dba_data_files を見てみると、CDBのデータファイルしか見えません。
しかし、cdb_data_files を参照すれば、PDBのデータファイルも見えました。
[oracle@rac12c1 ~]$ sqlplus system/password@localhost/orcl
SQL*Plus: Release 12.1.0.1.0 Production on Wed Jul 3 02:11:57 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Last Successful login time: Wed Jul 03 2013 02:11:07 +09:00
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> show con_id
CON_ID
------------------------------
1

SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT    ★CDB(コンテナ・データベース)にログイン中。

SQL> set pagesize 20
SQL> col file_name for a60
SQL> select file_name from dba_data_files order by 1;
FILE_NAME
------------------------------------------------------------
/u01/app/oracle/oradata/orcl/sysaux01.dbf   ★CDBのデータファイル(DBF)だけ見える
/u01/app/oracle/oradata/orcl/system01.dbf
/u01/app/oracle/oradata/orcl/undotbs01.dbf
/u01/app/oracle/oradata/orcl/users01.dbf

SQL> select con_id,file_name from cdb_data_files order by 1,2;
    CON_ID FILE_NAME
---------- ------------------------------------------------------------
         1 /u01/app/oracle/oradata/orcl/sysaux01.dbf   ★CDBのDBF
         1 /u01/app/oracle/oradata/orcl/system01.dbf
         1 /u01/app/oracle/oradata/orcl/undotbs01.dbf
         1 /u01/app/oracle/oradata/orcl/users01.dbf
         2 /u01/app/oracle/oradata/orcl/pdbseed/sysaux01.dbf   ★SEEDDBのDBF
         2 /u01/app/oracle/oradata/orcl/pdbseed/system01.dbf
         3 /u01/app/oracle/oradata/orcl/pdborcl/pdborcl_users01.dbf   ★PDB1のDBF
         3 /u01/app/oracle/oradata/orcl/pdborcl/sysaux01.dbf
         3 /u01/app/oracle/oradata/orcl/pdborcl/system01.dbf

         4 /u01/app/oracle/oradata/orcl/pdb2orcl/pdb2orcl_users01.dbf  ★PDB2のDBF
         4 /u01/app/oracle/oradata/orcl/pdb2orcl/sysaux01.dbf
         4 /u01/app/oracle/oradata/orcl/pdb2orcl/system01.dbf

12 rows selected.

SQL> select TABLESPACE_NAME from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS


1つめのPDB「pdborcl」にログインしてみます。
PDBからは dba_data_files を見てみると、
CDBと同じように、ログイン中であるPDBのデータファイルしか見えません。
そして、cdb_data_files を参照しても、PDBのデータファイルしか見えませんでした。
(データファイルのパスに、「pdborcl」が含まれていることからわかります。)
[oracle@rac12c1 ~]$ sqlplus system/password@localhost/pdborcl
SQL*Plus: Release 12.1.0.1.0 Production on Wed Jul 3 02:16:08 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Last Successful login time: Tue Jul 02 2013 07:51:18 +09:00
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> show con_id
CON_ID
------------------------------
3

SQL> show con_name
CON_NAME
------------------------------
PDBORCL   ★PDBにログイン中。

SQL> col file_name for a60
SQL> select file_name from dba_data_files order by 1;
FILE_NAME
------------------------------------------------------------
/u01/app/oracle/oradata/orcl/pdborcl/pdborcl_users01.dbf
/u01/app/oracle/oradata/orcl/pdborcl/sysaux01.dbf
/u01/app/oracle/oradata/orcl/pdborcl/system01.dbf

SQL> select con_id,file_name from cdb_data_files order by 1,2;
    CON_ID FILE_NAME
---------- ------------------------------------------------------------
         3 /u01/app/oracle/oradata/orcl/pdborcl/pdborcl_users01.dbf
         3 /u01/app/oracle/oradata/orcl/pdborcl/sysaux01.dbf
         3 /u01/app/oracle/oradata/orcl/pdborcl/system01.dbf

SQL> select TABLESPACE_NAME from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
TEMP
USERS

2つめのPDB「pdb2orcl」にログインしてみます。
こちらも、1つめPDBと同様、dba_data_files と cdb_data_files の
どちらを参照しても、ログイン中のPDBのデータファイルしか見えませんでした。
(データファイルのパスに、「pdb2orcl」が含まれていることからわかります。)
[oracle@rac12c1 ~]$ sqlplus system/password@localhost/pdb2orcl
SQL*Plus: Release 12.1.0.1.0 Production on Wed Jul 3 02:18:47 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Last Successful login time: Tue Jul 02 2013 07:56:42 +09:00
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> show con_id
CON_ID
------------------------------
4

SQL> show con_name
CON_NAME
------------------------------
PDB2ORCL  ★2つめのPDBにログイン中。

SQL> col file_name for a60
SQL> select file_name from dba_data_files order by 1;
FILE_NAME
------------------------------------------------------------
/u01/app/oracle/oradata/orcl/pdb2orcl/pdb2orcl_users01.dbf
/u01/app/oracle/oradata/orcl/pdb2orcl/sysaux01.dbf
/u01/app/oracle/oradata/orcl/pdb2orcl/system01.dbf

SQL> select con_id,file_name from cdb_data_files order by 1,2;
    CON_ID FILE_NAME
---------- ------------------------------------------------------------
         4 /u01/app/oracle/oradata/orcl/pdb2orcl/pdb2orcl_users01.dbf
         4 /u01/app/oracle/oradata/orcl/pdb2orcl/sysaux01.dbf
         4 /u01/app/oracle/oradata/orcl/pdb2orcl/system01.dbf

CDBでも、それぞれのPDBでも、
ユーザ用の領域(USERSのような)だけでなく
システム用の領域(SYSTEM や SYSAUX)を持っているように見えます。
それぞれ、データファイルも別に用意されていました。

以上、PDBのデータファイル構成についてでした。

0 件のコメント:

コメントを投稿