1ページ 2ページ 3ページ

Oracle VMおよびOracle Enterprise Linuxでの独自のOracle RAC拡張クラスタの構築(続き)

このガイドに記載されている情報については、オラクルによる検証またはサポートはおこなわれていません。これらの情報は、ご自身の責任において、学習目的でのみご使用ください。


6. Oracleソフトウェアのインストール準備

rac1仮想マシン上で、Oracle DatabaseとOracle Clusterwareを解凍します。

[root@rac1 ~]#  
                                          
cd     /u01/install/
[root@rac1 install]#  
                                          
unzip linux.x64_11gR1_database.zip
[root@rac1 install]#  
                                          
unzip linux.x64_11gR1_clusterware.zip
                                        

oracleアカウントのパスワードを変更し、Oracle DatabaseとOracle Clusterwareのディレクトリを設定します(rac1とrac2の両方のRACノードで実行します)。

[root@rac1 ~]#  
                                          
passwd oracle
Changing password for user oracle.
New UNIX password:
BAD PASSWORD: it is WAY too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@rac1 ~]#  
                                          
mkdir -p /u01/app/oracle
[root@rac1 ~]#  
                                          
chown -R oracle:oinstall /u01/app
[root@rac1 ~]#  
                                          
chmod -R 775 /u01/app
[root@rac1 ~]#
[root@rac1 ~]#  
                                          
mkdir -p /u01/app/crs
[root@rac1 ~]#  
                                          
chown -R oracle:oinstall /u01/app/crs
[root@rac1 ~]#  
                                          
chmod -R 775 /u01/app/crs
                                        

rac1およびrac2で、oracleユーザーの.bash_profileスクリプトを編集して以下のようにします。ただし、ORACLE_SIDは、各RACノードで個別に設定する必要がある点に注意してください。

# ~oracle .bash_profile
                                           
# Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi
alias ls="ls -FA"
# User specific environment and startup programs export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1 export ORA_CRS_HOME=/u01/app/crs export ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
# Each RAC node must have a unique ORACLE_SID. export ORACLE_SID=erac1
export PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin export ORACLE_TERM=xterm export TNS_ADMIN=$ORACLE_HOME/network/admin export ORA_NLS10=$ORACLE_HOME/nls/data export LD_LIBRARY_PATH=$ORACLE_HOME/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib export CLASSPATH=$ORACLE_HOME/JRE export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib export THREADS_FLAG=native export TEMP=/tmp export TMPDIR=/tmp

Oracle SSHユーザー等価関係の設定

"ユーザー等価関係"とは、RSH/SSHを使用して、クラスタ内のそのほかのノードすべてに対するローカル・ユーザー・アカウントでのアクセスを、パスワードなしで実行可能にする方法です。 ユーザー等価関係は、おもにOracleインストーラで使用されており、これにより、パスワードを求められることなく残りのノードでのインストールを実行することができます。 以下のコマンドラインの抜粋では、SSHキーをベースにした認証を使用して、ユーザー等価関係をすばやく設定するための方法を示しています。

[root@rac1 ~]#  
                                          
su - oracle
[oracle@rac1 ~]$  
                                          
mkdir -p ~/.ssh
[oracle@rac1 ~]$  
                                          
chmod 700 ~/.ssh
[oracle@rac1 ~]$  
                                          
/usr/bin/ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key     (/home/oracle/.ssh/id_rsa):  
                                          
<ENTER>
Enter passphrase (empty for no passphrase):  
                                          
<ENTER>
Enter same passphrase again:  
                                          
<ENTER>
Your identification has been saved in /home/oracle/.ssh/id_rsa.
Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.
The key fingerprint is:
cb:a6:d0:4a:cc:39:9d:78:70:24:f7:5b:99:14:7e:53 oracle@rac1
[oracle@rac1 ~]$
[oracle@rac1 ~]$  
                                          
ssh rac1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
The authenticity of host 'rac1 (10.99.1.91)' can't be     established.
RSA key fingerprint is 1e:8c:1f:f7:dc:2e:10:75:0f:08:01:13:a8:49:31:0c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rac1,10.99.1.91' (RSA) to the     list of known hosts.
oracle@rac1's password:
[oracle@rac1 ~]$  
                                          
ssh rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
The authenticity of host 'rac2 (10.99.1.92)' can't be established.
RSA key fingerprint is 1e:8c:1f:f7:dc:2e:10:75:0f:08:01:13:a8:49:31:0c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rac2,10.99.1.92' (RSA) to the list of known hosts.
oracle@rac2's password:
[oracle@rac1 ~]$  
                                          
scp .ssh/authorized_keys rac2:.ssh/
oracle@rac2's password:
authorized_keys                                              100%  786         0.8KB/s   00:00
[oracle@rac1 ~]$  
                                          
chmod 600 ~/.ssh/authorized_keys
                                        

キー・パスフレーズ(およびグラフィカル・インストーラの場合はX11ワークステーションのアドレス)を求められないように、シェルを設定します。

