2013年8月30日金曜日

RPMにセキュリティ対策やバグ修正がされているか確認する方法

RPMに対して、セキュリティ対策やバグ修正がされているか確認したい場合、
下記のようなコマンドでRPMのチェンジログ(変更履歴)を見るとわかることが多いです。
rpm -q --changelog <インストール済みRPM名>
rpm -qp --changelog <RPMファイル名(~.rpm)>

当然な話ですが
Oracle VM Server(OVS)もRed HatベースのLinuxなので、
インストールされているRPMのチェンジログがみられます。

ためしに、
OVSにインストールされているXenのRPMについてみてみます。
[root@ovs2 ~]# cat /etc/ovs-release
Oracle VM server release 3.2.1
[root@ovs2 ~]# rpm -qi xen
Name        : xen                          Relocations: (not relocatable)
Version     : 4.1.3                             Vendor: Oracle America
Release     : 25.el5                        Build Date: Thu 06 Dec 2012 02:15:11 AM JST
Install Date: Tue 12 Mar 2013 10:55:47 AM JST      Build Host: ca-build6.us.oracle.com
Group       : Development/Libraries         Source RPM: xen-4.1.3-25.el5.src.rpm
Size        : 12039258                         License: GPL
Signature   : DSA/SHA1, Thu 06 Dec 2012 02:15:36 AM JST, Key ID 66ced3de1e5e0159
URL         : http://xen.org/
Summary     : Xen is a virtual machine monitor
Description :
This package contains the Xen hypervisor and Xen tools, needed to
run virtual machines on x86 systems.

インストールされているXenのチェンジログは、こんな感じで見られます。
[root@ovs2 ~]# rpm -q --changelog xen
* Thu Dec 06 2012 Konrad Wilk <konrad.wilk@oracle.com> - 4.1.3-25
- Xen Security Advisory CVE-2012-5514 / XSA-30 (v4).
  aka. Broken error handling in guest_physmap_mark_populate_on_demand()
  The original checkin was using v1, which did not have the
  extra check for priviliged domains and the less verbose printk.
  This patch updates the xsa-30 to v4.
  ISSUE DESCRIPTION
  =================
  guest_physmap_mark_populate_on_demand(), before carrying out its actual
  operation, checks that the subject GFNs are not in use. If that check fails,
(以下略)

CVE-~のセキュリティ対策がされているかも記載されています。
[root@ovs2 ~]# rpm -q -changelog xen | grep CVE
- Xen Security Advisory CVE-2012-5514 / XSA-30 (v4).
  This is XSA-30 / CVE-2012-5514.
- Xen Security Advisory CVE-2012-5515 / XSA-31
  This is XSA-31 / CVE-2012-5515.
- Xen Security Advisory CVE-2012-5514 / XSA-30
  This is XSA-30 / CVE-2012-5514.
- Xen Security Advisory CVE-2012-5513 / XSA-29
  This is XSA-29 / CVE-2012-5513.
- Xen Security Advisory CVE-2012-5512 / XSA-28
  This is XSA-28 / CVE-2012-5512.
(以下略)

バグ修正についても記載されています。
たとえば、[bug 13845552] が修正済みか調べる場合は、
[root@ovs2 ~]# rpm -q -changelog xen | grep 13845552
- Correct stop xend return status [bug 13845552] ★修正されていそう
※このバグが特に重要というわけではありません。適当に1つ選びました。

