この章では、データベースサービスのアベイラビリティ(可用性)を高めるためのRed Hat Enterprise Linuxの設定方法について説明します。
![]() | 注記 |
---|---|
ここでは、データベース設定手順の1つの例を示します。設定手順は、データベース製品のバージョンごとに異なることに注意してください。このため、ここで説明している内容が使用しているデータベースに該当しないこともあります。 |
データベースサービスは、アベイラビリティの高いデータをデータベースアプリケーションに提供できます。その後、アプリケーションは、ネットワークアクセスをWebサーバなどのデータベースクライアントシステムに提供できます。サービスがフェイルオーバーすると、アプリケーションは新しいクラスタシステムを通じて共有データベースのデータにアクセスします。ネットワークアクセス可能なデータベースサービスには、通常、1つのIPアドレスが割り当てられていて、クライアントの透過的なアクセスを維持できるようにサービスとともにフェイルオーバーされます。
ここでは、Oracleデータベースのクラスタサービスの設定例について説明します。サービススクリプトの変数はOracleの構成によって異なりますが、ここで説明している例は個別の環境でサービスを設定するのに役立ちます。サービスのパフォーマンスを向上させる方法については、項4.2 を参照してください。
例では、以下のように仮定しています。
サービスは、Oracleクライアントが使用する1つのIPアドレスを含んでいる。
サービスには、Oracleソフトウェア(/u01)とOracleデータベース(/u02)用の2つのマウント済みファイルシステムがある。 これらはサービスを追加する前に設定されている。
サービスを追加する前に、oracleという名前のOracleの管理者アカウントがサービスを実行するクラスタシステム上に作成されている。
管理ディレクトリは、Oracleサービスとともに使用する共有ディスク上にある(例: /u01/app/oracle/admin/db1)。
各クラスタシステムの Oracleサービスに早急にアクセスできる一貫したユーザー/グループ設定を作成します。 例は次の通りです。
mkdir /users groupadd -g 900 dba groupadd -g 901 oinstall useradd -u 901 -g 901 -d /users/oracle -m oracle usermod -G 900 oracle |
Oracleサービスの例では、/users/oracleに配置し、Oracle管理者アカウントが所有する必要がある3つのスクリプトを使用します。oracleスクリプトは、Oracleサービスを起動/停止するのに使用します。このスクリプトはサービスを追加するときに指定します。このスクリプトは、Oracleの他のサンプルスクリプトを呼び出します。startdbとstopdbスクリプトは、データベースを起動/停止します。アプリケーションは数多くの方法でOracleデータベースとやりとりすることができます。
Oracleの起動、停止、状態の確認に使用されるoracleスクリプトの例は次の通りです。
#!/bin/sh # # Cluster service script to start, stop, and check status of oracle # cd /users/oracle case $1 in start) su - oracle -c ./startdb ;; stop) su - oracle -c ./stopdb ;; status) status oracle ;; esac |
Oracle Database Serverインスタンスを起動するためのstartdbスクリプトの例を以下に示します。
#!/bin/sh # # # Script to start the Oracle Database Server instance. # ######################################################################## # # ORACLE_RELEASE # # Specifies the Oracle product release. # ######################################################################## ORACLE_RELEASE=9.2.0 ######################################################################## # # ORACLE_SID # # Specifies the Oracle system identifier or "sid", which is the name of # the Oracle Server instance. # ######################################################################## export ORACLE_SID=TEST ######################################################################## # # ORACLE_BASE # # Specifies the directory at the top of the Oracle software product and # administrative file structure. # ######################################################################## export ORACLE_BASE=/u01/app/oracle ######################################################################## # # ORACLE_HOME # # Specifies the directory containing the software for a given release. # The Oracle recommended value is $ORACLE_BASE/product/<release> # ######################################################################## export ORACLE_HOME=/u01/app/oracle/product/${ORACLE_RELEASE} ######################################################################## # # LD_LIBRARY_PATH # # Required when using Oracle products that use shared libraries. # ######################################################################## export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:$LD_LIBRARY_PATH ######################################################################## # # PATH # # Verify that the users search path includes $ORACLE_HOME/bin # ######################################################################## export PATH=$PATH:${ORACLE_HOME}/bin ######################################################################## # # This does the actual work. # # Start the Oracle Server instance based on the initSID.ora # initialization parameters file specified. # ######################################################################## /u01/app/oracle/product/9.2.0/bin/sqlplus << EOF sys as sysdba spool /home/oracle/startdb.log startup pfile = /u01/app/oracle/product/9.2.0/admin/test/scripts/init.ora open; spool off quit; EOF exit |
Oracle Database Serverインスタンスを停止するためのstopdbスクリプトの例を以下に示します。
#!/bin/sh # # # Script to STOP the Oracle Database Server instance. # ###################################################################### # # ORACLE_RELEASE # # Specifies the Oracle product release. # ###################################################################### ORACLE_RELEASE=9.2.0 ###################################################################### # # ORACLE_SID # # Specifies the Oracle system identifier or "sid", which is the name # of the Oracle Server instance. # ###################################################################### export ORACLE_SID=TEST ###################################################################### # # ORACLE_BASE # # Specifies the directory at the top of the Oracle software product # and administrative file structure. # ###################################################################### export ORACLE_BASE=/u01/app/oracle ###################################################################### # # ORACLE_HOME # # Specifies the directory containing the software for a given release. # The Oracle recommended value is $ORACLE_BASE/product/<release> # ###################################################################### export ORACLE_HOME=/u01/app/oracle/product/${ORACLE_RELEASE} ###################################################################### # # LD_LIBRARY_PATH # # Required when using Oracle products that use shared libraries. # ###################################################################### export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:$LD_LIBRARY_PATH ###################################################################### # # PATH # # Verify that the users search path includes $ORACLE_HOME/bin # ###################################################################### export PATH=$PATH:${ORACLE_HOME}/bin ###################################################################### # # This does the actual work. # # STOP the Oracle Server instance in a tidy fashion. # ###################################################################### /u01/app/oracle/product/9.2.0/bin/sqlplus << EOF sys as sysdba spool /home/oracle/stopdb.log shutdown abort; spool off quit; EOF exit |
クラスタ設定ツールを使用して Oracleサービスを追加するには、次を実行してください。
メイン メニュー => システム設定 => サーバー設定 => クラスタ と進んで選択するか、redhat-config-clusterをシェルプロンプトで入力してクラスタ設定ツール を起動してください。デフォルトではクラスタステータスツール が表示されます。
クラスタステータスツールメニューからクラスタ => 設定を選択し、クラスタ設定ツールを起動してください。
サービスタブをクリックしてください。
Oracle サービスの追加
新規をクリックすると サービスダイアログが表示されます。
Oracle サービスの サービス名 を入力してください。
フェイル オーバー ドメインを 選択するか、Noneのままにしてください。
数字(秒単位)を入力し、 init スクリプトのstatus機能で Oracle サービスの健康状態を調べます。
/home/oracle/oracleのような ユーザー スクリプト を入力してください。
OKをクリックしてください。
OracleサービスのIPアドレスを追加します。
Oracleサービスを選択して Add Childをクリックします。
サービス IPアドレスを選択して、 OKをクリックするとサービス IPアドレスダイアログが表示されます。
IP アドレスを入力してください。
ネットマスクを入力するか Noneのままにしてください。
ブロードキャスト アドレスを入力するか、Noneのままにしてください。
OKをクリックします。
Oracleサービスと管理ファイルのデバイスを追加します。
Oracleサービスを選択して Add Childをクリックします。
デバイスを追加を選択し OKをクリックするとデバイス ダイアログが表示されます。
デバイス 特別 ファイル (例:/dev/sdb5) を入力してください。
マウント ポイントフィールドに /u01を入力してください。
FS タイプでファイル システム タイプを選択するか 空欄のままにしておいてください。
rw (読み書き)などのマウント ポイントオプションを入力してください。
強制アンマウントに チェックを付けるか外してください。
OKをクリックします。
Oracleデータベースファイルのデバイスを追加してください。
Oracleサービスを選択して Add Childをクリックします。
デバイスを追加を選択し OKをクリックするとデバイス ダイアログが表示されます。
デバイス 特別 ファイル (例: /dev/sdb6) を入力してください。
マウント ポイントフィールドに /u02を入力します。
FS タイプでファイル システム タイプを選択するか 空欄のままにしておいてください。
rw (読み書き)などのマウント ポイントオプションを入力してください。
強制アンマウントに チェックを付けるか外してください。
OKをクリックします。
ファイル => 保存と選択し、 Oracleサービスを保存します。