[oracle@rac1 ~]$  
                                          
exec /usr/bin/ssh-agent $SHELL
[oracle@rac1 ~]$  
                                          
/usr/bin/ssh-add
Identity added: /home/oracle/.ssh/id_rsa (/home/oracle/.ssh/id_rsa)
[oracle@rac1 ~]$
[oracle@rac1 ~]$  
                                          
export DISPLAY=10.99.1.1:0
                                        

同じシェル・セッションから、SSHユーザー等価関係が意図したとおりに機能しているかどうかを確認します。

[oracle@rac1 ~]$  
                                          
ssh rac1 date
Sat May 10 13:16:43 CEST 2008
[oracle@rac1 ~]$  
                                          
ssh rac2 date
Sat May 10 13:16:45 CEST 2008
[oracle@rac1 ~]$
                                        

ワークステーション上でX11環境を構成し、グラフィカル・インストールおよび構成ユーティリティを使用するために、RACノードからのリモートX11接続が可能となるように設定する必要があります。

[vnull@xeno ~]$  
                                          
xhost +10.99.1.91
10.99.1.91 being added to access control list
[vnull@xeno ~]$  
                                          
xhost +10.99.1.92
10.99.1.92 being added to access control list
[vnull@xeno ~]$
                                        

ここで、上記のRACノード(通常はTCPポート6000)との間のファイアウォールすべてにおいて、rac1システムとrac2システムからのトラフィックが渡されていることを確認する必要があります。

Oralce ASMLibの構成

Oracle ASMLIBは、I/O操作とストレージ管理のより効率的な実行を可能にする、オプションのメカニズムです。 Linux上でOracle ASMLIBを使用するおもなメリットとして、標準のUNIX I/Oコールが迂回され、それと同時にこれらの操作をおこなう固有のカーネル部が提供されるため、コンテキストの切替えが減少し、結果としてCPU使用量が減少するという点が挙げられますが、このシナリオでは、おもにデバイス管理を簡易化するために使用します。

Oracle ASMLibの構成を両方のノードで実行します。

[root@rac1 ~]#  
                                          
/etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.
                                           
This will configure the on-boot properties of the Oracle ASM library driver. The following questions will determine whether the driver is loaded on boot and what permissions it will have. The current values will be shown in brackets ('[]'). Hitting <ENTER> without typing an answer will keep that current value. Ctrl-C will abort.
Default user to own the driver interface []: oracle Default group to own the driver interface []: oinstall Start Oracle ASM library driver on boot (y/n) [n]: y Scan for Oracle ASM disks on boot (y/n) [y]: y Writing Oracle ASM library driver configuration: done Initializing the Oracle ASMLib driver: [ OK ] Scanning the system for Oracle ASMLib disks: [ OK ] [root@rac1 ~]#

Oracle ASMLIBの管理に、2つのiSCSI LUNを配置します(rac1のみで実行します)。

[root@rac1 ~]#  
                                          
/etc/init.d/oracleasm createdisk VOL1ASM1 /dev/iscsi/racdata1.asm1/lun0/part1
Marking disk "VOL1ASM1" as an ASM disk:                    [  OK  ]
[root@rac1 ~]#  
                                          
/etc/init.d/oracleasm createdisk VOL2ASM1 /dev/iscsi/racdata2.asm1/lun0/part1
Marking disk "VOL2ASM1" as an ASM disk:                    [  OK  ]
[root@rac1 ~]#
[root@rac1 ~]#  
                                          
/etc/init.d/oracleasm listdisks
VOL1ASM1
VOL2ASM1
[root@rac1 ~]#
                                        

rac2で新規Oracle ASMディスクの再スキャンをおこないます。

[root@rac2 ~]#  
                                          
/etc/init.d/oracleasm scandisks
Scanning the system for Oracle ASMLib disks:               [  OK  ]
[root@rac2 ~]#  
                                          
/etc/init.d/oracleasm listdisks
VOL1ASM1
VOL2ASM1
[root@rac2 ~]#
                                        

 


7. Oracle Clusterwareのインストール

Oracle Clusterwareは、Oracle RACで必要となる、データベースおよび関連のヘルパー・アプリケーションが含まれたコア・コンポーネントです。 これにより、DBAは、クラスタへOracleインスタンスを登録し、結合できます。 通常の運用時には、Oracle Clusterwareは、クラスタ内に構成されたすべてのノードに(特殊なping操作で)メッセージを送信します。これは一般に"ハートビート"と呼ばれます。 いずれかのノードでハートビートが失敗した場合、共有ディスクのOracle Clusterware構成ファイルを確認して、実際のノード障害とネットワーク障害を区別します。

