株式会社コーソル

コーソルDatabaseエンジニアのブログ

技術ブログ

DeployCluster.pyを使って11.2 RACを素早く作成する

Oracle VMの利点の1つに、Oracle製品導入済みのOracle VMテンプレートが用意されている点があります。 通常は、VMテンプレートをインポートし、IPアドレスなど若干の環境固有の設定を行うだけでVMを構成できますが、RAC構成の場合は注意が必要です。

RAC構成の場合、共有ディスクの利用、Grid Infrastructureの構成など、シングル環境とは異なる点があるため、独自の手順が必要となります。OVMAPIをサポートした11.2 RAC VMテンプレート + Oracle VM 3の場合、DeployClusterというツールを用います。(OVMAPIをサポートしていない11.2 RAC VMテンプレートの場合、または、Oracle VM 2.x の場合は、buildcluster.shを使います)

DeployCluster tool for Oracle Real Application Cluster 11g Release 2 Templates for Oracle VM 3 http://www.oracle.com/technetwork/products/clusterware/overview/racovm-deploycluster-tool-1635519.pdf

インストール手順の確認などの理由から、私はRAC環境についてはテンプレートを使用してきませんでした。 今回、DeployClusterツールを初めて使用したところRAC環境が素早く作成できたので、手順などを簡単にまとめておきます。

0. OVMAPIをサポートした 11.2 RAC VMテンプレートをダウンロードし、HTTPダウンロード可能にする

MOS Document:1185244.1 Pre-Built Grid Infrastructure and Oracle RAC Templates For Oracle VM から 11.2 RACのVMテンプレートをダウンロードします。 ここでは、
Oracle Real Application Clusters (RAC) 11g Release 2 (x86 32-bit and 64-bit) on Oracle Linux 6.2 (w/OVMAPI Support) 
11.2.0.3.2
p13818831_10_Linux-x86-64_1of2.zip / p13818831_10_Linux-x86-64_2of2.zip
をダウンロードしました。

[root@csov3m01 112032_x64_p13818831]# unzip -l p13818831_10_Linux-x86-64_1of2.zip
Archive:  p13818831_10_Linux-x86-64_1of2.zip
  Length     Date   Time    Name
 --------    ----   ----    ----
628243357  08-25-12 00:10   OVM_OL6U2_X86_64_11203RAC_PVM-1of2.tgz
     7744  08-24-12 22:40   RACOVM11203-MYSUPPORT-READMEv2.1.txt
 --------                   -------
628251101                   2 files
[root@csov3m01 112032_x64_p13818831]# unzip -l p13818831_10_Linux-x86-64_2of2.zi
p
Archive:  p13818831_10_Linux-x86-64_2of2.zip
  Length     Date   Time    Name
 --------    ----   ----    ----
3575220861  08-25-12 00:31   OVM_OL6U2_X86_64_11203RAC_PVM-2of2.tgz
   825857  05-16-12 04:07   RAC11203-OVM-template-ProductionConfiguration.pdf
  1299065  05-16-12 04:10   RAC11203-OVM-template-TestConfiguration.pdf
 --------                   -------
3577345783                   3 files
ダウンロードしたファイルを、Oracle VM ManagerからHTTPでダウンロードできるように Apache のDocumentRoot以下に配置するなどします。

1. RACテンプレートを記憶域リポジトリにインポートする

Oracle VM Managerから、RACテンプレートを記憶域リポジトリにインポートします。

今回インポートするRACテンプレートは2つのZIPファイルから構成されているため、 ソースURL欄には以下の2行をまとめて指定します。ZIPファイルをあらかじめ解凍しておく必要はないようです。


http://(略)/p13818831_10_Linux-x86-64_1of2.zip
http://(略)/p13818831_10_Linux-x86-64_2of2.zip

2. ASM用の共有ディスクを作成する

DeployClusterのドキュメントの記載に従い、Oracle VM ManagerからASM用の共有ディスクを5つ作成します。 共有ディスクの構成については、DeployClusterの設定に合わせる必要があるようです。

3. 仮想ネットワークの調整

DeployClusterのドキュメントの記載に従い、RACテンプレートのNICが接続される仮想ネットワークを調整します。

