今回は、Oracle VM Server(OVMS)で
Oracle Linux 6.x にコマンドライン「xm console」で接続する方法についてです。
Oracle Linux 6 では、
コンソール接続まわりの設定を
/etc/inittab ではなく、
/etc/init/serial.conf のあたりに記載するようになりました。
OVMS や Xen の Dom-0 からコマンドラインでゲスト OS に接続するときは
「xm console <VM名>」 または
「xm console <ID>」 としますが、この console 接続をする場合も
ゲストOS の Linux にコンソール設定が必要です。
2013年8月16日金曜日
2013年8月6日火曜日
Oracle Linux 6 マスター的な試験が開始されました。
最近、
Oracle Linux 6 Implementation Essentials (1Z0-460)
という試験の日本語版が開始されました。
この試験に合格すると、
Oracle Linux 6 Certified Implementation Specialist
に認定されます。
オラクル認定資格制度 サイトで
「テスト内容チェックリスト」 をみると、最近話題の機能からも出題されるようです。
勉強するときは、Oracle Linux 6 のマニュアルが参考になると思います。
http://docs.oracle.com/cd/E39368_01/index.html
肝心の、「Oracle Linux 6 Administrator's Guide」は
日本語版がほしいと思いました。
そして、さっそく腕試しに受験してきました。
感想
Oracle Linux 6 Implementation Essentials (1Z0-460)
という試験の日本語版が開始されました。
この試験に合格すると、
Oracle Linux 6 Certified Implementation Specialist
に認定されます。
Oracle Linux 6 Implementation Essentials
http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=5001&get_params=p_exam_id:1Z0-460&p_org_id=70&lang=JA
オラクル認定資格制度 サイトで
「テスト内容チェックリスト」 をみると、最近話題の機能からも出題されるようです。
- Redhat系Linuxの一般知識&操作
YUM/RPM、一般的な設定ファイルの知識、ネットワーク設定も大事そうな空気を感じる。 - UEK(Unbreakable Enterprise Kernel)
- Ksplice(OS無停止でのカーネルパッチ適用は便利そう。要プレミアムサポート。)
- btrfs、DTrace・・・
- cgroup は範囲外?
- さすがにLXC(OL6ではテクノロジプレビュー)は範囲外。
勉強するときは、Oracle Linux 6 のマニュアルが参考になると思います。
http://docs.oracle.com/cd/E39368_01/index.html
肝心の、「Oracle Linux 6 Administrator's Guide」は
日本語版がほしいと思いました。
そして、さっそく腕試しに受験してきました。
感想
- これは知ってないと…的なRedhat系Linux常識をいい感じに試せる試験だと思いました。
努力が報われる試験だと思うので、おすすめです。 - OracleLinux独自のカスタマイズ部分(追加要素的な)について
勉強になりました。
Redhatとの共通点/相違点的なところは知っておくとよいことがありそうです。(現場で…) - マニュアル「Oracle Linux 6 管理者ソリューション・ガイド」 が結構 参考になります。
そして結構読みやすいです。
以上、Oracle Linux 6 の認定資格の話でした。
2013年8月4日日曜日
uptime 850日のOracle VM サーバが こわれて悲しい。
最近、自宅のOracle VM Serverが壊れてしまいました。
毎日使っていたサーバ(というかPC)なので残念です。
今年の7月5日に たまたま取得していた xm uptime をみてみると、
850日以上、稼働していたことになります。(こわれたのは 7月22日)
さすが Oracle VM Server。安定している気がしました。
※こわれたのはHWの方でした。
原因はOptiPlexの故障(システムボードあたり?)で
気が付いたら電源が落ちていました。
ただ、DELL OptiPlex もだいぶ前に保守期間が切れていたので、
こちらも、もう十分、働いてくれたと思います。
今回の障害で思ったこと
ハードディスクには、とくに問題がなかったので
VMのイメージファイルを別のOVSにコピーするだけで、
VMは復旧できて、仮想化環境の便利さを体感しました。
が、
思った以上にいらないVMが動いていたことに、あらためて気づきました。
まさに、うちもそんな感じでした。
これを機会に、自宅環境はすべて Oracle VM 3 にしようかと思います。
Oracle Linux も古めなので、新しくしていこうと思います。
以上、さよならOptiPlex (1号機) …
毎日使っていたサーバ(というかPC)なので残念です。
- HV: Oracle VM server release 2.2.1
- HW: DELL OptiPlex 780(ただのパソコンです)
今年の7月5日に たまたま取得していた xm uptime をみてみると、
850日以上、稼働していたことになります。(こわれたのは 7月22日)
さすが Oracle VM Server。安定している気がしました。
※こわれたのはHWの方でした。
[root@ovs1 ~]# xm uptime
Name ID Uptime
131_OEL52_DB11g_GG1 178 581 days, 8:42:38
132_OEL52_DB11g_GG2 175 600 days, 18:18:05
146_OEL54_mgmt 4 837 days, 8:01:57
169_OEL48_cdev1 223 204 days, 8:35:33
186_OEL52_NWSTG1 149 648 days, 8:26:19
236_OEL52_zbx2 121 772 days, 18:42:07
237_OEL52_zba1 154 637 days, 9:11:42
238_OEL52_zba2 216 333 days, 15:24:47
254_OEL53_gw 150 643 days, 8:37:17
61_OEL53_DB11gR2_RAC1 224 117 days, 13:51:37
62_OEL53_DB11gR2_RAC2 225 68 days, 8:13:10
91_OEL54_sv1 212 340 days, 11:24:39
Domain-0 0 837 days, 10:50:04
原因はOptiPlexの故障(システムボードあたり?)で
気が付いたら電源が落ちていました。
ただ、DELL OptiPlex もだいぶ前に保守期間が切れていたので、
こちらも、もう十分、働いてくれたと思います。
今回の障害で思ったこと
ハードディスクには、とくに問題がなかったので
VMのイメージファイルを別のOVSにコピーするだけで、
VMは復旧できて、仮想化環境の便利さを体感しました。
が、
思った以上にいらないVMが動いていたことに、あらためて気づきました。
- 結局、どうしても必要だったVMは2つだけ(ルータ兼DNS、ファイルサーバ)。
DNSはけっこう重要。11gR2RACがあがらない・・・(SCAN登録してるので) - 面倒だったり、他サーバとの影響がわからなくて止められなかったVMが結構いる。
(というか殆ど。もう使っていないZabbixが何となく動いていたり…)
まさに、うちもそんな感じでした。
これを機会に、自宅環境はすべて Oracle VM 3 にしようかと思います。
Oracle Linux も古めなので、新しくしていこうと思います。
以上、さよならOptiPlex (1号機) …
2013年8月1日木曜日
PDBプラグイン後のアラートログを見てみる。
Oracle 12c のプラガブル・データベース(PDB)を
別のコンテナ・データベース(CDB)にプラグインしてみました。
PDB「pdb3orcl」をプラグインしています。
この時にエラーがでたので、ためしにアラートログを見てみました。
その時のアラートログです。
どうやら、PDBのデータファイルが以前のCDBでのファイル番号(file#)をもっていたので
エラーを出していたようです。
プラグイン先のCDBであらためてファイル番号を振りなおしているようで、
プラグイン後の処理自体は完了、成功しているようです。
ちなみに、アラートログの場所は、11gのころから変わりありません。
この環境は、 ORACLE_BASEが「/u01/app/oracle」、
CDB名が「oradb」(そしてDBインスタンス名もoradb)なので下記のようなファイル名でした。
※結構、一般的な構成だと思います。
/u01/app/oracle/diag/rdbms/oradb/oradb/trace/alert_oradb.log
以上、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にプラグインしてみます。
構成
CDBからアンプラグ
まず、ひとつめのCDB(CDB名:orcl)から、PDB(PDB名:pdb3orcl)をアンプラグします。
sqlplus で CDB「orcl」にログインします。
PDBを確認します。これからアンプラグするPDB「pdb3orcl」のCON_IDは 5 です。
赤字部分のデータファイルのファイルが、アンプラグ対象のPDBのものです。
PDB「pdb3orcl 」をクローズして、アンプラグします。
ファイルを Tar + GZIP で圧縮して、別のCDBがあるサーバへ転送します。
PDBのデータファイルとXMLファイルを、両方とも転送しておきます。
ふたつめのCDBにプラグイン
ふたつめのCDBがあるサーバで、PDBのデータファイルを展開します。
CDB「oradb」にログインします。
こちらのCDBには、いまはPDBが1つだけあります。
CDB「orcl」からもってきたPDB「pdb3orcl」をプラグインします。
データファイルのパスが、もともとの場所とは違うので、
「source_file_name_convert」で指定変更しています。
そして、すでにデータファイルが指定の場所にあるので「nocopy」をつけています。
一時表領域用のファイルも一緒にもってきたので、
「tempfile reuse」を指定して、ファイル(今回は「temp01.dbf」)を再利用します。
PDBをオープンします。
オープンするときにエラーがあったと警告が表示されています。
プラグインしたPDBのデータファイルを認識しなおす過程で発生したもので、
問題ないのではないかと思われます。
※念のためアラートログ確認を忘れずに。
v$pdbs をみると、PDB「pdb3orcl」が追加されていることがわかります。
CON_IDが 4 のデータファイル(赤字の部分)がプラグインしたものです。
プラグインしたファイルはこちらのCDBは、OMF(Oracle Managed Files)なので
移行元のCDBとは、ファイル名の感じが違います・・・
PDBへのログインもできます。
プラグイン先のCDBの方がPDB数が少なかったため、
CON_ID は減って 4 になりました。
以上、PDBを別のCDBへアンプラグ→プラグインしてみる話でした。
コンテナ・データベース(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をオープンしようとすると、エラーになります。
マニュアルより。アンプラグしたPDBは、drop だけできます。
以上、絵で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)に接続します。
クローン前の状態を確認しておきます。
クローン元のPDBを読み取り専用でオープンします。
クローンします。
読み取り専用にしていたクローン元のPDBを、オープンしなおします。
クローニングしたPDBを、オープンします。
PDBがクローンされました。
クローニングしたPDBのデータファイルが追加されました。
クローニングしたPDBのサービスも追加されました。
クローニングしたPDBに接続できました。
以上、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のクローニングでした。
登録:
投稿 (Atom)