Oracle Clusterwareをインストールすると、Oracle Databaseソフトウェアのインストール(次の項を参照)で使用されるOracle Universal Installer(OUI)において、これらのノードが自動的に認識されます。 Oracle Databaseソフトウェアは、この項で実行するOracle Clusterwareのインストールと同様に、1つのノードのみから実行すれば十分です。 ソフトウェア・パッケージは、OUIによってOracle RACクラスタで構成されたすべてのノードにコピーされます。

NFSサーバーとしての第3ノード

第3の投票ディスクを、中央データセンターから地理的に離れた場所に配置する場合、3番目の場所へのRACノードの接続について、どのストレージ・プロトコルを使用し、どのように実行するのかを考慮する必要があります。 3つめのiSCSIアレイ/サーバーを使用することもできますが、実際に投票ディスクのために使用される数メガバイトのストレージだけのためにiSCSIストレージを購入することはコストを考えると賢明とはいえません。 幸いなことに、Oracle Clusterwareには、NFSストレージ上に投票ディスクを配置するためのオプションが用意されており、これにより、あらゆるリモートUNIX/Linuxサーバーへのインストールをおこなうことができます。

ここでは、投票ディスク・ファイルを配置するNFSの第3の場所として、管理ワークステーションを使用します。 (投票ディスク・ファイルは、ディスク全体として使用されます。)
ワークステーションにおいて、CRS(Oracle Clusterware)投票の疑似ディスクファイルでNFSエクスポートをおこないます。

[root@xeno ~]#  
                                          
mkdir /votedisk
[root@xeno ~]#  
                                          
echo '/votedisk  *(rw,sync,all_squash,anonuid=500,anongid=500)' >> /etc/exports
[root@xeno ~]#  
                                          
service portmap start
Starting portmap:                                          [  OK  ]
[root@xeno ~]#  
                                          
service nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
[root@xeno ~]#  
                                          
chkconfig --level 0123456 nfs on
[root@xeno ~]#  
                                          
chkconfig --level 0123456 portmap on
[root@xeno ~]#  
                                          
dd if=/dev/zero of=/votedisk/third_votedisk.crs bs=1M count=320
320+0 records in
320+0 records out
335544320 bytes (336 MB) copied, 1.32737 seconds, 253 MB/s
[root@xeno ~]#
                                        

両方のRACノードで、以下を実行します(単一のbashコマンドでfstab行を入力します)。

[root@rac1 ~]#  
                                          
echo -e '10.99.1.1:/votedisk\t/votedisk\tnfs\t rw,bg,hard,intr,rsize=32768,wsize=32768,tcp,noac,vers=3,timeo=600\t0\t0' >> /etc/fstab
[root@rac1 ~]#  
                                          
service portmap start
Starting portmap:                                          [  OK  ]
[root@rac1 ~]#  
                                          
service nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
[root@rac1 ~]#  
                                          
chkconfig --level 0123456 nfs on
[root@rac1 ~]#  
                                          
mkdir /votedisk
[root@rac1 ~]#  
                                          
mount /votedisk
[root@rac1 ~]#  
                                          
ls -al /votedisk
total 328024
drwxr-xr-x  2 oracle     dba       4096 May 27 19:36 .
drwxr-xr-x 26 root       root      4096 May 27 20:40 ..
-rw-r--r--  1 oracle     dba  335544320 May 27 19:36     third_votedisk.crs
[root@rac1 ~]#
                                        

メイン・インストール

まず最初に、システムになんらかの非互換性がないかを確認する必要があります。 Oralce Clusterwareには、システム全体をチェックして不足しているライブラリや、カーネル・パラメータなどがないかどうかを確認するために、runcluvfy.shと呼ばれる特別なツールが用意されています。 (詳細な説明については、Jeff Hunterによるガイド『Oracle Enterprise LinuxおよびiSCSIの独自のOracle RACクラスタの構築.』の第20項を参照してください。) まず最初に、このツールをインストールする必要があります。

[root@rac1 clusterware]#  
                                          
cd /u01/install/clusterware/rpm/
[root@rac1 rpm]# rpm -Uhv cvuqdisk-1.0.1-1.rpm
Preparing...                ########################################### [100%]
   1:cvuqdisk               ########################################### [100%]
[root@rac1 rpm]#
                                        

次に、インストールしたruncluvfy.shをrac2ノードに転送します。

[root@rac1 rpm]#  
                                          
scp cvuqdisk-1.0.1-1.rpm root@10.99.1.92:.
The authenticity of host '10.99.1.92 (10.99.1.92)' can't be  established.
RSA key fingerprint is  1e:8c:1f:f7:dc:2e:10:75:0f:08:01:13:a8:49:31:0c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.99.1.92' (RSA) to the list of known hosts.
root@10.99.1.92's password:
cvuqdisk-1.0.1-1.rpm                                         100% 7273     7.1KB/s  00:00
[root@rac1 rpm]#
                                        

... rac2でもruncluvfy.shをインストールします。

[root@rac2 ~]#  
                                          
rpm -Uhv cvuqdisk-1.0.1-1.rpm
Preparing...                    ########################################### [100%]
    1:cvuqdisk                  ########################################### [100%]
