2013年7月15日月曜日

Oracle 12c プラガブル・データベースのRedoログファイル

Oracle 12c のコンテナ・データベース(CDB)とプラガブル・データベース(PDB)では、
Redoログファイルが共用されています。
今回は、sqlplusでDBインスタンスにログインして、Redoログファイルを見てみます。
DB構成は、前回と同様で、
CDB「orcl」に、PDB「pdborcl」と「pdb2orcl」が接続されています。

コンテナ・データベース: CDB$ROOT
                |-- プラガブル・データベース1: PDBORCL
                |-- プラガブル・データベース2: PDB2ORCL
※ホスト名はRACっぽいですが、シングル構成です

まず、PDBにログインしてRedoログファイルを見てみます。
[oracle@rac12c1 ~]$ sqlplus system/password@localhost/orcl
SQL*Plus: Release 12.1.0.1.0 Production on Mon Jul 15 14:56:11 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Last Successful login time: Fri Jul 05 2013 06:32: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_name
CON_NAME
------------------------------
CDB$ROOT

SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/redo03.log
/u01/app/oracle/oradata/orcl/redo02.log
/u01/app/oracle/oradata/orcl/redo01.log
SQL> select GROUP#,SEQUENCE#,FIRST_CHANGE# from v$log;

    GROUP#  SEQUENCE# FIRST_CHANGE#
---------- ---------- -------------
         1        109       3582405
         2        110       3597487
         3        108       3559411 

1つめのPDBに接続してRedoログファイルを見てみると、
CDBと同じファイルを使用していることがわかります。
[oracle@rac12c1 ~]$ sqlplus system/password@localhost/pdborcl
SQL*Plus: Release 12.1.0.1.0 Production on Mon Jul 15 14:58:02 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Last Successful login time: Mon Jul 15 2013 14:57:55 +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_name
CON_NAME
------------------------------
PDBORCL

SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/redo03.log  ★CDBと同じRedoログファイル
/u01/app/oracle/oradata/orcl/redo02.log
/u01/app/oracle/oradata/orcl/redo01.log

SQL> select GROUP#,SEQUENCE#,FIRST_CHANGE# from v$log;
    GROUP#  SEQUENCE# FIRST_CHANGE#
---------- ---------- -------------
         1        109       3582405
         2        110       3597487
         3        108       3559411

2つめのPDB(PDB2ORCL)に接続してRedoログファイルを見てみると、
1つめのPDBと同様に、CDBと同じファイルを使用しています。
[oracle@rac12c1 ~]$ sqlplus system/password@localhost/pdb2orcl
SQL*Plus: Release 12.1.0.1.0 Production on Mon Jul 15 14:58:42 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Last Successful login time: Mon Jul 15 2013 14:50:51 +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_name
CON_NAME
------------------------------
PDB2ORCL

SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/redo03.log
/u01/app/oracle/oradata/orcl/redo02.log
/u01/app/oracle/oradata/orcl/redo01.log

SQL> select GROUP#,SEQUENCE#,FIRST_CHANGE# from v$log;
    GROUP#  SEQUENCE# FIRST_CHANGE#
---------- ---------- -------------
         1        109       3582405
         2        110       3597487
         3        108       3559411

ためしに、Redoログの切り替えをPDBで実施してみたところ、エラーになってしまいました。
Redoログファイルの切り替えは、プラガブル・データベース側では許可されていません。
SQL> show con_name
CON_NAME
------------------------------
PDB2ORCL

SQL> alter system switch logfile;
alter system switch logfile
*
ERROR at line 1:
ORA-65040: operation not allowed from within a pluggable database

Redoログの切り替えは、CDBにログインして実行します。
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT

SQL> alter system switch logfile;
System altered.  ★CDB側では、ログ切り替えができた。

以上、CDBとPDBのRedoログファイルでした。

0 件のコメント:

コメントを投稿