4. RACテンプレートからVMをクローン作成する

DeployClusterのドキュメントの記載に従い、インポートしたVMテンプレートをcloneして、クラスタを構成する複数のVMを作成します。

今回はVM名にlb2032rを指定して2つのVMを作成しました。このとき、 VM名 lb2032r.0, lb2032r.1 のVMが作成されるようです。 また、ディスク領域の割り当て方法にはThin Cloneを指定しました。

5. 全VMに共有ディスクをアタッチする

DeployClusterのドキュメントの記載に従い、cloneして作成した全てのVMに共有ディスクを接続します。

6. DeployClusterツールをインストールする

DeployClusterツールをダウンロードし、 Oracle VM Managerをインストールしたマシンに配置します。

ここでは /home/oracle/deployclusterに配置しました。

7. netconfig.iniファイルを作成する

DeployClusterツールをインストールしたディレクトリ(/home/oracle/deploycluster) に、netconfig.iniを配置します。

netconfig.iniの記載内容は以下のとおりです。(IPアドレスはXXXXXでマスクしています) 今回はnetconfig_lb2032r.iniというファイル名にしています。


# Node specific information
NODE1=lb2032r1
NODE1IP=XXXXX
NODE1PRIV=lb2032r1-priv
NODE1PRIVIP=XXXXX
NODE1VIP=lb2032r1-vip
NODE1VIPIP=XXXXX
NODE2=lb2032r2
NODE2IP=XXXXX
NODE2PRIV=lb2032r2-priv
NODE2PRIVIP=XXXXX
NODE2VIP=lb2032r2-vip
NODE2VIPIP=XXXXX

# Common data
PUBADAP=eth0
PUBMASK=255.255.0.0
PUBGW=XXXXX
PRIVADAP=eth1
PRIVMASK=255.255.0.0
RACCLUSTERNAME=lb2032cluster
DOMAINNAME=domain
DNSIP=
# Device used to transfer network information to second node
# in interview mode
NETCONFIG_DEV=/dev/xvdc
# 11gR2 specific data
SCANNAME=lb2032r-scan
SCANIP=XXXXX

8. deploycluster.pyを実行します

Oracle VM Managerをインストールしたマシンで、deploycluster.pyを実行します。

引数 -p にはOracle VM Managerのadminユーザーのパスワードを指定します。


[oracle@csov3m01 deploycluster]$ ./deploycluster.py -u admin -p XXXXX -M lb2032r.0,lb2032r.1 -N netconfig_lb2032r.ini
Oracle RAC OneCommand (v1.1.3) for Oracle VM - deploy cluster - (c) 2011-2012 Oracle Corporation
 (com: 26700:v1.1.0, lib: 128482:v1.1.1, var: 1300:v1.1.3) - v2.4.3 - csov3m01 (x86_64)
Invoked as oracle at Thu Nov 29 14:03:10 2012  (size: 37700, mtime: Tue Sep 25 23:45:57 2012)
Using: ./deploycluster.py -u admin -p **** -M lb2032r.0,lb2032r.1 -N netconfig_lb2032r.ini

INFO: Attempting to connect to Oracle VM Manager...

INFO: Oracle VM Client  (3.1.1.399) protocol (1.8) CONNECTED (tcp) to
      Oracle VM Manager (3.1.1.305) protocol (1.8) IP (XXXXX) UUID (0004fb0000010000bdfdccc60b848581)

INFO: Inspecting /home/oracle/deploycluster/netconfig_lb2032r.ini for number of nodes defined....
INFO: Detected 2 nodes in: /home/oracle/deploycluster/netconfig_lb2032r.ini

INFO: Located a total of (2) VMs;
      2 VMs with a simple name of: ['lb2032r.0', 'lb2032r.1']

INFO: Verifying all (2) VMs are in Running state

INFO: VM with a simple name of "lb2032r.0" is in a Stopped state, attempting to start it...OK.

INFO: VM with a simple name of "lb2032r.1" is in a Stopped state, attempting to start it...OK.

INFO: Detected that all (2) VMs specified on command have (5) common shared disks between them (ASM_MIN_DISKS=5)