[root@rac2 ~]#
                                        

Oracle Clusterwareの事前要件についてのレポートは、以下を使用して生成できます。

[oracle@rac1 clusterware]$  
                                          
./runcluvfy.sh  stage -pre crsinst -n rac1,rac2 -verbose
                                        

レポートを確認します。

Check: Membership of user "oracle" in group "oinstall" [as Primary]
      Node Name         User Exists   Group Exists  User in Group      Primary       Comment
      ----------------  ------------  ------------  ------------       ------------  ------------
      rac2              yes           yes           yes                no            failed
      rac1              yes           yes           yes                no            failed
Result: Membership check for user "oracle" in group     "oinstall" [as Primary] failed.
                                           
Administrative privileges check failed.
[..]
Check: Package existence for "glibc-2.5-12" Node Name Status Comment ------------------------------ ------------------------------ ---------------- rac2 failed rac1 failed Result: Package existence check failed for "glibc-2.5-12".
Check: Package existence for "glibc-2.5-12" Node Name Status Comment ------------------------------ ------------------------------ ---------------- rac2 glibc-2.5-18 passed rac1 glibc-2.5-18 passed Result: Package existence check passed for "glibc-2.5-12".

グループoinstallにoracleがないことと、"glibc-2.5-12"の最初のエラーについては、無視しても問題ありません。 runclvfy.shにより生成された通知またはエラーについては、すべて修正するようにしてください。修正しない場合、あとでより深刻な問題が生じる可能性があります。

次の クラスタ検証ユーティリティ(CVU)チェックを実行して、ハードウェアとオペレーティング・システムの設定を確認します。

[oracle@rac1 clusterware]$  
                                          
./runcluvfy.sh stage -post hwos -n rac1,rac2 -verbose
                                        

今回は、"No errors"と表示されます。

最後に、Oracle Clusterwareのインストーラを実行します。

[oracle@rac1 clusterware]$  
                                          
export DISPLAY=10.99.1.1:0
                                          
[oracle@rac1 clusterware]$ ./runInstaller


図33

Oracle Clusterwareインストーラが表示されます。


図34

インベントリ・ディレクトリに対して/u01/app/oraInventoryが設定されていることを確認します。


図35

Oracle Clusterwareホームのパスとして/u01/app/crsを設定します。 (ここでは、CRSのインストールをOracle Databaseソフトウェアのインストールとは切り離しておこないます。)


図36

Oracle Clusterwareにより、システムの問題や非互換性に関するチェックがおこなわれます。 ここでは、すべて問題がないはずです。


図37

Edit」ボタンをクリックして、ネットワーク・アダプタを以下のように割り当てます。

  • eth0はパブリック接続とします。
  • eth1はプライベート接続(RACのキャッシュ・フュージョン/インターコネクト)とします。
  • eth2は、CRS(ここでのiSCSI用SANインタフェース)では使用しません。



図38

Oracle Cluster Registry(OCR)のミラー化を指定します。 ここでは、2つのiSCSIストレージ機器間で、OCRのミラー化をおこないます。 OCRのプライマリ・ロケーションとして、/dev/iscsi/racdata1.ocr/lun0/part1と入力します。 バックアップ用のOCRロケーションには、/dev/iscsi/racdata2.ocr/lun0/part1と入力します。


図39

投票ディスクに対して「 Normal redundancy」を選択します。 割り当てられた要件を満たすため、以下の3つの投票ディスクが必要となります。

  • /dev/iscsi/racdata1.voting/lun0/part1
  • /dev/iscsi/racdata2.voting/lun0/part1
  • /votedisk/voting_disk_file.crs("xeno"ワークステーション上のNFSマウントポイントのファイル)


注: ここで投票ディスクを1つしか設定できなかった場合は、このガイドで後述する、残りの投票ディスクを手動で追加する方法を参照してください。


図40

投票ディスクの構成が完了すると、サマリー・ウィンドウが表示されます。 設定を確認して「 Install」を押します。


図41

インストール・プロセスには少し時間がかかります。


図42

インストールが正常に完了したら、インストール後の最終スクリプトの実行を求めるプロンプトが表示されます。

Oracle Clusterwareインストールの確認

Oracle Clusterwareのインストールが正常に完了したかどうかは、いくつかのユーティリティを使用して確認することができます。 ここでは、crs_statおよびcrsctlを使用してインストールの検証をおこないます。

[oracle@rac1 clusterware]$  
                                          
$ORA_CRS_HOME/bin/crs_stat -t -v
Name           Type           R/RA   F/FT     Target    State     Host
----------------------------------------------------------------------
ora.rac1.gsd   application    0/5    0/0      ONLINE    ONLINE    rac1
ora.rac1.ons   application    0/3    0/0      ONLINE    ONLINE    rac1
ora.rac1.vip   application    0/0    0/0      ONLINE    ONLINE    rac1
ora.rac2.gsd   application    0/5    0/0      ONLINE    ONLINE    rac2
ora.rac2.ons   application    0/3    0/0      ONLINE    ONLINE    rac2
ora.rac2.vip   application    0/0    0/0      ONLINE    ONLINE    rac2
[oracle@rac1 clusterware]$  
                                          