脆弱性調査とかで、CVE番号やバグ番号(BZ#)などでgrepして見たりします。

以上、チェンジログ確認の話でした・・・

2013年8月29日木曜日

ためしにOracle 12c RAC をインストールしてみて(DB編)

12c RAC を構築してみました。

RACインストール~DB作成の流れで、いくつか気づいたことを
ピックアップしてお伝えします。(まだ12cRACは試行錯誤なので…)

11gR2以降のRAC環境を構築するとき、
ざっくり、下記のような作業が必要になると思います。
  1. Grid Infrastructureのインストール
  2. データベース配置用のASMディスクグループの作成(ASMCAなどで)
  3. DBMS(RAC)をインストール
  4. DBを作成(リスナーも作成)

今回の話は、上記 2~です。
基本的には、手順的にも、インストーラ(OUI)の見ため的にも
12cは、11gR2とそんなに変わらない感じでした。
Grid Infraの感想はこちら・・・
ためしにOracle 12c RAC をインストールしてみて(Grid Infrastructure)

ASMCAについて

ASMのディスクグループを作成したりすることができる、GUIツールです。
これも、11gのころとあまり変わっていない気がします。






RACインストールについて

Real Application Clustersデータベースのインストールです。



だんだん、ソフトウェアの必要領域が増えています…
RACの新機能を試したい場合は、Enterprise Editionを選択します。



RACデータベースも、Singleと変わらず、役割ごとに指定できるOSグループが増えました。
ただし、すべてのユーザを分けるのが必須というわけではありません。




RACのDB作成(DBCA)

11gR2~のポリシー管理型RACデータベースは、12cでもあります。



PDB(プラガブル・データベース)を作成できます。いくつ作成するかも選べます。
ただし、ここで複数のPDBを作成すると、PDB名の先頭が同じになります。



クラスタ検証ユーティリティ(CVU)が定期実行できそうです。
インストール時の環境チェックくらいにしか使わないツールだと思っていましたが…
予期しない構成変更とかを検知できるのでしょうか?



データベースファイルの配置についての設定です。
ここで Grid Infra 導入時に作成したディスクグループ以外を選ぶ場合は、
事前にディスクグループを作成しておきます。(ASMCAやsqlplusなどで)
従来通りですが・・・何となく。



DB Vault と Label Securityの設定画面もあります。
DBVaultは、DB管理者に対するアクセス制限をできるツールで、
Lavel Security は DB版SELinuxみたいなものではないかと思っています。
また使ったことがないので、違ったらすみません…





ためしに、3ノードRACです。
[grid@sv12c01 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.CRS_DG.dg
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.DATA_DG.dg
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.net1.network
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.ons
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.proxy_advm
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       sv12c02                  STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       sv12c03                  STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       sv12c01                  STABLE
ora.MGMTLSNR
      1        ONLINE  ONLINE       sv12c01                  169.254.198.145 192.
                                                             168.14.141,STABLE
ora.asm
      1        ONLINE  ONLINE       sv12c01                  STABLE
      2        ONLINE  ONLINE       sv12c02                  STABLE
      3        ONLINE  ONLINE       sv12c03                  STABLE
ora.cvu
      1        ONLINE  ONLINE       sv12c01                  STABLE
ora.mgmtdb
      1        ONLINE  ONLINE       sv12c01                  Open,STABLE
ora.oc4j
      1        ONLINE  ONLINE       sv12c01                  STABLE
ora.racdb.db
      1        ONLINE  ONLINE       sv12c03                  Open,STABLE
      2        ONLINE  ONLINE       sv12c02                  Open,STABLE
      3        ONLINE  ONLINE       sv12c01                  Open,STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       sv12c02                  STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       sv12c03                  STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       sv12c01                  STABLE
ora.sv12c01.vip
      1        ONLINE  ONLINE       sv12c01                  STABLE
ora.sv12c02.vip
      1        ONLINE  ONLINE       sv12c02                  STABLE
ora.sv12c03.vip
      1        ONLINE  ONLINE       sv12c03                  STABLE
--------------------------------------------------------------------------------

上記のora.racdb.dbリソースの順番が変なのは、ポリシーベースにしていろいろしていたら、
サーバ→インスタンスの対応がポリシーベースっぽくズレたためです。
SQL> col host_name for a10
SQL> select host_name,instance_name,status from gv$instance
  2  order by 1;

HOST_NAME  INSTANCE_NAME    STATUS
---------- ---------------- ------------
sv12c01    racdb_3          OPEN
sv12c02    racdb_2          OPEN
sv12c03    racdb_1          OPEN

ちなみに、これからRACの勉強をしたい場合は、現段階では
(12cよりは)情報が豊富な11gR2RACを題材としておくと良いのではないかと思いました。
11gR1→11gR2の時ほどの変化ではない&
しばらくはFlexでない従来形式のクラスタやASMが使われそうな気がしたので・・・

以上です。12cRACインストールしてみた話でした。

2013年8月23日金曜日

ためしにOracle 12c RAC をインストールしてみて(Grid Infrastructure)

ためしに、Grid Infrastructure 12c をインストールしてみました。
いくつか気づいたことをお伝えします。

Flex ASM 用のネットワークは、こんな感じで選択できます。
NICの用途選択画面で
ASMおよびプライベート」 と 「ASM」 という種類が増えていて、
Flex ASMにするにはどちらかを選択しておく必要があります。



上記のように選択した場合は、oifcfgコマンドでは下記のように見えます。
[grid@sv12c01 ~]$ oifcfg getif
eth0 192.168.4.0 global public
eth1 192.168.14.0 global cluster_interconnect
eth2 192.168.24.0 global asm

グリッド・インフラストラクチャ・管理リポジトリ
Grid Infrastructure管理用のインスタンス(-MGMTDB)が作成できます。



起動されるプロセスはこんな感じです。
[grid@sv12c01 ~]$ ps -ef | grep mdb_
grid 5201 1 0 19:41 ? 00:00:01 mdb_pmon_-MGMTDB
grid 5203 1 0 19:41 ? 00:00:01 mdb_psp0_-MGMTDB
grid 5207 1 1 19:41 ? 00:01:17 mdb_vktm_-MGMTDB
grid 5213 1 0 19:41 ? 00:00:00 mdb_gen0_-MGMTDB
grid 5215 1 0 19:41 ? 00:00:00 mdb_mman_-MGMTDB
grid 5219 1 0 19:41 ? 00:00:00 mdb_diag_-MGMTDB
grid 5221 1 0 19:41 ? 00:00:00 mdb_dbrm_-MGMTDB
grid 5223 1 0 19:41 ? 00:00:03 mdb_dia0_-MGMTDB
grid 5225 1 0 19:41 ? 00:00:00 mdb_dbw0_-MGMTDB
grid 5227 1 0 19:41 ? 00:00:01 mdb_lgwr_-MGMTDB
grid 5229 1 0 19:41 ? 00:00:02 mdb_ckpt_-MGMTDB
grid 5231 1 0 19:41 ? 00:00:00 mdb_lg00_-MGMTDB
grid 5233 1 0 19:41 ? 00:00:00 mdb_lg01_-MGMTDB
grid 5235 1 0 19:41 ? 00:00:00 mdb_smon_-MGMTDB
grid 5237 1 0 19:41 ? 00:00:00 mdb_lreg_-MGMTDB
grid 5239 1 0 19:41 ? 00:00:00 mdb_rbal_-MGMTDB
grid 5241 1 0 19:41 ? 00:00:00 mdb_asmb_-MGMTDB
grid 5243 1 0 19:41 ? 00:00:05 mdb_mmon_-MGMTDB
grid 5247 1 0 19:41 ? 00:00:02 mdb_mmnl_-MGMTDB
grid 5249 1 0 19:41 ? 00:00:00 mdb_d000_-MGMTDB
grid 5251 1 0 19:41 ? 00:00:00 mdb_s000_-MGMTDB
grid 5253 1 0 19:41 ? 00:00:00 mdb_mark_-MGMTDB
grid 5274 1 0 19:41 ? 00:00:00 mdb_tmon_-MGMTDB
grid 5276 1 0 19:41 ? 00:00:00 mdb_tt00_-MGMTDB
grid 5283 1 0 19:41 ? 00:00:00 mdb_smco_-MGMTDB
grid 5287 1 0 19:41 ? 00:00:00 mdb_fbda_-MGMTDB
grid 5291 1 0 19:41 ? 00:00:00 mdb_aqpc_-MGMTDB
grid 5295 1 0 19:41 ? 00:00:00 mdb_cjq0_-MGMTDB
grid 5308 1 0 19:41 ? 00:00:00 mdb_qm02_-MGMTDB
grid 5312 1 0 19:41 ? 00:00:00 mdb_q002_-MGMTDB
grid 5314 1 0 19:41 ? 00:00:00 mdb_q003_-MGMTDB
grid 5344 1 0 19:41 ? 00:00:00 mdb_p000_-MGMTDB
grid 5348 1 0 19:41 ? 00:00:00 mdb_p001_-MGMTDB
grid 5350 1 0 19:41 ? 00:00:00 mdb_p002_-MGMTDB
grid 5352 1 0 19:41 ? 00:00:00 mdb_p003_-MGMTDB
grid 5354 1 0 19:41 ? 00:00:00 mdb_p004_-MGMTDB
grid 5356 1 0 19:41 ? 00:00:00 mdb_p005_-MGMTDB
grid 5358 1 0 19:41 ? 00:00:00 mdb_p006_-MGMTDB
grid 5360 1 0 19:41 ? 00:00:00 mdb_p007_-MGMTDB
grid 10141 1 0 20:41 ? 00:00:03 mdb_o000_-MGMTDB
grid 10885 1 0 21:05 ? 00:00:00 mdb_w002_-MGMTDB
grid 11370 1 0 21:21 ? 00:00:00 mdb_w001_-MGMTDB
grid 11661 2040 0 21:31 pts/0 00:00:00 grep mdb_

「グリッド・インフラストラクチャ・管理リポジトリ」を作成した場合は、
Grid Infrastructureをインストールしただけですが
_mgmtdb用のデータファイルが作成されます。
※+CRS_DGというASMディスクグループ名はインストール中に指定しました。
[grid@sv12c01 ~]$ asmcmd ls -ls crs_dg/_mgmtdb/*
Type Redund Striped Time Sys Block_Size Blocks Bytes Space Name

+crs_dg/_mgmtdb/CONTROLFILE/:
CONTROLFILE UNPROT FINE AUG 21 19:00:00 Y 16384 613 10043392 16777216 Current.262.823332585

+crs_dg/_mgmtdb/DATAFILE/:
DATAFILE UNPROT COARSE AUG 23 05:00:00 Y 8192 56321 461381632 463470592 SYSAUX.258.823332327
DATAFILE UNPROT COARSE AUG 13 07:00:00 Y 8192 12801 104865792 106954752 SYSGRIDHOMEDATA.261.823332545
DATAFILE UNPROT COARSE AUG 13 07:00:00 Y 8192 262145 2147491840 2149580800 SYSMGMTDATA.260.823332441
DATAFILE UNPROT COARSE AUG 13 07:00:00 Y 8192 76801 629153792 631242752 SYSTEM.259.823332373
DATAFILE UNPROT COARSE AUG 13 07:00:00 Y 8192 7041 57679872 58720256 UNDOTBS1.257.823332303

+crs_dg/_mgmtdb/ONLINELOG/:
ONLINELOG UNPROT COARSE AUG 13 07:00:00 Y 512 102401 52429312 53477376 group_1.263.823332589
ONLINELOG UNPROT COARSE AUG 13 07:00:00 Y 512 102401 52429312 53477376 group_2.264.823332591
ONLINELOG UNPROT COARSE AUG 13 07:00:00 Y 512 102401 52429312 53477376 group_3.265.823332593

+crs_dg/_mgmtdb/PARAMETERFILE/:
PARAMETERFILE UNPROT COARSE AUG 13 23:00:00 Y 512 7 3584 1048576 spfile.267.823332675

+crs_dg/_mgmtdb/TEMPFILE/:
TEMPFILE UNPROT COARSE AUG 13 07:00:00 Y 8192 2561 20979712 22020096 TEMP.266.823332611
PARAMETERFILE UNPROT COARSE AUG 13 23:00:00 N 512 7 3584 1048576 spfile-MGMTDB.ora => +CRS_DG/_MGMTDB/PARAMETERFILE/spfile.267.823332675

Flex ASM の選択画面です。
ためしに Flex ASMにしてみました。



従来のASMインスタンス「+ASM1」以外にも、
新しい種類のインスタンス「+APX1」ができていました。※ノード1です。
[grid@sv12c01 ~]$ ps -ef | grep asm_
grid 11678 2040 0 21:31 pts/0 00:00:00 grep asm_
grid 31818 1 0 19:17 ? 00:00:01 asm_pmon_+ASM1
grid 31820 1 0 19:17 ? 00:00:01 asm_psp0_+ASM1
grid 31822 1 1 19:17 ? 00:01:31 asm_vktm_+ASM1
grid 31826 1 0 19:17 ? 00:00:00 asm_gen0_+ASM1
grid 31828 1 0 19:17 ? 00:00:00 asm_mman_+ASM1
grid 31832 1 0 19:17 ? 00:00:05 asm_diag_+ASM1
grid 31834 1 0 19:17 ? 00:00:00 asm_ping_+ASM1
grid 31836 1 0 19:17 ? 00:00:17 asm_dia0_+ASM1
grid 31838 1 0 19:17 ? 00:00:13 asm_lmon_+ASM1
grid 31840 1 0 19:17 ? 00:00:09 asm_lmd0_+ASM1
grid 31842 1 0 19:17 ? 00:00:18 asm_lms0_+ASM1
grid 31846 1 0 19:17 ? 00:00:02 asm_lmhb_+ASM1
grid 31848 1 0 19:17 ? 00:00:00 asm_lck1_+ASM1
grid 31850 1 0 19:17 ? 00:00:00 asm_gcr0_+ASM1
grid 31852 1 0 19:17 ? 00:00:00 asm_dbw0_+ASM1
grid 31854 1 0 19:17 ? 00:00:00 asm_lgwr_+ASM1
grid 31856 1 0 19:17 ? 00:00:00 asm_ckpt_+ASM1
grid 31858 1 0 19:17 ? 00:00:00 asm_smon_+ASM1
grid 31860 1 0 19:17 ? 00:00:00 asm_lreg_+ASM1
grid 31862 1 0 19:17 ? 00:00:01 asm_rbal_+ASM1
grid 31864 1 0 19:17 ? 00:00:01 asm_gmon_+ASM1
grid 31866 1 0 19:17 ? 00:00:00 asm_mmon_+ASM1
grid 31868 1 0 19:17 ? 00:00:01 asm_mmnl_+ASM1
grid 31870 1 0 19:17 ? 00:00:01 asm_lck0_+ASM1
grid 31926 1 0 19:17 ? 00:00:00 asm_asmb_+ASM1

[grid@sv12c01 ~]$ ps -ef | grep apx_
grid 3341 1 0 19:20 ? 00:00:00 apx_pmon_+APX1
grid 3343 1 0 19:20 ? 00:00:01 apx_psp0_+APX1
grid 3351 1 1 19:20 ? 00:01:30 apx_vktm_+APX1
grid 3355 1 0 19:20 ? 00:00:00 apx_gen0_+APX1
grid 3357 1 0 19:20 ? 00:00:00 apx_mman_+APX1
grid 3361 1 0 19:20 ? 00:00:00 apx_diag_+APX1
grid 3363 1 0 19:20 ? 00:00:02 apx_dia0_+APX1
grid 3365 1 0 19:20 ? 00:00:00 apx_lreg_+APX1
grid 3367 1 0 19:20 ? 00:00:00 apx_rbal_+APX1
grid 3370 1 0 19:20 ? 00:00:00 apx_vdbg_+APX1
grid 3372 1 0 19:20 ? 00:00:00 apx_vubg_+APX1
grid 11682 2040 0 21:31 pts/0 00:00:00 grep apx_

Grid Infrastructure インストール中にrootユーザで実行するスクリプトは、
自動実行できるようになっていました。



上記の画面でOSのrootユーザパスワードを入力しておくと、
インストール中に下記の画面が表示されます。
「はい」をクリックすると、全ノードでスクリプトを自動実行してくれます。




Grid Infrastructureインストール直後のクラスタリソースの状態は
こんな感じです。
※今回は3ノード構成です。

[grid@sv12c01 ~]$ /u01/app/12.1.0/grid/bin/crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.CRS_DG.dg
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.net1.network
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.ons
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.proxy_advm
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       sv12c02                  STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       sv12c03                  STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       sv12c01                  STABLE
ora.MGMTLSNR
      1        ONLINE  ONLINE       sv12c01                  169.254.66.67 192.16
                                                             8.14.141,STABLE
ora.asm
      1        ONLINE  ONLINE       sv12c01                  STABLE
      2        ONLINE  ONLINE       sv12c02                  STABLE
      3        ONLINE  ONLINE       sv12c03                  STABLE
ora.cvu
      1        ONLINE  ONLINE       sv12c01                  STABLE
ora.mgmtdb
      1        ONLINE  ONLINE       sv12c01                  Open,STABLE
ora.oc4j
      1        ONLINE  ONLINE       sv12c01                  STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       sv12c02                  STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       sv12c03                  STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       sv12c01                  STABLE
ora.sv12c01.vip
      1        ONLINE  ONLINE       sv12c01                  STABLE
ora.sv12c02.vip
      1        ONLINE  ONLINE       sv12c02                  STABLE
ora.sv12c03.vip
      1        ONLINE  ONLINE       sv12c03                  STABLE
--------------------------------------------------------------------------------

以上、12c の Grid Infrastructure をインストールしてみた話でした。

2013年8月16日金曜日

Oracle VM Server 3.x の Oracle Linux 6.x に xm console する方法。(PVM 編)

今回は、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月6日火曜日

Oracle Linux 6 マスター的な試験が開始されました。

最近、
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)なので残念です。
  • 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」をプラグインしています。
この時にエラーがでたので、ためしにアラートログを見てみました。
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へアンプラグ→プラグインしてみる話でした。