INFO: The (2) VMs passed basic sanity checks and in Running state, sending cluster details as follows:
      netconfig.ini (Network setup): /home/oracle/deploycluster/netconfig_lb2032r.ini
      buildcluster: yes

INFO: Starting to send cluster details to all (2) VM(s).....
INFO: Sending to VM with a simple name of "lb2032r.0"....
INFO: Sending to VM with a simple name of "lb2032r.1"......

INFO: Cluster details sent to (2) VMs...
      Check log (default location /u01/racovm/buildcluster.log) on build VM (lb2032r.0)...

INFO: deploycluster.py completed successfully at 14:03:47 in 36.6 seconds (00m:36s)
Logfile at: /home/oracle/deploycluster/deploycluster1.log

deploycluster.pyの実行はすぐに終了しますが、VMではOracle 製品の各種構成作業が実行されています。

9. Oracle 製品の各種構成作業の終了を待機する

VMで実行されている Oracle 製品の各種構成作業は /u01/racovm/buildcluster.log から確認できます。 sshまたはxm consoleなどでVMに接続し、buildcluster.logをチェックします。

なお、VMのネットワーク設定はdeploycluster.py実行直後の早期段階でに完了しているようですので、sshで接続できます。


[root@csov3s01 ~]# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
0004fb0000060000da5b7cab5a429e2c             5  2048     1     -b----     41.8
0004fb0000060000dfffd5926a0e4ff0             6  2048     1     -b----     54.0
Domain-0                                     0   644     4     r-----   3474.7
[root@csov3s01 ~]# xm console 5
  :
Oracle Linux Server release 6.2
Kernel 2.6.32-300.25.1.el6uek.x86_64 on an x86_64

lb2032r1 login: root
Password:←★ovsrootを入力
[root@lb2032r1 ~]# cd /u01/racovm
[root@lb2032r1 racovm]# ls
buildcluster.log                    GetSystemTimeZone.class  params.ini
buildcluster.sh                     kitversion.txt           params.ini.bck
cleanlocal.sh                       mcast                    patches
common.sh                           netconfig                racovm.sh
crsconfig_params.usedby_last_clone  netconfig.ini            README.txt
diskconfig.sh                       netconfig.ini.bck        ssh
doall.sh                            netconfig-sample64.ini
files                               netconfig.sh
[root@lb2032r1 racovm]# tail -f buildcluster.log
  pa cert
  peer root cert TP
  profile reader root cert TP
  pa root cert TP
  peer pa cert TP
  pa peer cert TP
  profile reader pa cert TP
  profile reader peer cert TP
  peer user cert
  pa user cert
Adding Clusterware entries to upstart
oracleoks: module license 'Proprietary' taints kernel.
Disabling lock debugging due to kernel taint
  : 
buildcluster.logを抜粋します。

Invoking on lb2032r1 as root...
   Oracle RAC 11gR2 OneCommand (v1.3.7) for Oracle VM - (c) 2010-2012 Oracle Corporation
   Cksum: [1412992785 286600 racovm.sh] at Thu Nov 29 00:04:45 EST 2012
   Kernel: 2.6.32-300.25.1.el6uek.x86_64 (x86_64) [1 processor(s)] 1994 MB
   Kit Version: 11.2.0.3.2
   Step(s): buildcluster
    : 
INFO (node:lb2032r1): Running on: lb2032r1 as root: /u01/app/11.2.0/grid/bin/olsnodes -n -s -t
lb2032r1    1   Active  Unpinned
lb2032r2    2   Active  Unpinned

INFO (node:lb2032r1): Running on: lb2032r1 as oracle: unset SRVM_TRACE; export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1; /u01/app/oracle/product/11.2.0/dbhome_1/bin/srvctl status database -d ORCL
Instance ORCL1 is running on node lb2032r1
Instance ORCL2 is running on node lb2032r2

INFO (node:lb2032r1): Running on: lb2032r1 as root: /u01/app/11.2.0/grid/bin/crsctl status resource -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
               ONLINE  ONLINE       lb2032r1                                     
               ONLINE  ONLINE       lb2032r2                                     
ora.LISTENER.lsnr
               ONLINE  ONLINE       lb2032r1                                     
               ONLINE  ONLINE       lb2032r2                                     
