ラベル PDB の投稿を表示しています。 すべての投稿を表示
ラベル PDB の投稿を表示しています。 すべての投稿を表示

2014年9月25日木曜日

Oracle 12c PDB の RAC での見え方。

何となくよく聞かれるのですが、
RAC 環境でも PDB を作成できます。
その場合、RAC のそれぞれの DB インスタンスから PDB が見えるようになります。

Oracle Database 12c の PDB は、RAC 環境ではこうなります。
今回は、2ノード RAC です。
[grid@dsva01 ~]$ crsctl stat res ora.rdgdb.db -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.rdgdb.db
      1        ONLINE  ONLINE       dsva01                   Open,STABLE
      2        ONLINE  ONLINE       dsva02                   Open,STABLE
--------------------------------------------------------------------------------

コンテナ DB(CDB)は1つで、DB サーバは 2ノードで、2 DB インスタンスです。
[oracle@dsva01 ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on 木 9月 25 08:45:24 2014
Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Advanced Analytics and Real Application Testing options
に接続されました。
SQL> col host_name for a10
SQL> select inst_id,host_name,instance_name,status from gv$instance;
   INST_ID HOST_NAME  INSTANCE_NAME    STATUS
---------- ---------- ---------------- ------------
         1 dsva01     rdgdb1           OPEN  ★2インスタンス
         2 dsva02     rdgdb2           OPEN
SQL> select inst_id,name,cdb,dbid from gv$database order by 1;
   INST_ID NAME      CDB       DBID
---------- --------- --- ----------
         1 RDGDB     YES 3513886885  ★CDBは1つ。DBID が同じ。
         2 RDGDB     YES 3513886885

PDB は、2つ作ってあります。
シード PDB (テンプレート用 PDB)も合わせると3つあります。
SQL> show pdbs
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 TESTDB1                        READ WRITE NO
         4 TESTDB2                        READ WRITE NO

それぞれの RAC ノードから、PDB が見えます。
DBID が同じ PDB が、インスタンス1 と 2 それぞれから見えています。
SQL> select inst_id,name,dbid from gv$pdbs order by 2,1;
   INST_ID NAME                                 DBID
---------- ------------------------------ ----------
         1 PDB$SEED                       1284832173
         2 PDB$SEED                       1284832173
         1 TESTDB1                         660856108
         2 TESTDB1                         660856108
         1 TESTDB2                         508821250
         2 TESTDB2                         508821250
6行が選択されました。

以上、RAC 環境での PDB の見え方でした。

2013年8月1日木曜日

PDBプラグイン後のアラートログを見てみる。

Oracle 12c のプラガブル・データベース(PDB)を
別のコンテナ・データベース(CDB)にプラグインしてみました。

PDB「pdb3orcl」をプラグインしています。
この時にエラーがでたので、ためしにアラートログを見てみました。
SQL> create pluggable database pdb3orcl
  2  using '/u02/dbdata/pdb3orcl.xml'
  3  source_file_name_convert = (
  4     '/u02/oradata/pdb3orcl/',
  5     '/u02/dbdata/pdb3orcl/'
  6  )
  7  nocopy
  8  tempfile reuse;

Pluggable database created.

SQL> alter pluggable database pdb3orcl open;

Warning: PDB altered with errors.

その時のアラートログです。
どうやら、PDBのデータファイルが以前のCDBでのファイル番号(file#)をもっていたので
エラーを出していたようです。
プラグイン先のCDBであらためてファイル番号を振りなおしているようで、
プラグイン後の処理自体は完了、成功しているようです。
Thu Aug 01 00:08:18 2013  ★アラートログに実行したSQLが出力されています。
create pluggable database pdb3orcl
using '/u02/dbdata/pdb3orcl.xml'
source_file_name_convert = (
   '/u02/oradata/pdb3orcl/',
   '/u02/dbdata/pdb3orcl/'
)
nocopy
tempfile reuse
Thu Aug 01 00:08:19 2013
****************************************************************
Pluggable Database PDB3ORCL with pdb id - 4 is created as UNUSABLE.
If any errors are encountered before the pdb is marked as NEW,
then the pdb must be dropped
****************************************************************
Deleting old file#33 from file$  ★プラグインしたPDBのデータファイルをいったん削除
Deleting old file#34 from file$
Deleting old file#35 from file$
Adding new file#11 to file$(old file#33)  ★あらためてファイル追加しなおしていいる
Adding new file#12 to file$(old file#34)
Adding new file#13 to file$(old file#35)
Successfully created internal service pdb3orcl at open  ★成功しています。
ALTER SYSTEM: Flushing buffer cache inst=0 container=4 local
****************************************************************
Post plug operations are now complete.
Pluggable database PDB3ORCL with pdb id - 4 is now marked as NEW.
****************************************************************
Completed: create pluggable database pdb3orcl  ★プラグイン完了しています。
using '/u02/dbdata/pdb3orcl.xml'
source_file_name_convert = (
   '/u02/oradata/pdb3orcl/',
   '/u02/dbdata/pdb3orcl/'
)
nocopy
tempfile reuse
alter pluggable database pdb3orcl open  ★PDBをオープンしています。
Thu Aug 01 00:09:14 2013
Pluggable database PDB3ORCL dictionary check beginning
Pluggable Database PDB3ORCL Dictionary check complete
Opening pdb PDB3ORCL (4) with no Resource Manager plan active

XDB installed.

XDB initialized.
Warning: Pluggable database PDB3ORCL altered with errors
              ★このメッセージはコンソール表示されていたエラーと同じものでしょう。
Pluggable database PDB3ORCL opened read write
Completed: alter pluggable database pdb3orcl open

ちなみに、アラートログの場所は、11gのころから変わりありません。
この環境は、 ORACLE_BASEが「/u01/app/oracle」、
CDB名が「oradb」(そしてDBインスタンス名もoradb)なので下記のようなファイル名でした。
※結構、一般的な構成だと思います。

/u01/app/oracle/diag/rdbms/oradb/oradb/trace/alert_oradb.log


以上、PDBプラグインした時のエラー表示についてでした。

Oracle 12c プラガブルDB(PDB)を別のCDBにアンプラグ→プラグインしてみる

今回は、Oracle DB 12c のプラガブル・データベース(PDB)を
コンテナ・データベース(CDB)からアンプラグして、
別のPDBにプラグインしてみます。

構成
  • アンプラグ→プラグインするPDB: pdb3orcl
  • アンプラグする元のCDB: orcl (サーバのホスト名は sv12c1 )
  • プラグインする先のCDB: oradb (サーバのホスト名は sv12c00 )
  • OSは、Oracle Linux Server release 6.2

CDBからアンプラグ

まず、ひとつめのCDB(CDB名:orcl)から、PDB(PDB名:pdb3orcl)をアンプラグします。

sqlplus で CDB「orcl」にログインします。
[oracle@sv12c1 ~]$ sqlplus sys/password@localhost/orcl as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Wed Jul 31 23:11:03 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.

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  ★CDBに接続しています。

SQL> col HOST_NAME for a10
SQL> select host_name,instance_name from v$instance;

HOST_NAME  INSTANCE_NAME
---------- ----------------
sv12c1    orcl  ★ひとつめのCDBです。

PDBを確認します。これからアンプラグするPDB「pdb3orcl」のCON_IDは 5 です。
SQL> col NAME for a10
SQL> select NAME,CON_ID,DBID,CON_UID from v$pdbs;

NAME           CON_ID       DBID    CON_UID
---------- ---------- ---------- ----------
PDB$SEED            2 4061795626 4061795626
PDBORCL             3 2266308759 2266308759
PDB2ORCL            4 3206526558 3206526558
PDB3ORCL            5 2588836665 2588836665

赤字部分のデータファイルのファイルが、アンプラグ対象のPDBのものです。
SQL> set pagesize 20
SQL> col NAME for a60
SQL> select con_id, name, status from v$datafile order by 1,2;

    CON_ID NAME                                                         STATUS
---------- ------------------------------------------------------------ -------
         1 /u01/app/oracle/oradata/orcl/sysaux01.dbf                    ONLINE
         1 /u01/app/oracle/oradata/orcl/system01.dbf                    SYSTEM
         1 /u01/app/oracle/oradata/orcl/undotbs01.dbf                   ONLINE
         1 /u01/app/oracle/oradata/orcl/users01.dbf                     ONLINE
         2 /u01/app/oracle/oradata/orcl/pdbseed/sysaux01.dbf            ONLINE
         2 /u01/app/oracle/oradata/orcl/pdbseed/system01.dbf            SYSTEM
         3 /u01/app/oracle/oradata/orcl/pdborcl/pdborcl_users01.dbf     ONLINE
         3 /u01/app/oracle/oradata/orcl/pdborcl/sysaux01.dbf            ONLINE
         3 /u01/app/oracle/oradata/orcl/pdborcl/system01.dbf            SYSTEM
         4 /u02/oradata/pdb2orcl/pdb2orcl_users01.dbf                   ONLINE
         4 /u02/oradata/pdb2orcl/sysaux01.dbf                           ONLINE
         4 /u02/oradata/pdb2orcl/system01.dbf                           SYSTEM
         5 /u02/oradata/pdb3orcl/pdb2orcl_users01.dbf                   ONLINE
         5 /u02/oradata/pdb3orcl/sysaux01.dbf                           ONLINE
         5 /u02/oradata/pdb3orcl/system01.dbf                           SYSTEM

15 rows selected.

PDB「pdb3orcl 」をクローズして、アンプラグします。
SQL> alter pluggable database pdb3orcl close;

Pluggable database altered.

SQL> alter pluggable database pdb3orcl
  2  unplug into '/u02/pdbxml/pdb3orcl.xml';

Pluggable database altered.

ファイルを Tar + GZIP で圧縮して、別のCDBがあるサーバへ転送します。
PDBのデータファイルとXMLファイルを、両方とも転送しておきます。
[oracle@sv12c1 ~]$ cd /u02/oradata/
[oracle@sv12c1 oradata]$ ls -lh pdb3orcl
合計 976M
-rw-r----- 1 oracle oinstall 5.1M  7月 31 23:17 2013 pdb2orcl_users01.dbf
-rw-r----- 1 oracle oinstall 701M  7月 31 23:17 2013 sysaux01.dbf
-rw-r----- 1 oracle oinstall 271M  7月 31 23:17 2013 system01.dbf
-rw-r----- 1 oracle oinstall  21M  7月 31 14:00 2013 temp01.dbf
[oracle@sv12c1 oradata]$ tar zcvf pdb3orcl.tgz pdb3orcl
pdb3orcl/
pdb3orcl/pdb2orcl_users01.dbf
pdb3orcl/system01.dbf
pdb3orcl/sysaux01.dbf
pdb3orcl/temp01.dbf


[oracle@sv12c1 oradata]$ scp pdb3orcl.tgz /u02/pdbxml/pdb3orcl.xml  sv12c00:/u02/dbdata/
oracle@sv12c00's password:
pdb3orcl.tgz                                             100%  196MB  48.9MB/s   00:04
pdb3orcl.xml                                             100% 3979     3.9KB/s   00:00


ふたつめのCDBにプラグイン

ふたつめのCDBがあるサーバで、PDBのデータファイルを展開します。
[oracle@sv12c00 ~]$ cd /u02/dbdata/
[oracle@sv12c00 dbdata]$ tar zxvf pdb3orcl.tgz
pdb3orcl/
pdb3orcl/pdb2orcl_users01.dbf
pdb3orcl/system01.dbf
pdb3orcl/sysaux01.dbf
pdb3orcl/temp01.dbf

CDB「oradb」にログインします。
[oracle@sv12c00 ~]$ sqlplus sys/password@localhost/oradb as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Wed Jul 31 23:57:10 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.

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  ★CDBにログインしています
SQL> col HOST_NAME for a10
SQL> select host_name,instance_name from v$instance;

HOST_NAME  INSTANCE_NAME
---------- ----------------
sv12c00    oradb  ★ふたつめのCDBです。

こちらのCDBには、いまはPDBが1つだけあります。
SQL> col NAME for a10
SQL> select NAME,CON_ID,DBID,CON_UID from v$pdbs;

NAME           CON_ID       DBID    CON_UID
---------- ---------- ---------- ----------
PDB$SEED            2 4064016361 4064016361
PDB1                3 3329097605 3329097605

CDB「orcl」からもってきたPDB「pdb3orcl」をプラグインします。

データファイルのパスが、もともとの場所とは違うので、
source_file_name_convert」で指定変更しています。
そして、すでにデータファイルが指定の場所にあるので「nocopy」をつけています。

一時表領域用のファイルも一緒にもってきたので、
tempfile reuse」を指定して、ファイル(今回は「temp01.dbf」)を再利用します。
SQL> create pluggable database pdb3orcl
  2  using '/u02/dbdata/pdb3orcl.xml'
  3  source_file_name_convert = (
  4     '/u02/oradata/pdb3orcl/',
  5     '/u02/dbdata/pdb3orcl/'
  6  )
  7  nocopy
  8  tempfile reuse;

Pluggable database created.

PDBをオープンします。
オープンするときにエラーがあったと警告が表示されています。
プラグインしたPDBのデータファイルを認識しなおす過程で発生したもので、
問題ないのではないかと思われます。
※念のためアラートログ確認を忘れずに。

v$pdbs をみると、PDB「pdb3orcl」が追加されていることがわかります。

SQL> alter pluggable database pdb3orcl open;

Warning: PDB altered with errors.

SQL> col NAME for a10
SQL> select NAME,CON_ID,DBID,CON_UID from v$pdbs;

NAME           CON_ID       DBID    CON_UID
---------- ---------- ---------- ----------
PDB$SEED            2 4064016361 4064016361
PDB1                3 3329097605 3329097605
PDB3ORCL            4 2588836665 2588836665

CON_IDが 4 のデータファイル(赤字の部分)がプラグインしたものです。
プラグインしたファイルはこちらのCDBは、OMF(Oracle Managed Files)なので
移行元のCDBとは、ファイル名の感じが違います・・・
SQL> set pagesize 40
SQL> col NAME for a45
SQL> select con_id, name, status from v$datafile order by 1,2;

    CON_ID NAME                                          STATUS
---------- --------------------------------------------- -------
         1 /u01/app/oracle/oradata/ORADB/datafile/o1_mf_ ONLINE
           sysaux_8yr7b481_.dbf
         1 /u01/app/oracle/oradata/ORADB/datafile/o1_mf_ SYSTEM
           system_8yr7dhjw_.dbf
         1 /u01/app/oracle/oradata/ORADB/datafile/o1_mf_ ONLINE
           undotbs1_8yr7h5to_.dbf
         1 /u01/app/oracle/oradata/ORADB/datafile/o1_mf_ ONLINE
           users_8yr7h4sn_.dbf
         2 /u01/app/oracle/oradata/ORADB/datafile/o1_mf_ ONLINE
           sysaux_8yr7jmkf_.dbf
         2 /u01/app/oracle/oradata/ORADB/datafile/o1_mf_ SYSTEM
           system_8yr7jmko_.dbf
         3 /u01/app/oracle/oradata/ORADB/E20A461FD170438 ONLINE
           DE0438C04A8C0ED68/datafile/o1_mf_sysaux_8yr85
           pb5_.dbf
         3 /u01/app/oracle/oradata/ORADB/E20A461FD170438 SYSTEM
           DE0438C04A8C0ED68/datafile/o1_mf_system_8yr85
           pfw_.dbf
         3 /u01/app/oracle/oradata/ORADB/E20A461FD170438 ONLINE
           DE0438C04A8C0ED68/datafile/o1_mf_users_8yr87p
           0f_.dbf
         4 /u02/dbdata/pdb3orcl/pdb2orcl_users01.dbf     ONLINE
         4 /u02/dbdata/pdb3orcl/sysaux01.dbf             ONLINE
         4 /u02/dbdata/pdb3orcl/system01.dbf             SYSTEM

12 rows selected.

PDBへのログインもできます。
プラグイン先のCDBの方がPDB数が少なかったため、
CON_ID は減って 4 になりました。

SQL> conn system/password@localhost/pdb3orcl
Connected.
SQL> show con_name

CON_NAME
------------------------------
PDB3ORCL ★プラグインしたPDBにログインしている。
SQL> show con_id
CON_ID
------------------------------
4

以上、PDBを別のCDBへアンプラグ→プラグインしてみる話でした。

2013年7月30日火曜日

OracleDB 12c 絵でPDB

ひさびさに、絵的なポストをしてみます。
Oracle DB 12c のプラガブルデータベース(PDB)です。


Oracle DB 12c から、プラガブル・データベースという仕組みができました。通称、PDBです。
コンテナ・データベース(CDB)に、いくつもPDBをプラグインすることができます。

CDBと、PDBは、それぞれ別のデータファイルを持ちます。



CDBには、PDBをプラグインすることができます。
新しいPDBを作成することもできますし、
他のコンテナで作成したPDBを外して(アンプラグして)もってきて、
プラグインすることもできます。



PDBは、それぞれ個別にクローズしたり、オープンしたりすることができます。
クローズしたPDBは、CDBから「アンプラグ」することができます。
PDBをアンプラグするとき、PDBの構成情報をXMLファイルに保存します。



アンプラグしたPDBを、別のCDBに「プラグイン」できます。
プラグインするときは、「plugin~」ではなく、「create pluggable database」です。

そのとき、アンプラグしたときに保存したXMLファイルを使用します。


クローズしただけのPDBは、再びオープンすることができますが、
アンプラグしたPDBは、もとのCDBではオープンできません。
いちど削除してあらためてプラグインすると、使用できるようになります。


PDBは一度 unplugするとOpenできない?

いちどアンプラグしたPDBは、そのままではオープンもクローズもできなくなります。

そのまま、もとのCDBで使用したい時は、
いったんアンプラグしたPDBを 削除(drop pluggable database) して、プラグインすると使用できます。
再びPDBをプラグインしたいときも、「create pluggable database」します。
※削除するとき、まちがってデータファイルを一緒に消さないように注意。

アンプラグしたPDBをオープンしようとすると、エラーになります。
SQL> alter pluggable database pdb2orcl
  2  unplug into '/u02/pdbxml/pdb2orcl.xml';

Pluggable database altered.

SQL> alter pluggable database pdb2orcl open;
alter pluggable database pdb2orcl open
*
ERROR at line 1:
ORA-65086: cannot open/close the pluggable database

マニュアルより。アンプラグしたPDBは、drop だけできます。
Oracle Database Error Messages
12c Release 1 (12.1)
http://docs.oracle.com/cd/E16655_01/server.121/e26079/e60000.htm
ORA-65086: cannot open/close the pluggable database
Cause: The pluggable database has been unplugged.
Action: The pluggable database can only be dropped.

以上、絵でPDBでした。

2013年7月28日日曜日

Oracle 12c プラガブルDB(PDB)をクローンしてみる

Oracle 12c のプラガブルDB(PDB)を、クローニングしてみました。

環境

OS: Oracle Linux Server release 6.2
DB: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0
    CDB名: orcl
        PDB1: pdborcl
        PDB2: pdb2orcl  ★このPDBを「pdb3orcl」としてクローニングします。

手順

まずコンテナDB(CDB)に接続します。
[oracle@sv12c1 ~]$ sqlplus sys/password@localhost/orcl as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Sun Jul 28 14:05:42 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.

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  ★CDBに接続している

クローン前の状態を確認しておきます。
SQL> col NAME for a10
SQL> select NAME,CON_ID,DBID,CON_UID,GUID from v$pdbs;

NAME           CON_ID       DBID    CON_UID GUID
---------- ---------- ---------- ---------- --------------------------------
PDB$SEED            2 4061795626 4061795626 E018B7BF835F1D45E043B505A8C05DDA
PDBORCL             3 2266308759 2266308759 E018DCC0D76D1FF1E043B505A8C0FC1F
PDB2ORCL            4 3206526558 3206526558 E075165AF1027BCCE043B505A8C08729
★クローン前のPDB一覧です。

SQL> set pagesize 15
SQL> col NAME for a60
SQL> select con_id, name, status from v$datafile order by 1,2;

    CON_ID NAME                                                         STATUS
---------- ------------------------------------------------------------ -------
         1 /u01/app/oracle/oradata/orcl/sysaux01.dbf                    ONLINE
         1 /u01/app/oracle/oradata/orcl/system01.dbf                    SYSTEM
         1 /u01/app/oracle/oradata/orcl/undotbs01.dbf                   ONLINE
         1 /u01/app/oracle/oradata/orcl/users01.dbf                     ONLINE
         2 /u01/app/oracle/oradata/orcl/pdbseed/sysaux01.dbf            ONLINE
         2 /u01/app/oracle/oradata/orcl/pdbseed/system01.dbf            SYSTEM
         3 /u01/app/oracle/oradata/orcl/pdborcl/pdborcl_users01.dbf     ONLINE
         3 /u01/app/oracle/oradata/orcl/pdborcl/sysaux01.dbf            ONLINE
         3 /u01/app/oracle/oradata/orcl/pdborcl/system01.dbf            SYSTEM
         4 /u02/oradata/pdb2orcl/pdb2orcl_users01.dbf                   ONLINE
         4 /u02/oradata/pdb2orcl/sysaux01.dbf                           ONLINE
         4 /u02/oradata/pdb2orcl/system01.dbf                           SYSTEM

12 rows selected.  ★クローン前のデータファイル一覧です。

SQL> col NAME for a15
SQL> col NETWORK_NAME for a15
SQL> col PDB for a10
SQL> select SERVICE_ID,CON_ID,NAME,PDB,NETWORK_NAME from CDB_SERVICES order by 1,2;

SERVICE_ID     CON_ID NAME            PDB        NETWORK_NAME
---------- ---------- --------------- ---------- ---------------
         1          1 SYS$BACKGROUND  CDB$ROOT
         2          1 SYS$USERS       CDB$ROOT
         5          1 orclXDB         CDB$ROOT   orclXDB
         6          1 orcl            CDB$ROOT   orcl
         6          3 pdborcl         PDBORCL    pdborcl
         7          4 pdb2orcl        PDB2ORCL   pdb2orcl

6 rows selected.  ★クローン前のPDBサービス一覧です。


クローン元のPDBを読み取り専用でオープンします。
SQL> alter pluggable database pdb2orcl close;

Pluggable database altered.

SQL> alter pluggable database pdb2orcl open read only;

Pluggable database altered.

クローンします。
SQL> create pluggable database pdb3orcl from pdb2orcl
  2  file_name_convert = (
  3    '/u02/oradata/pdb2orcl/',
  4    '/u02/oradata/pdb3orcl/'
  5  )
  6  path_prefix = '/u02/oradata/pdb3orcl';

Pluggable database created.

読み取り専用にしていたクローン元のPDBを、オープンしなおします。
SQL> alter pluggable database pdb2orcl close;

Pluggable database altered.

SQL> alter pluggable database pdb2orcl open;

Pluggable database altered.

クローニングしたPDBを、オープンします。
SQL> alter pluggable database pdb3orcl open;

Pluggable database altered.

PDBがクローンされました。
SQL> col NAME for a10
SQL> select NAME,CON_ID,DBID,CON_UID,GUID from v$pdbs;

NAME           CON_ID       DBID    CON_UID GUID
---------- ---------- ---------- ---------- --------------------------------
PDB$SEED            2 4061795626 4061795626 E018B7BF835F1D45E043B505A8C05DDA
PDBORCL             3 2266308759 2266308759 E018DCC0D76D1FF1E043B505A8C0FC1F
PDB2ORCL            4 3206526558 3206526558 E075165AF1027BCCE043B505A8C08729
PDB3ORCL            5 2588836665 2588836665 E28C5FA5B84E7396E043B505A8C0D0A9

クローニングしたPDBのデータファイルが追加されました。
SQL> set pagesize 20
SQL> col NAME for a60
SQL> select con_id, name, status from v$datafile order by 1,2;

    CON_ID NAME                                                         STATUS
---------- ------------------------------------------------------------ -------
         1 /u01/app/oracle/oradata/orcl/sysaux01.dbf                    ONLINE
         1 /u01/app/oracle/oradata/orcl/system01.dbf                    SYSTEM
         1 /u01/app/oracle/oradata/orcl/undotbs01.dbf                   ONLINE
         1 /u01/app/oracle/oradata/orcl/users01.dbf                     ONLINE
         2 /u01/app/oracle/oradata/orcl/pdbseed/sysaux01.dbf            ONLINE
         2 /u01/app/oracle/oradata/orcl/pdbseed/system01.dbf            SYSTEM
         3 /u01/app/oracle/oradata/orcl/pdborcl/pdborcl_users01.dbf     ONLINE
         3 /u01/app/oracle/oradata/orcl/pdborcl/sysaux01.dbf            ONLINE
         3 /u01/app/oracle/oradata/orcl/pdborcl/system01.dbf            SYSTEM
         4 /u02/oradata/pdb2orcl/pdb2orcl_users01.dbf                   ONLINE
         4 /u02/oradata/pdb2orcl/sysaux01.dbf                           ONLINE
         4 /u02/oradata/pdb2orcl/system01.dbf                           SYSTEM
         5 /u02/oradata/pdb3orcl/pdb2orcl_users01.dbf                   ONLINE
         5 /u02/oradata/pdb3orcl/sysaux01.dbf                           ONLINE
         5 /u02/oradata/pdb3orcl/system01.dbf                           SYSTEM

15 rows selected.

クローニングしたPDBのサービスも追加されました。
SQL> col NAME for a15
SQL> col NETWORK_NAME for a15
SQL> col PDB for a10
SQL> select SERVICE_ID,CON_ID,NAME,PDB,NETWORK_NAME from CDB_SERVICES order by 1,2;

SERVICE_ID     CON_ID NAME            PDB        NETWORK_NAME
---------- ---------- --------------- ---------- ---------------
         1          1 SYS$BACKGROUND  CDB$ROOT
         2          1 SYS$USERS       CDB$ROOT
         5          1 orclXDB         CDB$ROOT   orclXDB
         6          1 orcl            CDB$ROOT   orcl
         6          3 pdborcl         PDBORCL    pdborcl
         7          4 pdb2orcl        PDB2ORCL   pdb2orcl
         8          5 pdb3orcl        PDB3ORCL   pdb3orcl

7 rows selected.

クローニングしたPDBに接続できました。
SQL> conn system/password@localhost/pdb3orcl
Connected.
SQL> show con_name

CON_NAME
------------------------------
PDB3ORCL

以上、PDBのクローニングでした。

2013年7月21日日曜日

Oracle 12c プラガブルDB(PDB)をサーバ内でアンプラグ→プラグインしてみる

Oracle 12c のプラガブルDB(PDB)を、
同じサーバ内でアンプラグ(切断)→プラグ(再接続)してみました。

環境

OS: Oracle Linux Server release 6.2
DB: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0
    CDB名: orcl
        PDB1: pdborcl
        PDB2: pdb2orcl  ★このPDBをアンプラグ→プラグインします。
          ついでに、PDBの場所(データファイルのパス)を変更してみます。
           /u01/app/oracle/oradata/orcl/pdb2orcl/*.dbf
           ↓
           /u02/oradata/pdb2orcl/*.dbf


手順

PDBをアンプラグするときにXMLファイルを作成するので、
事前にディレクトリを作成しておきます。
[root@sv12c1 ~]# mkdir /u02/pdbxml
[root@sv12c1 ~]# chown oracle:dba /u02/pdbxml

コンテナデータベース(CDB)にログインします。
[oracle@sv12c1 ~]$ sqlplus sys/password@localhost/orcl as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Sat Jul 20 23:12:29 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.

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  ★CDBにログインしました

SQL> set pagesize 15
SQL> col NAME for a60
SQL> select con_id,name,status from v$datafile order by 1,2;
    CON_ID NAME                                                         STATUS
---------- ------------------------------------------------------------ -------
         1 /u01/app/oracle/oradata/orcl/sysaux01.dbf                    ONLINE
         1 /u01/app/oracle/oradata/orcl/system01.dbf                    SYSTEM
         1 /u01/app/oracle/oradata/orcl/undotbs01.dbf                   ONLINE
         1 /u01/app/oracle/oradata/orcl/users01.dbf                     ONLINE
         2 /u01/app/oracle/oradata/orcl/pdbseed/sysaux01.dbf            ONLINE
         2 /u01/app/oracle/oradata/orcl/pdbseed/system01.dbf            SYSTEM
         3 /u01/app/oracle/oradata/orcl/pdborcl/pdborcl_users01.dbf     ONLINE
         3 /u01/app/oracle/oradata/orcl/pdborcl/sysaux01.dbf            ONLINE
         3 /u01/app/oracle/oradata/orcl/pdborcl/system01.dbf            SYSTEM
         4 /u01/app/oracle/oradata/orcl/pdb2orcl/pdb2orcl_users01.dbf   ONLINE
         4 /u01/app/oracle/oradata/orcl/pdb2orcl/sysaux01.dbf           ONLINE
         4 /u01/app/oracle/oradata/orcl/pdb2orcl/system01.dbf           SYSTEM
12 rows selected.

SQL> col NAME for a10
SQL> select NAME,CON_ID,DBID,CON_UID,GUID from v$pdbs;
NAME           CON_ID       DBID    CON_UID GUID
---------- ---------- ---------- ---------- --------------------------------
PDB$SEED            2 4061795626 4061795626 E018B7BF835F1D45E043B505A8C05DDA
PDBORCL             3 2266308759 2266308759 E018DCC0D76D1FF1E043B505A8C0FC1F
PDB2ORCL            4 3206526558 3206526558 E075165AF1027BCCE043B505A8C08729

SQL> col NAME for a15
SQL> col NETWORK_NAME for a15
SQL> col PDB for a10
SQL> select SERVICE_ID,CON_ID,NAME,PDB,NETWORK_NAME from CDB_SERVICES order by 1,2;
SERVICE_ID     CON_ID NAME            PDB        NETWORK_NAME
---------- ---------- --------------- ---------- ---------------
         1          1 SYS$BACKGROUND  CDB$ROOT
         2          1 SYS$USERS       CDB$ROOT
         5          1 orclXDB         CDB$ROOT   orclXDB
         6          1 orcl            CDB$ROOT   orcl
         6          3 pdborcl         PDBORCL    pdborcl
         7          4 pdb2orcl        PDB2ORCL   pdb2orcl
6 rows selected.

まず、アンプラグするPDB(pdb2orcl)をクローズしておきます。
SQL> alter pluggable database pdb2orcl close;
Pluggable database altered.

PDBをアンプラグします。
指定したXMLファイルに、PDBの構成情報が出力されます。
SQL> alter pluggable database pdb2orcl
  2  unplug into '/u02/pdbxml/pdb2orcl.xml';
Pluggable database altered.

アンプラグしたPDBを、同じ名前でプラグインするため
一度CDBからPDBを削除(DROP)します。
あとでプラグインするときに使用するため、このとき
PDBのデータファイルは削除しない(「including datafiles」を指定しない)ようにします。
SQL> drop pluggable database pdb2orcl;
Pluggable database dropped.

PDBをプラグインします。
実際は、アンプラグするときに作成したXMLファイルをもとに、
もう一度PDBを作成(create pluggable database)します。
「file_name_convert」 を指定すると、PDBのデータファイルが新しい場所にコピーされます。
※すでにデータファイルを新しい場所に配置してある場合は「nocopy」を指定します。
SQL> create pluggable database pdb2orcl
  2  using '/u02/pdbxml/pdb2orcl.xml'
  3  file_name_convert = (
  4   '/u01/app/oracle/oradata/orcl/pdb2orcl/',
  5   '/u02/oradata/pdb2orcl/'
  6  );
Pluggable database created.

PDBをオープンします。
これで、PDBにログインできるようになります。
SQL> alter pluggable database pdb2orcl open;
Pluggable database altered.

確認

プラグインしたPDBのデータファイルのパスが変更されました。
SQL> set pagesize 15
SQL> col NAME for a60
SQL> select con_id, name, status from v$datafile order by 1,2;
    CON_ID NAME                                                         STATUS
---------- ------------------------------------------------------------ -------
         1 /u01/app/oracle/oradata/orcl/sysaux01.dbf                    ONLINE
         1 /u01/app/oracle/oradata/orcl/system01.dbf                    SYSTEM
         1 /u01/app/oracle/oradata/orcl/undotbs01.dbf                   ONLINE
         1 /u01/app/oracle/oradata/orcl/users01.dbf                     ONLINE
         2 /u01/app/oracle/oradata/orcl/pdbseed/sysaux01.dbf            ONLINE
         2 /u01/app/oracle/oradata/orcl/pdbseed/system01.dbf            SYSTEM
         3 /u01/app/oracle/oradata/orcl/pdborcl/pdborcl_users01.dbf     ONLINE
         3 /u01/app/oracle/oradata/orcl/pdborcl/sysaux01.dbf            ONLINE
         3 /u01/app/oracle/oradata/orcl/pdborcl/system01.dbf            SYSTEM
         4 /u02/oradata/pdb2orcl/pdb2orcl_users01.dbf                   ONLINE
         4 /u02/oradata/pdb2orcl/sysaux01.dbf                           ONLINE
         4 /u02/oradata/pdb2orcl/system01.dbf                           SYSTEM
12 rows selected.

データファイルは、create pluggable database の処理の中でコピーされました。
元の場所にも、データファイルは残っていました。
SQL> ! ls -lh /u01/app/oracle/oradata/orcl/pdb2orcl
合計 966M ★元の場所にもデータファイルが残っている。
-rw-r----- 1 oracle oinstall 5.1M  7月 21 14:33 2013 pdb2orcl_users01.dbf
-rw-r----- 1 oracle oinstall 691M  7月 21 14:33 2013 sysaux01.dbf
-rw-r----- 1 oracle oinstall 271M  7月 21 14:33 2013 system01.dbf

SQL> ! ls -lh /u02/oradata/pdb2orcl
合計 966M ★新たにプラグインしたPDBのデータファイル。
-rw-r----- 1 oracle oinstall 5.1M  7月 21 14:40 2013 pdb2orcl_users01.dbf
-rw-r----- 1 oracle oinstall 691M  7月 21 15:15 2013 sysaux01.dbf
-rw-r----- 1 oracle oinstall 271M  7月 21 15:15 2013 system01.dbf
-rw-r----- 1 oracle oinstall  21M  7月 21 15:00 2013 temp01.dbf

プラグインしたPDBのDBIDやGUIDは変わらないようです。
PDBをオープン(alter pluggable database ~open)することで、
CDB_SERVICES に追加されました。
SQL> col NAME for a10
SQL> select NAME,CON_ID,DBID,CON_UID,GUID from v$pdbs;
NAME           CON_ID       DBID    CON_UID GUID

---------- ---------- ---------- ---------- --------------------------------

PDB$SEED            2 4061795626 4061795626 E018B7BF835F1D45E043B505A8C05DDA
PDBORCL             3 2266308759 2266308759 E018DCC0D76D1FF1E043B505A8C0FC1F
PDB2ORCL            4 3206526558 3206526558 E075165AF1027BCCE043B505A8C08729

SQL> col NAME for a15
SQL> col NETWORK_NAME for a15
SQL> col PDB for a10
SQL> select SERVICE_ID,CON_ID,NAME,PDB,NETWORK_NAME from CDB_SERVICES order by 1,2;
SERVICE_ID     CON_ID NAME            PDB        NETWORK_NAME

---------- ---------- --------------- ---------- ---------------

         1          1 SYS$BACKGROUND  CDB$ROOT
         2          1 SYS$USERS       CDB$ROOT
         5          1 orclXDB         CDB$ROOT   orclXDB
         6          1 orcl            CDB$ROOT   orcl
         6          3 pdborcl         PDBORCL    pdborcl
         7          4 pdb2orcl        PDB2ORCL   pdb2orcl
6 rows selected.

プラグインしたPDBに接続できました。
SQL> conn system/password@localhost/pdb2orcl
Connected.

SQL> show con_name
CON_NAME
------------------------------
PDB2ORCL

以上、PDBのアンプラグとプラグインでした。

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ログファイルでした。

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のデータファイル構成についてでした。

2013年7月2日火曜日

Oracle 12c プラガブル・データベースにsqlplusで接続してみた。

Oracle 12c のプラガブル・データベースがどのように見えるのか気になったので
ためしに、作成したプラガブル・データベース(PDB)にsqlplusで接続してみました。


今回の構成は、下記のように、
1つのコンテナ・データベース(CDB)に
2つのプラガブル・データベースが接続されています。

コンテナ・データベース: CDB$ROOT
                |-- プラガブル・データベース1: PDBORCL
                |-- プラガブル・データベース2: PDB2ORCL

※ホスト名はRACっぽいですが、シングル構成です


まず、1つめのPDB「pdborcl」に接続して、DBユーザとテーブル作成してみます。
[oracle@rac12c1 ~]$ sqlplus system/password@localhost/pdborcl
SQL*Plus: Release 12.1.0.1.0 Production on Tue Jul 2 07:38:37 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Last Successful login time: Tue Jul 02 2013 07:31:06 +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  ★PDB「PDBORCL」にログインしている。

SQL> create user TEST_PDBORCL identified by pass_word;
User created.

SQL> grant connect,resource to TEST_PDBORCL;
Grant succeeded.

SQL> select username from dba_users where username = 'TEST_PDBORCL';
USERNAME
--------------------------------------------------------------------------------
TEST_PDBORCL

SQL> create table TEST_PDBORCL.TAB_PDBORCL(col1 varchar2(10));
Table created.
SQL> select table_name from dba_tables where table_name = 'TAB_PDBORCL';
TABLE_NAME
--------------------------------------------------------------------------------
TAB_PDBORCL

2つめのPDB「pdb2orcl」にsqlplus接続してみました。
1つめのPDBで作成したDBユーザとテーブルは、2つめのPDBからは見えません。
[oracle@rac12c1 ~]$ sqlplus system/password@localhost/pdb2orcl
SQL*Plus: Release 12.1.0.1.0 Production on Tue Jul 2 07:49:52 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Last Successful login time: Tue Jul 02 2013 07:19:29 +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 username from dba_users where username = 'TEST_PDBORCL';
no rows selected    ★他のPDBで作成したDBユーザは見えていない

SQL> select table_name from dba_tables where table_name = 'TAB_PDBORCL';
no rows selected    ★他のPDBで作成したテーブルは見えていない

コンテナ・データベース(CDB$ROOT)に接続しても、PDBで作成したDBユーザとテーブルは見えません。
[oracle@rac12c1 ~]$ sqlplus system/password@localhost/orcl
SQL*Plus: Release 12.1.0.1.0 Production on Tue Jul 2 07:58:38 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Last Successful login time: Tue Jul 02 2013 07:32:05 +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 username from dba_users where username = 'TEST_PDBORCL';
no rows selected    ★PDBで作成したDBユーザは見えていない

SQL> select table_name from dba_tables where table_name = 'TAB_PDBORCL';
no rows selected    ★PDBで作成したテーブルは見えていない

以上、ためしにプラガブル・データベースに接続してみました。

2013年7月1日月曜日

Oracle 12c のDBCAでプラガブル・データベースを作成してみた。

さっそく、Oracle Database 12cのプラガブル・データベースをDBCAで作成してみました。

DBCAを起動すると、
「プラガブル・データベースの管理」 というメニューが追加されています。


「プラガブル・データベースの作成」をしてみます。


もともと作成していたコンテナ・データベース(CDB)の「orcl」 に
追加でプラガブル・データベースを作成します。


「新規プラガブル・データベースの作成」を選択します。


プラガブル・データベース名は「pdb2orcl」にしてみました。


確認画面です。


プラガブル・データベース作成中。


完了しました。


同時に、正常に接続されたという、プラガブルらしいメッセージが表示されます。


EM Expressでは、下記のように表示されます。
すでに作成ずみのプラガブル・データベース「pdborcl」も表示されています。
「orcl」というコンテナ・データベースに、
2つのプラガブル・データベース(pdborcl と pdb2orcl)が接続されています。


以上、DBCAでのプラガブル・データベースの作成でした。

2013年6月27日木曜日

とうとう Oracle Database 12c でました。

待望の Oracle Database 12c がDLできるようになりました。

http://www.oracle.com/technetwork/jp/database/enterprise-edition/downloads/index.html
日本語サイトでもDLできるようになったみたいです。

さっそくインストールしてみました。
いくつか気づいたことを・・・(以下、インストールのキャプチャをいくつか)

インストーラは 11g R2 と似ています。
うわさのプラガブル・データベースとして作成してみます。
「orcl」というコンテナ・データベースに、「pdborcl」というプラガブル・データベースを
作成しようとしています。


DBに付属する Enterprise Manager (旧 DB Control) は、
Enterprise Manager Database Express (通称EM Express ?)になりました。
Cloud Control(旧 Grid Control)への登録画面です。(今回はEM Expressにします)


インストール中に指定するOSシステムグループには、
「Data Guard管理者(OSDGDBA)」 などが追加されています。


EM Database Express のログイン画面です。
11g のときより、さらに青くなりました。


DB Expressの画面は、EM 12c Cloud Control に似ています。
勢いでホスト名に rac~などとつけてしまいましたが、今回はシングルインスタンスです。


画面の左側には、
CDB(1 PDBs)
= コンテナデータベースに1つのプラガブルデータベースがある
と見えます。

パフォーマンスチャートにも、
プラガブルデータベースの「PDB」タブが用意されています。



以上、Oracle 12c を試しにインストールしてみた話でした。
検証はぜひ Oracle VM で・・・