$ORA_CRS_HOME/bin/crsctl check crs
Cluster Synchronization Services appears healthy
Cluster Ready Services appears healthy
Event Manager appears healthy
[oracle@rac1 clusterware]$
                                        

両方のノードですべてがオンラインの場合は、Oracle Database 11gのインストールに進むことができます。

 


8. Oracle Databaseソフトウェアのインストール

まず、システムの検証をおこなう必要があります。

[oracle@rac1 clusterware]$  
                                          
./runcluvfy.sh stage -pre dbinst -n rac1,rac2 -r 11gR1
                                        

前述の手順でOracle Clusterwareをインストールしたときと同様に、glibcに関する警告が表示されますが、ここでは新しいバージョンを使用するため無視しても構いません。

次に、インストーラを解凍します。

[root@rac1 ~]#  
                                          
cd /u01/install/
[root@rac1 install]#  
                                          
ls
clusterware  linux.x64_11gR1_clusterware.zip  linux.x64_11gR1_database.zip
[root@rac1 install]#  
                                          
rm -rf clusterware linux.x64_11gR1_clusterware.zip
[root@rac1 install]#  
                                          
unzip linux.x64_11gR1_database.zip
[root@rac1 install]#  
                                          
rm linux.x64_11gR1_database.zip
                                        

インストーラを実行します。

[oracle@rac1 ~]$  
                                          
cd /u01/install/database/
                                          
[oracle@rac1 database]$ ./runInstaller

インストール・ウィンドウが表示されます。ここでは、RACデータベースのコンポーネントを個別に選択できるように、「 Custom」を選択します。


図43

Oracleベースとして「/ u01/app/oracle」を選択します。また、 Software LocationNameおよび Pathフィールドは、デフォルトのままにしておきます。


図44

Cluster Installation」を選択し、「 rac1」ノード(マーク済)と「 rac2」ノードを選択します。


図45

インストーラにより、使用環境の検証がおこなわれます。 スワップ領域は、この構成では十分でない可能性がありますが、これにより問題が発生することはないため、"ユーザー確認済み"の意味でこの項目にマークします。 また、カーネルrmem_defaultパラメータに関する通知も無視します(これも、とくに問題はありません)。


図46

Product Components画面で、必要なコンポーネントを選択します(ここで選択するコンポーネントが少なければ、インストール・プロセスもそれだけ速くなります)。 ここでは、Enterprise Editionのオプションから"Real Application Testing"と"Oracle Partitioning"のみを選択しました。


図47

Privileged Operating Systems Groupsプロンプト画面で、すべての項目で"dba"グループが選択されていることを確認します (本番環境に配置する場合は、セキュリティ上の理由から、これらのグループを分離する必要があります)。


図48

データベースの作成はあとでおこなうため、ここでは「 Install database software only」を選択します。


図49

すべての内容を再確認してから、「 Install」をクリックします。


図50

インストール・プロセスが始まります。 iSCSIとストレージの最適化をまだ実行していないことを考慮に入れると、このプロセスは、ハードウェアによっては最大で1時間程度かかる可能性もあります。


図51

インストールが終わると、両方のノードでインストール後のスクリプトを実行するように求められます。

Oracle NetCA:Oracle RAC用のOracle TNSサービスの構成

Oracle Net Configuration Assistant(Oracle NetCA)を起動します。

[oracle@rac1 ~]$  
                                          
cd /u01/app/oracle/product/11.1.0/db_1/bin/
[oracle@rac1 bin]$  
                                          
./netca
                                        

Cluster」を選択します。


図52

ここではリスナーの構成(Listner configuration)をおこないます。


図53

Add」を選択します。


図54

デフォルト名("LISTENER")のままにします。


図55

TCP」プロトコルのみを選択します。


図56

ここでは、リスナーをOracleのデフォルトのTCPポート1521で実行します。


図57

リスナーは1つで十分です。


図58

終了します。

次に、リスナーがリスニングをおこなっていることを確認します。

[root@rac2 ~]#  
                                          
ps -ef | grep lsnr | grep -v 'grep' | awk '{print $9}'
LISTENER_RAC2
[root@rac2 ~]#  
                                          
/u01/app/crs/bin/crs_stat ora.rac2.LISTENER_RAC2.lsnr
NAME=ora.rac2.LISTENER_RAC2.lsnr
TYPE=application
TARGET=ONLINE
STATE=ONLINE on rac2
                                           
[root@rac2 ~]#

Oracle Database Configuration Assistant(Oracle DBCA):データベースの作成

[oracle@rac1 ~]$  
                                          
cd /u01/app/oracle/product/11.1.0/db_1/bin/
[oracle@rac1 bin]$  
                                          
