Comments
Description
Transcript
DB2 for UNIX HA 構成ガイド(V8.1 ESE 共通編)
DB2 for UNIX HA 構成ガイド(V8.1 ESE 共通編) 日本アイ・ビー・エム(株) インフォメーション・マネージメント技術部 第 1 版 2003 年 10 月 28 日 1 はじめに この文章は、Linux および UNIX プラットフォーム上において HA クラスターを 構成する際の DB2 の構成を簡単にまとめたガイドです。 Linux をベースにしていますが、ほとんどの部分がプラットフォーム共通ですので、 必要な部分を適宜読み替えて下さい。 2 準備 2.1 ホスト名 プライマリ側を node-1、セカンダリ側を node-2 とします。hostname コマンドで 返されるホスト名を確認しておきます。 2.2 カーネルパラメータの設定 V8.1 からは DB2 の起動時にパラメータを動的に変更する機能もありますが、起動 時に有効にするために、デフォルトのシステム制御構成ファイル /etc/sysctl.conf に次の項目を追加します。 kernel.msgmni = 1024 kernel.sem = 250 256000 32 1024 変更後は、sysctl –p で変更を有効にします 2.3 ユーザ情報の確認 ディスクの引き継ぎの際にファイルのアクセス権などの問題があるため、両ノー ドで空いている UID、GID を確認しておく必要があります。 2.4 ネットワーク(TCP/IP) HA クラスター・ソフトによってはハートビート用に複数のネットワーク・インタ ーフェース・カード(NIC)が必要ですので、ネットワークの構成も NIC 分行い 1 ます。 DPF を構成する際にはインターコネクト用に高速な方の NIC を利用します。 2.5 名前解決 ホスト名から IP アドレスが解決できるように、/etc/hosts もしくは DNS の設定を 行います。この際に、HA クラスターで管理するサービス IP アドレス(フローテ ィング IP アドレス)に対応するホスト名の名前解決も出来るように登録しておき ます。 2.6 RPC の設定 xinetd の rsh を有効にします。また、インスタンス・ユーザのホームディレクト リに.rhosts を作成し node-1、node-2 からの rsh を許可します。 2.7 TCP ポート DB2 では通常 6 個の TCP ポートを使用します。高速コミュニケーション・マネー ジャー (FCM) 通信用に 4 ポート(60000∼60004)、DB2 のサービスに 1 ポート (50000)、DAS 用に 1 ポート(523)です。特に DAS が使用するポートは変更 できないので注意が必要です。事前に/etc/services ファイルや、netstat で予約済 み、もしくは使用中でないか確認しておきます。 2.8 データベース・ディレクトリのアクセス権 デフォルトのインスタンス・ホーム以外の共有ディスク上にデータベース・ディ レクトリを作成する場合には、ディレクトリのパーミッションをインスタン・ス ユーザーが読み書きできるように変更します。この作業は、node-1 と node-2 の両 方で行います。 3 プライマリー・サイト(node-1)への DB2 ESE のインストール 3.1 GUI インストール db2setup コマンドを使ってインストールを行います。 例)# /mnt/cdrom/db2setup 4.のインストールアクションの選択で「設定を応答ファイルに保管する(S)」にチ ェックを付けて、node-2 に同じ構成でインストールするために応答ファイルを作 2 成します。デフォルトでは、応答ファイルは,/root/db2ese.res に保存されます。 また、das とインスタンスを作成しておきます。DAS ユーザ及びインスタンスを 作成する UID、GID は事前に調べておいた UID、GID 明示的に指定します。 3.2 CUI インストール X Window がインストールされていない場合や、リモートから TELNET 経由でイ ンストールする場合には応答ファイルを使ってインストールを行います。 応答ファイルの例) *----------------------------------------------------* Generated response file used by the DB2 Setup wizard * generation time: 03/10/17 0:12 *----------------------------------------------------* Product Installation LIC_AGREEMENT PROD = ACCEPT = ENTERPRISE_SERVER_EDITION INSTALL_TYPE = CUSTOM COMP = XML_EXTENDER COMP = DB2_CONTROL_CENTER COMP = APPLICATION_DEVELOPMENT_TOOLS COMP = SQL_PROCEDURES COMP = FIRST_STEPS COMP = INSTANCE_SETUP_SUPPORT COMP = RELATIONAL_CONNECT_FOR_DB2 COMP = CONNECT COMP = XML_SAMPLES COMP = CONFIGURATION_ASSISTANT COMP = DB2_SAMPLE_DATABASE_SOURCE COMP = GSE_CLIENT COMP = DB2_SAMPLE_APPLICATIONS COMP = CLIENT_APPLICATION_ENABLER COMP = REPLICATION COMP = DEV_CENTER COMP = JAVA_SUPPORT COMP = DB2_ENGINE COMP = COMMUNICATION_SUPPORT_TCPIP 3 *----------------------------------------------* Das properties *----------------------------------------------DAS_CONTACT_LIST * = LOCAL DAS user DAS_USERNAME = dasusr1 DAS_UID = 701 DAS_GID = 701 DAS_GROUP_NAME = dasadm1 DAS_HOME_DIRECTORY DAS_PASSWORD = /home/dasusr1 = 232259359285355214411 ENCRYPTED = DAS_PASSWORD * ---------------------------------------------* Instance properties * ---------------------------------------------INSTANCE = inst1 inst1.TYPE = ese inst1.WORDWIDTH * = 32 Instance-owning user inst1.NAME = db2inst1 inst1.UID = 702 inst1.GID = 702 inst1.GROUP_NAME = db2grp1 inst1.HOME_DIRECTORY inst1.PASSWORD ENCRYPTED = /home/db2inst1 = 232262422265326213352407 = inst1.PASSWORD inst1.AUTOSTART = NO inst1.AUTHENTICATION inst1.SVCENAME = SERVER = db2c_db2inst1 inst1.PORT_NUMBER = 50000 inst1.FCM_PORT_NUMBER inst1.MAX_LOGICAL_NODES * = 60000 =4 Fenced user inst1.FENCED_USERNAME inst1.FENCED_UID = 703 inst1.FENCED_GID = 703 = db2fenc1 4 inst1.FENCED_GROUP_NAME = db2fgrp1 inst1.FENCED_HOME_DIRECTORY inst1.FENCED_PASSWORD ENCRYPTED = /home/db2fenc1 = 232262422270333242329407 = inst1.FENCED_PASSWORD *----------------------------------------------* Installed Languages *----------------------------------------------LANG = EN LANG = JP インストールの例) # ./db2setup –r db2ese.rsp サンプルファイルが/mnt/cdrom/db2/linux/samples/以下にありますので参考にし て下さい。 CHECK POINT DAS はホームディレクトリを共有ディスクに置く インスタンス・ユーザはホームディレクトリを共有ディスクに置く 隔離ユーザ(ユーザ定義関数用)のホームディレクトリも共有ディスクに置く 3.3 FixPak の適用,インスタンス,DAS のアップデートを行う 例) # cd [FixPak を展開して出来たディレクトリ] # ./installFixPak # /opt/IBM/db2/V8.1/instance/dasupdt # /opt/IBM/db2/V8.1/instance/db2iupdt db2inst1 3.4 構成パラメータ「DB2SYSTEM」1の変更 インスタンス・ユーザで DB2SYSTEM の値を変更します。DAS を共有する場合 このパラメーターは、ユーザーおよびデータベース管理者が DB2 サーバー・システムの 識別に使用する名前を指定します。可能であれば、この名前はご使用のネットワーク内で ユニークである必要があります。この名前は、コントロール・センターのオブジェクト・ ツリーのシステム・レベルで表示されるので、管理者がコントロール・センターから管理 できるサーバー・システムを識別する場合に役立ちます。 1 5 には、サービス IP アドレス(フローティング IP アドレス)に対応するホスト名 に変更します。 例) $ db2 update admin config using DB2SYSTEM [hostname] 3.5 sample データベースを作成して、db2 が利用できることを確認します。 sample データベースは共有ディスクへ作成されます。デフォルトではインスタン ス・ホーム以下に作成されます。 例) # su – db2inst1 $ db2sampl 3.6 DAS,インスタンスの停止 例) # su – db2inst1 $ db2stop $ exit # su – dasusr1 $ db2admin stop 4 セカンダリー・サイト(node-2)への DB2 ESE のインストール 4.1 共有ディスクの引き継ぎ(手動) 手動で共有ディスクを node-2 へ引き継ぎます。 4.2 DB2 のインストール 2 台のインストールオプションは、同じにする必要があるので以下の方法でインス トールを実行します。この際、node-1 で作成した DAS ユーザのホームディレクト リは上書きされるので退避しておきます。 例) # mv /home/dasusr1 /home/dasusr1.node-1 6 db2setup を使った GUI インストール db2setup を使った GUI インストールを行います。この際、node-1 でカ スタムインストールを選択した場合には node-2 で同じオプションを選択 します。 また、DAS は作成しますがインスタンスの作成は必要ありません。 応答ファイル使ったインストール node-1 で応答ファイルを作成した応答ファイル 2.はそれを編集してイ ンストールを行います。この際、インスタンスの部分を削除して DAS の みを作成します。 例) # ./db2setup -r [応答ファイル名] インストール後に、DAS ユーザのホームディレクトリのバックアップを戻します。 # mv /home/dasusr1 /home/dasusr1.node-2 # mv /home/dasusr1.node-1 /home/dasusr1 4.3 FixPak の適用,DAS のアップデートを行う 例) # cd [FixPak を展開して出来たディレクトリ] # ./installFixPak # /opt/IBM/db2/V8.1/instance/dasupdt 4.4 インスタンス用のグループとユーザを作成する(db2inst1, db2fenc1) groupadd でグループを作成します。この際、node-1 と同じ GID を使用します。 例) # groupadd -g 702 db2grp1 # groupadd -g 703 db2fgrp1 useradd でユーザを作成します。この際、ホームディレクトリを退避しておき、作 成後に戻します。また、node-1 と同じ UID を使用します。ユーザ名のホームディ レクトリも node-1 で作成したものと同一にします。 7 例) # mv /home/db2inst1 /home/db2inst1.org # mv /home/db2fenc1 /home/db2fenc1.org # useradd -u 702 -g db2grp1 db2inst1 # useradd -u 703 -g db2fgrp1 db2fenc1 # mv /home/db2inst1 /home/db2inst1.new # mv /home/db2fenc1 /home/db2fenc1.new # mv /home/db2inst1.org /home/db2inst1 # mv /home/db2fenc1.org /home/db2fenc1 4.5 /etc/services の編集 /etc/services を node-1 に合わせて編集します。 例) DB2_db2inst1 60000/tcp DB2_db2inst1_1 60001/tcp DB2_db2inst1_2 60002/tcp DB2_db2inst1_END 60003/tcp db2c_db2inst1 50000/tcp 4.6 node-2 での稼動確認 node-2 で DB2 が稼動することを確認します。 例) $ $ db2start restart HOSTNAME [ホスト名] DBPARTITIONNUM [ホスト名]には、HA クラスター・ソフトの DB2 オプションに合わせて2、サービ ス・ホスト名(サービス IP アドレスに対応した仮想ホスト名)か node-2 のホス ト名のどちらかを使用します。 $INSTANCE_HOME/sqllib/db2nodes.cfg が[ホスト名]に合わせて変更されます。 DB2 の引継ぎのシェルで、単純に db2start を使うタイプではサービス・ホスト名を使い ます。また、DB2 の引継ぎのシェルで db2gcf コマンドを使うタイプでは node-2 のホスト 名を使います。 2 8 例) 0 node-2 0 4.7 node-2 でデータベース SAMPLE が利用できることを確認する 5 OS の起動時に、DB2、DAS が自動起動しないように設定しておく 5.1 OS の起動時に、db2start が起動しないようにしておく どちらか片方のノードで以下のコマンドを実行します。 例) db2iauto -off db2inst1 5.2 OS の起動時に、db2admin start が起動しないようににしておく どちらか片方のノードで以下のコマンドを実行します。 例) dasauto -off 5.3 障害モニター機能の停止(DAS) クラスタの場合、インスタンスの始動とシャットダウンは HA クラスタ・ソフト により制御されるため、障害モニター機能をオフにする必要があります。 DAS はデフォルトでこの機能が有効になっているため、以下のコマンドを使いオ フにします。 例)DAS ユーザで $ db2fm –i dasusr1 –f no また、全てのインスタンスをクラスター化し障害モニター機能を使用しない場合 には、障害モニター・デーモンが起動しないように/etc/inittab を変更しておきま す3。 例)/etc/inittab 既に起動中のデーモンを停止するには、プロセスを kill するのではなく db2fm コマンド の-d オプションで停止します。 例)$ db2fmcu -d 3 9 # fmc:2345:respawn:/opt/IBM/db2/V8.1/bin/db2fmcd #DB2 Fault Monitor Coordinator 以上 10