ora.asm
               ONLINE  ONLINE       lb2032r1                 Started             
               ONLINE  ONLINE       lb2032r2                 Started             
ora.gsd
               OFFLINE OFFLINE      lb2032r1                                     
               OFFLINE OFFLINE      lb2032r2                                     
ora.net1.network
               ONLINE  ONLINE       lb2032r1                                     
               ONLINE  ONLINE       lb2032r2                                     
ora.ons
               ONLINE  ONLINE       lb2032r1                                     
               ONLINE  ONLINE       lb2032r2                                     
ora.registry.acfs
               ONLINE  ONLINE       lb2032r1                                     
               ONLINE  ONLINE       lb2032r2                                     
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       lb2032r1                                     
ora.cvu
      1        ONLINE  ONLINE       lb2032r1                                     
ora.lb2032r1.vip
      1        ONLINE  ONLINE       lb2032r1                                     
ora.lb2032r2.vip
      1        ONLINE  ONLINE       lb2032r2                                     
ora.oc4j
      1        ONLINE  ONLINE       lb2032r1                                     
ora.orcl.db
      1        ONLINE  ONLINE       lb2032r1                 Open                
      2        ONLINE  ONLINE       lb2032r2                 Open                
ora.scan1.vip
      1        ONLINE  ONLINE       lb2032r1                                     

INFO (node:lb2032r1): For an explanation on resources in OFFLINE state, see Note:1068835.1
2012-11-29 00:25:08:[clusterstate:Time :lb2032r1] Completed successfully in 3 seconds (0h:00m:03s)
2012-11-29 00:25:08:[buildcluster:Done :lb2032r1] Build 11gR2 RAC Cluster
2012-11-29 00:25:08:[buildcluster:Time :lb2032r1] Completed successfully in 1223 seconds (0h:20m:23s)

20分程度でOracle 製品の各種構成作業は終了しています。(VMはSSD上に配置)

DeployClusterのドキュメントの記載を確認しながら実行しましたが、VMテンプレートのテンプレートから約1時間程度で作業は完了しました。

デフォルトの配置で気になったところをメモ書き

deploycluster.pyの設定ファイルを修正すれば、変更できる可能性がありますが、 現時点では調べきれていません。(一部設定はparam.iniの修正で対応できそう・・・)

OSユーザー構成
  • oracleユーザーのみ(gridユーザーなし)
  • oracleユーザーのUIDは1101
  • パスワード oracle/oracle , root/ovsroot
データベース構成
  • SID: ORCL?
  • グローバルデータベース名: ORCL ※:ドメインなし
  • キャラクタセット AL32UTF8

[oracle@lb2032r1 ~]$ env |grep ORA
ORACLE_UNQNAME=ORCL
ORACLE_SID=ORCL1
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1

[oracle@lb2032r1 ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 29-NOV-2012 00:53:29

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                29-NOV-2012 00:17:29
Uptime                    0 days 0 hr. 36 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/11.2.0/grid/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/lb2032r1/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.31.136.1)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.31.136.2)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "ORCL" has 1 instance(s). ←★
  Instance "ORCL1", status READY, has 1 handler(s) for this service...
Service "ORCLXDB" has 1 instance(s).
  Instance "ORCL1", status READY, has 1 handler(s) for this service...
The command completed successfully
Oracle NLS関係

日本語エラーメッセージは正常に表示されそうです。


[oracle@lb2032r1 ~]$ export NLS_LANG=Japanese_Japan.AL32UTF8
[oracle@lb2032r1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on 木 11月 29 00:32:16 2012

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> select * from hoge;
select * from hoge
              *
ERROR at line 1:
ORA-00942: 表またはビューが存在しません。
OS設定

タイムゾーンはESTでした。


[oracle@lb2032r1 racovm]$ date
Thu Nov 29 00:39:29 EST 2012 ←★

ホスト名にドメインが指定されていません


[oracle@lb2032r1 ~]$ hostname
lb2032r1←★?? ドメインは?
[oracle@lb2032r1 ~]$ domainname
(none)

プロフィール

On7tWW6m1Ul4

渡部 亮太

・Oracle ACE
・AWS Certified Solutions Architect - Associate
・ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

カテゴリー

アーカイブ