./dbca
                                        

Real Application Clusters」を選択します。


図59

Create a Database」を選択します。


図60

rac1とrac2の両方のノードが選択されていることを確認します。


図61

データベース作成プロセスにおいてより高い柔軟性を得るため、ここでは「 Custom Database」を選択します。


図62

データベースの名前を入力します。 このガイドでは、"erac.world"という名前をつけます。 SID prefixフィールドが、自動的に"erac"に設定されます。 これにより、各SIDは、"erac1" .. "eracN"などと表示されるようになります。


図63

Oracle Enterprise Managerをインストールするかどうかを指定します。 インストールする場合は、適切な設定をおこないます。


図64

テストのために、重要なOracleアカウントすべてに対して簡単なパスワードを選択することができます。


図65

ここでは拡張RAC構成を構築しようとしているので、ストレージ・オプションとして「 Automatic Storage Manement(ASM)」を選択する必要があります。


図66

各Oracle ASMインスタンスに対し、共有されないPFILEを使用します。 Oracle ASMの構成を集中管理する場合は共有SPFILEの使用を選択することもできますが、その場合は、この重要なファイルをどのストレージ・アレイに保存すべきかという問題が発生します。


図67

Create Diskgroup Windowで、「 Change Disk Discovery Path」をクリックすると、ポップアップ・ウィンドウが表示されます。 ここで、ディスク検出パス(Disk Discovery Path)を設定しなおし、iSCSI LUNのみが検出されるようにする必要があります。 "/dev/iscsi/*/*/part1"を入力します。 これにより、Oracle ASMのディスク検出時に、各iSCSI LUNの最初のパーティションのみが考慮されるようになります。


図68

次に、標準の冗長性(ミラー化)により、異なるストレージ・ノードの2つのiSCSI LUNから"DATA1" ASMディスクグループを作成します。 各LUNは、それぞれ別のストレージ・ノード上にあるため、LUN間のミラー化をおこなう場合、2つの障害グループでDISKGROUPを実行することができます。 この構成により、1つのストレージ・アレイ全体を失っても安全性を確保できます(これについては、あとで説明します)。


図69

新しい+DATA1ディスクグループで「 Oracle-Managed Files」を選択します。


図70

開発目的の場合、フラッシュバックとアーカイブを無効化することができます。


図71

必要のないデータベース・コンポーネント(Oracle Text、Oracle XML DBなど)をすべて無効化します。 これにより、データベース作成時間が 大幅に短縮されます。

Initialization Parameters画面で、このインスタンスで使用する合計のメモリ・サイズを設定できます。 この設定は、memory_targetパラメータの変更により、あとで修正することができます。 ほかのデータベース・パラメータを必要に応じてカスタマイズします。


図72

Oracle Database 11gには、数多くの新しいセキュリティ・オプションが用意されています(これらのオプションはデフォルトで有効になっています)。 すべてをデフォルト設定のままにします。


図73

Enable automatic maintenance tasks」が選択されていることを確認します。


図74

Database Storage画面では、REDOログ、制御ファイルなどに関するパラメータのチューニングをおこなうことができます。 デフォルトは、初期テスト用として適切な設定となっています。


図75

Create Database」のみを選択します。必要な場合は、データベース・スクリプトを生成できます。このスクリプトを使用すると、別のテスト目的などで古いデータベースを削除して新規データベースを作成する場合に、処理を迅速化することができます。


図76

インストールするオプションを示すサマリーが表示されます。 データベース作成プロセスにかかる時間は、インストールするオプションと使用するストレージに応じて長くなる可能性があります。 最後に、作成したデータベースに関する簡単なサマリーを確認することができます。


図77

起動後、データベースは2つのインスタンスerac1とerac2を介して使用可能となります。


図78

拡張されたOracle RAC 11gのデータベース・チューニング

Oracle Database 11gには、学んでおく価値のある拡張RACクラスタ用ソリューションが2つ用意されています。 Oracle ASM 11g機能を備えた拡張RACの詳細については、『Oracle Automatic Storage Management, Under-the-Hood & Practical Deployment Guide』(著者:Nitin Vengurlekarほか、発行:Oracle Press 2008)、または『Oracle Storage Administrators Guide』を参照してください。

優先読取り

Oracle Database 11gには、"優先読取り"と呼ばれる新しい機能があります。この機能を使用すると、DBAは、ローカルでの読取りのための障害グループの指定が可能となります(通常は、該当するデータベース・インスタンスと地理的に近い障害グループを指定します)。 優先読取り機能を有効化するには、Oracle ASMインスタンスに固有のASM_PREFERRED_READ_FAILURE_GROUPSパラメータを設定します。

まず最初に、使用可能な障害グループとディスクグループを確認する必要があります。

[oracle@rac1 ~]$  
                                          
ORACLE_SID=+ASM1 sqlplus / as sysdba
[..]
SQL>  
                                          
col inst format 9
SQL>  
                                          
col path format a36
SQL>  
                                          
col diskgroup format a8
SQL>  
                                          
col diskname format a10
SQL>  
                                          
col failgroup format a10
SQL>  
                                          
col PR format a2
                                           
SQL> SELECT inst_id inst, path, g.name diskgroup,d.name diskname, failgroup, preferred_read PR 2 FROM v$asm_disk d JOIN gv$asm_diskgroup g ON(d.group_number=g.group_number) 3 WHERE mount_status='CACHED' ORDER BY 1;
inst PATH DISKGROU DISKNAME FAILGROUP PR ---- ------------------------------------ -------- ---------- ---------- -- 1 /dev/iscsi/racdata1.asm1/lun0/part1 DATA1 DATA1_0000 DATA1_0000 U 1 /dev/iscsi/racdata2.asm1/lun0/part1 DATA1 DATA1_0002 DATA1_0001 U 2 /dev/iscsi/racdata2.asm1/lun0/part1 DATA1 DATA1_0002 DATA1_0001 U 2 /dev/iscsi/racdata1.asm1/lun0/part1 DATA1 DATA1_0000 DATA1_0000 U
4 rows selected.
SQL>

PR列の"U"は、そのディスクグループが優先読取り用の障害グループに定義されていないことを意味します。 したがって、特定の障害グループに対するOracle ASMの優先読取りを指定することができます(ASM_PREFERRED_READ_FAILURE_GROUPSの構文は、diskgroup_name.failure_group_name,...'となります)。

SQL>  
                                          
ALTER SYSTEM SET ASM_PREFERRED_READ_FAILURE_GROUPS='DATA1.DATA1_0000' SID='+ASM1';
                                           
System altered.
SQL> ALTER SYSTEM SET ASM_PREFERRED_READ_FAILURE_GROUPS='DATA1.DATA1_0001' SID='+ASM2';
System altered.
SQL>

ノードerac1上のOracle ASMで、DATA1_0000から読取りをおこなうように指定(/dev/iscsi/racdata1.asm1/lun0/*で、LUNを使用してiscsi1を指定)し、ノードerac2では、障害グループDATA1_0001から読取りをおこなうように指定します。このパラメータが有効化されているかどうかは、Oracle ASMインスタンスからGV$ASM_DISKの問合せをおこなうことで確認できます。

SQL>  
                                          
SELECT path, g.name diskgroup, d.name diskname, failgroup, mode_status 
  
                                          
 2 FROM v$asm_disk d JOIN v$asm_diskgroup g ON(d.group_number=g.group_number)
  
                                          
 3 WHERE mount_status='CACHED';
                                           
INST PATH DISKGROU DISKNAME FAILGROUP PR ---- ------------------------------------ -------- ---------- ---------- -- 1 /dev/iscsi/racdata1.asm1/lun0/part1 DATA1 DATA1_0000 DATA1_0000 N 1 /dev/iscsi/racdata2.asm1/lun0/part1 DATA1 DATA1_0002 DATA1_0001 Y 2 /dev/iscsi/racdata2.asm1/lun0/part1 DATA1 DATA1_0002 DATA1_0001 Y 2 /dev/iscsi/racdata1.asm1/lun0/part1 DATA1 DATA1_0000 DATA1_0000 N
4 rows selected.
SQL>

読取りを集中的におこなうトラフィックが生成されたあとは、以下の問合せを使用することで、適切なストレージ・アレイから読取りがおこなわれているかどうかを確認できます。

SQL>  
                                          
SELECT inst_id, failgroup, sum(reads), sum(writes) FROM GV$ASM_DISK GROUP BY inst_id, failgroup;
                                           
INST_ID FAILGROUP SUM(READS) SUM(WRITES) ---------- ---------- ---------- ----------- 1 1 DATA1_0000 16976 3778 1 DATA1_0001 3800 2344 2 2 DATA1_0000 2865 2217 2 DATA1_0001 17401 2217
6 rows selected.
SQL>

これを見ると、Oracleにおいて、erac1では障害グループDATA1_0000から優先的に読取りがおこなわれ、erac2ではDATA1_0001が優先されていることが、はっきりとわかります。

注: Oracle ASMインスタンス上でのASM_PREFERRED_READ_FAILURE_GROUPSの設定を、SPFILEではなくIFILEを使用しておこなっているとき(クラスタ化されたファイル・システムのないRACクラスタの場合など)は、この設定を/u01/app/oracle/admin/+ASM/pfile/init.oraファイルにも適用し、設定を永続的なものとしてください。

高速ディスク再同期化

Oracle Database 11gでは、障害グループの同期を実行するために必要な時間が大幅に短縮されています。 ここでの11gと10gのおもな違いは、10gの場合、障害が発生したディスクがディスクグループから完全に除外されていたのに対し、11gでは修正または書込みがおこなわれたエクステントだけを更新する同期方法が取り入れられている点です。 高速ディスク再同期化(高速ミラー再同期化とも呼ばれる)では、Oracle ASMのディスクグループに11.1レベルの互換性があることが求められます。 (高速ディスク再同期化の使用方法に関する詳細については、『Oracle Databaseストレージ管理者ガイド 11gリリース1』の第4章を参照してください。)

拡張RACでの投票ディスクおよびOCRミラーの確認

インストール後は、クラスタに関してすべてが正常かどうかを確認する必要があります。

[root@rac1 ~]#  
                                          
cd /u01/app/crs/bin
[root@rac1 bin]#  
                                          
./crs_stat -t
Name               Type           Target    State     Host
------------------------------------------------------------
ora.erac.db        application    ONLINE    ONLINE    rac1
ora....c1.inst     application    ONLINE    ONLINE    rac1
ora....c2.inst     application    ONLINE    ONLINE    rac2
ora....SM1.asm     application    ONLINE    ONLINE    rac1
ora....C1.lsnr     application    ONLINE    ONLINE    rac1
ora.rac1.gsd       application    ONLINE    ONLINE    rac1
ora.rac1.ons       application    ONLINE    ONLINE    rac1
ora.rac1.vip       application    ONLINE    ONLINE    rac1
ora....SM2.asm     application    ONLINE    ONLINE    rac2
ora....C2.lsnr     application    ONLINE    ONLINE    rac2
ora.rac2.gsd       application    ONLINE    ONLINE    rac2
ora.rac2.ons       application    ONLINE    ONLINE    rac2
ora.rac2.vip       application    ONLINE    ONLINE    rac2
                                           
[root@rac1 bin]#
                                        

11gでは、投票ディスクをオンラインで管理できます。 ここでは、2つの投票ディスク(iSCSIストレージ#2およびNFS投票ディスク)が、Oracle Clusterwareのインストール・フェーズ中に追加されなかった場合に、手動で追加する方法を見ていきます。

[root@rac1 bin]#  
                                          
./crsctl query css votedisk
0. 0 /dev/iscsi/racdata1.voting/lun0/part1
Located 1 voting disk(s).
[root@rac1 bin]#  
                                          
./crsctl add css votedisk /dev/iscsi/racdata2.voting/lun0/part1
Now formatting voting disk: /dev/iscsi/racdata2.voting/lun0/part1.
Successful addition of voting disk /dev/iscsi/racdata2.voting/lun0/part1.
[root@rac1 bin]#  
                                          
./crsctl add css votedisk /votedisk/third_votedisk.crs
Now formatting voting disk: /votedisk/third_votedisk.crs.
Successful addition of voting disk /votedisk/third_votedisk.crs.
                                           
[root@rac1 bin]#
                                        

投票ディスクの構成を確認します。

[root@rac1 bin]#  
                                          
./crsctl query css votedisk
0. 0     /dev/iscsi/racdata1.voting/lun0/part1
1. 0     /dev/iscsi/racdata2.voting/lun0/part1
2. 0     /votedisk/third_votedisk.crs
Located 3 voting disk(s).
                                           
[root@rac1 bin]#  
                                          
./crsctl check crs
Cluster Synchronization Services appears healthy
Cluster Ready Services appears healthy
Event Manager appears healthy
[root@rac1 bin]#
                                        

Oracle Clusterwareのログ(/u01/app/crs/log/rac1/alertrac1.log)では、以下のように表示されます。

2008-05-31 17:07:32.302
[cssd(4506)]CRS-1605:CSSD voting file is online: /dev/iscsi/racdata2.voting/lun0/part1. Details in /u01/app/crs/
log/rac1/cssd/ocssd.log.
[cssd(4506)]CRS-1601:CSSD Reconfiguration complete. Active nodes are rac1 rac2 .
2008-05-31 17:08:07.341
[cssd(4506)]CRS-1605:CSSD voting file is online: /votedisk/third_votedisk.crs. Details in /u01/app/crs/log/rac1/
cssd/ocssd.log.
[cssd(4506)]CRS-1601:CSSD Reconfiguration complete. Active nodes are rac1 rac2.

また、OCRミラーによって保護されているOCRも確認してください。

[root@rac1 bin]#  
                                          
./ocrcheck
Status of Oracle Cluster Registry is as follows :
               Version                      :          2
               Total space     (kbytes)     :     327188
               Used space     (kbytes)      :       3848
               Available     space (kbytes) :     323340
               ID                           : 2120916034
               Device/File     Name         :     /dev/iscsi/racdata1.ocr/lun0/part1
                                          Device/File integrity check     succeeded
               Device/File     Name         :     /dev/iscsi/racdata2.ocr/lun0/part1
                                          Device/File integrity check     succeeded
      
                                          
Cluster registry integrity check succeeded
[root@rac1 bin]#

すべてに問題がなければ、Oracle RACの実際のフェイルオーバー機能に関するストレス・テストを実行することができます。


1ページ 2ページ 3ページ