Sun Cluster 3.1 Data Service for MySQL ガイド

Sun Cluster HA for MySQL のインストールと構成

Sun Cluster HA for MySQL のインストールと構成

表 1–1 に、 Sun Cluster HA for MySQL のインストールと構成に必要な作業を示します。指定された順番どおりに、各作業を行なってください。

表 1–1 作業マップ : Sun Cluster HA for MySQL のインストールと構成

作業 

参照先 

インストールを計画する 

Sun Cluster HA for MySQL の概要

Sun Cluster HA for MySQL のインストールと構成の計画

MySQL をインストールして構成する 

MySQL のインストールと構成方法

インストールと構成を確認する 

MySQL のインストールと構成の確認方法

Sun Cluster HA for MySQL パッケージをインストールする 

scsintall ユーティリティーを使用して Sun Cluster HA for MySQL パッケージをインストールする方法

Sun Cluster HA for MySQL を登録して構成する 

フェイルオーバーサービスとしての Sun Cluster HA for MySQL の登録と構成方法

Sun Cluster HA for MySQL のインストールと構成を確認する 

Sun Cluster HA for MySQL のインストールと構成の確認方法

fmv1; の障害モニターを理解する 

Sun Cluster HA for MySQL 障害モニターの概要

Sun Cluster HA for MySQL をデバッグする 

Sun Cluster HA for MySQL のデバッグ

Sun Cluster HA for MySQL 使用時に SC3.1 にアップグレードする 

Sun Cluster HA for MySQL 使用時に SC3.1 にアップグレードする

Sun Cluster HA for MySQL 使用時に MySQL を 3.23.54 から 4.0.12 にアップグレードする  

Sun Cluster HA for MySQL 使用時に MySQL を 3.23.54 から 4.0.12 にアップグレードする

Sun Cluster HA for MySQL の概要

MySQL ソフトウェアは、超高速で堅牢なマルチスレッドおよびマルチユーザー型の SQL (Structured Query Language) データベースサーバーを提供します。MySQL サーバーはミッションクリティカルで高負荷の実稼働システムを対象にしていると同時に、大量に配備されるソフトウェアへの組み込みも対象にしています。MySQL は MySQL ABTM の商標です。

MySQL は、GNU (GNU 一般公衆利用許諾契約条件) のもとで無料で利用でき、http://www.mysql.com からダウンロードできます。

Sun Cluster HA for MySQL データサービスのメカニズムによって、MySQL サービスの順序正しい起動、停止、障害モニター、自動フェイルオーバーを実行できます。次の MySQL コンポーネントは、Sun Cluster HA for MySQL データサービスによって保護されます。

表 1–2 コンポーネントの保護

コンポーネント 

保護する対象 

MySQL サーバー 

Sun Cluster HA for MySQL  

Sun Cluster HA for MySQL のインストールと構成の計画

ここでは、Sun Cluster HA for MySQL のインストールと構成の計画について説明します。

構成上の制限事項


注意 – 注意 –

次の制限事項を守らないと、データサービスの構成がサポートされない場合があります。


ここで示す制限事項を考慮して、Sun Cluster HA for MySQL のインストールと構成の計画を行ってください。ここでは、Sun Cluster HA for MySQL にのみ適用されるソフトウェアとハードウェア構成の制限事項を示します。

すべてのデータサービスに適用される制限事項については、『Sun Cluster ご使用にあたって』を参照してください。

構成の要件


注意 – 注意 –

次の要件を満たさないと、データサービスの構成がサポートされない場合があります。


ここで示す要件に従って、Sun Cluster HA for MySQL のインストールと構成の計画を行ってください。これらの要件は、Sun Cluster HA for MySQL にのみ適用されます。 Sun Cluster HA for MySQL のインストールと構成を始める前に、次の要件を満たしておく必要があります。

MySQL のインストールと構成

ここでは MySQL をインストールして構成する手順について説明します。

これ以降のセクションでは、MySQL の特定のディレクトリが参照されます。参照で使用される一般的なパス名は次のとおりです。これらのパス名は前のセクションで説明した例の中で使用されています。構成上の制限事項を参照してください。

MySQL のインストールと構成方法

次の手順で、MySQL をインストールして構成します。

  1. Sun Cluster における MySQL の配備方法を決定 – MySQL をどのように配備するかを決定する必要があります。

    • 配備する MySQL インスタンス数を決定します。

    • 各 MySQL インスタンスで使用するクラスタファイルシステムを決定します。

  2. MySQL クラスタファイルシステムのマウント – Sun Cluster における MySQL の配備方法を決定してから、クラスタファイルシステムがマウントされていることを確認する必要があります。


    注 –

    MySQL インスタンスにフェイルオーバーファイルシステムを使用させる場合は、手動でファイルシステムをマウントする必要があります。


  3. Sun Cluster 内の全ノードへの MySQL のインストール – MySQL は広域ファイルシステムにインストールすることをお勧めします。ローカルファイルシステムにソフトウェアをインストールした場合とクラスタファイルシステムにインストールした場合の長所と短所については、『Sun Cluster データサービスのインストールと構成 』の「アプリケーションバイナリの格納先の決定」を参照してください。

    • http://www.mysql.com から MySQL をダウンロードします。— しかし、MySQL ソフトウェア用にローカルディスクを使用する予定の場合、この手順を Sun Cluster 内のすべてのノード上で繰り返す必要があります。

  4. MySQL を実行するクラスタ内のすべてのノードで MySQL 用の mysql-user と mysql-group を作成します。

    • Sun Cluster のすべてのノードで、/etc/group にエントリを作成します。


      # groupadd -g 1000 mysql
      

      Sun Cluster のすべてのノードで、/etc/passwd にエントリを作成します。このユーザーのパスワードはロックしておく必要があります。


      # useradd -u 1000 -g 1000 -d /global/mysql -s /bin/sh mysql 
      
  5. MySQL バイナリ用の所有者とグループを変更します。

    • MySQL バイナリがすべてのノードにある場合は、すべてのノードでこの手順を繰り返す必要があります。


      # chown -R mysql:mysql /global/mysql
      
  6. MySQL インスタンス用の MySQL データベースディレクトリを作成します。


    # mkdir <MySQL Database directory>
    #

    注 –

    <MySQL Database directory> については、構成上の制限事項を参照してください。 構成上の制限事項の例と次の例で使用されている一般的なパス名の一覧については、MySQL のインストールと構成を参照してください。



    例 1–4 MySQL インスタンス用のディレクトリ

    次に、ある MySQL インスタンスの例を示します。MySQL は http://www.mysql.com から広域ファイルシステムとしてマウントされている /global/mysql にインストールされています。この MySQL インスタンス用の MySQL データベースディレクトリ/global/mysql-data です。


    # cd /global/mysql
    #
    # ls -l
    -rw-r--r--   1 mysql    mysql      19106 Dec 10 14:52 COPYING
    -rw-r--r--   1 mysql    mysql      28003 Dec 10 14:52 COPYING.LIB
    -rw-r--r--   1 mysql    mysql      44577 Dec  5 10:37 ChangeLog
    -rw-r--r--   1 mysql    mysql       6811 Dec 10 14:53 INSTALL-BINARY
    -rw-r--r--   1 mysql    mysql       1976 Dec  5 10:37 README
    drwxr-xr-x   2 mysql    mysql       1024 Dec 13 18:05 bin
    -rwxr-xr-x   1 mysql    mysql        773 Dec 10 15:34 configure
    drwxr-x---   3 mysql    mysql        512 Apr  3 12:23 data
    drwxr-xr-x   2 mysql    mysql       1024 Dec 10 15:35 include
    drwxr-xr-x   2 mysql    mysql        512 Dec 10 15:35 lib
    drwxr-xr-x   2 mysql    mysql        512 Dec 10 15:35 man
    -rw-r--r--   1 mysql    mysql    2582089 Dec 10 14:47 manual.html
    -rw-r--r--   1 mysql    mysql    2239278 Dec 10 14:47 manual.txt
    -rw-r--r--   1 mysql    mysql      94600 Dec 10 14:47 manual_toc.html
    drwxr-xr-x   6 mysql    mysql        512 Dec 10 15:35 mysql-test
    drwxr-xr-x   2 mysql    mysql        512 Dec 10 15:35 scripts
    drwxr-xr-x   3 mysql    mysql        512 Dec 10 15:35 share
    drwxr-xr-x   7 mysql    mysql       1024 Dec 10 15:35 sql-bench
    drwxr-xr-x   2 mysql    mysql        512 Dec 10 15:35 support-files
    drwxr-xr-x   2 mysql    mysql        512 Dec 10 15:35 tests
    #

  7. 要件に応じた MySQL ファイル my.cnf を作成します。— Sun Cluster HA for MySQL データサービスには my.cnf のサンプルファイルが 2 つ (マスター構成用とスレーブ構成用) 用意されています。


    注 –

    Sun Cluster の初回のインストール時に Sun Cluster HA for MySQL パッケージ (SUNWscmys) をインストールしなかった場合は、Sun Cluster HA for MySQL パッケージのインストールを参照してパッケージを SC3.1 にインストールする必要があります。そのあと、MySQL のインストールと構成作業を続けてください。


    /opt/SUNWscmys/etc/my.cnf_sample_[master|slave] はサンプルの MySQL 構成ファイルであり、このファイルを使用すると、独自の MySQLインスタンス用の <MySQL Databasedirectory> /my.cnf を作成できます。ただし、各自の構成値が反映されるように、ファイルを編集する必要があります。


    # cp /opt/SUNWscmys/etc/my.cnf_sample_master  \
     <MySQL Databasedirectory>/my.cnf  
    
  8. MySQL インスタンスのブートストラップを実行します。— これによって、特権テーブル db、host、user、tables_priv、および columns_priv が func テーブルとともに MySQL データベース内に作成されます。


    # cd <MySQL Basedirectory>
    

    # ./scripts/mysql_install_db  \
    --datadir=<MySQL Database directory>
    
  9. <MySQL Database Directory> 内にログファイルを作成します。


    # mkdir <MySQL Database Directory>/logs  
    
  10. <MySQL Database Directory> 用の所有者とグループを変更します。


    # chown -R mysql:mysql <MySQL Database Directory>
    
  11. <MySQL Database Directory>/my.cnf ファイルのアクセス権を変更します。


    # chmod 644  <MySQL Database Directory>/my.cnf

MySQL の インストールと構成の確認

ここでは、 インストールと構成を確認する手順について説明します。

MySQL のインストールと構成の確認方法

次の手順でインストールと構成を確認します。データサービスをまだインストールしていないため、この手順ではアプリケーションの可用性が高いかどうかを確認することはできません。


注 –

MySQL のインストールと構成を確認する前に、MySQL に対応する論理ホスト名が利用できることを確認してください。論理ホスト名を利用するには、フェイルオーバーサービスとしての Sun Cluster HA for MySQL の登録と構成方法 の手順 2 から手順 7 までを完了する必要があります。


  1. インスタンス用の MySQL サーバーを起動します。


    #cd <MySQL Basedirectory>
    

    # ./bin/mysqld --defaults-file=<MySQL Databasedirectry>/my.cnf \
    --basedir=<MySQL Basedirectory>\
     --datadir=<MySQL Databasedirectory>\
     --user=mysql\
     --pid-file=<MySQL Databasedirectory>/mysqld.pid &
    
  2. MySQL インスタンスに接続します。


    # <MySQL Basedirectory>/bin/mysql -h <Logical host> -uroot
    
  3. MySQL サーバーインスタンスを停止します。


    # kill -TERM `cat <MySQL Databasedirectory>/mysqld.pid
    

Sun Cluster HA for MySQL パッケージのインストール

Sun Cluster のインストール中に Sun Cluster HA for MySQL パッケージをインストールしなかった場合は、次の手順を実行してインストールします。 次の手順は、Sun Cluster HA for MySQL パッケージをインストールするすべてのクラスタノードで実行します。 この手順を実行するには、Sun Cluster Agents CD-ROM が必要です。

同時に複数のデータサービスをインストールする場合は、『Sun Cluster 3.1 10/03ソフトウェアのインストール』の「ソフトウェアのインストール」に記載されている手順を実行します。

Sun Cluster HA for MySQL パッケージをインストールするには、次のインストールツールの 1 つを使用します。


注 –

Web Start プログラムは Sun Cluster 3.1 Data Services 10/03 より前のリリースでは利用できません。


Web Start プログラムを使用して Sun Cluster HA for MySQL パッケージをインストールする方法

Web Start プログラムは、コマンド行インタフェース (CLI) またはグラフィカルユーザーインタフェース (GUI) のどちらでも実行できます。 インストールの内容と順番は CLI でも GUI でもほとんど同じです。Web Start プログラムの詳細は、installer(1M) マニュアルページを参照してください。

  1. Sun Cluster HA for MySQL パッケージをインストールするクラスタノード上で、スーパーユーザーになります。

  2. (省略可能) Web Start プログラムを GUI で実行する場合は、DISPLAY 環境変数が設定されていることを確認します。

  3. Sun Cluster Agents CD-ROM を CD-ROM ドライブに挿入します。

    ボリューム管理デーモン vold(1M) が実行されており、CD-ROM デバイスを管理するように構成されている場合、CD-ROM は自動的に /cdrom/scdataservices_3_1_vb ディレクトリにマウントされます。

  4. CD-ROM 上の Sun Cluster HA for MySQL コンポーネントディレクトリに移動します。

    このディレクトリに、Sun Cluster HA for MySQL データサービス用の Web Start プログラムが格納されています。


    # cd /cdrom/scdataservices_3_1_vb/コンポーネント/SunCluster_HA_MySQL_3.1
    
  5. Web Start プログラムを起動します。


    # ./installer
    
  6. プロンプトが表示されたら、インストールのタイプを選択します。

    • C ロケールだけをインストールするには、「一般」を選択します。

    • ほかのロケールをインストールするには、「カスタム」を選択します。

  7. 画面上の指示に従って、Sun Cluster HA for MySQL パッケージをノードにインストールします。

    インストール完了後、Web Start はインストールの概要を表示します。この概要を使用すると、Web Start プログラムがインストール中に作成したログを表示できます。これらのログは /var/sadm/install/logs ディレクトリにあります。

  8. Web Start プログラムを終了します。

  9. Sun Cluster Agents CD-ROM を CD-ROM ドライブから取り出します。

    1. CD-ROM が使用されないように、CD-ROM 上にないディレクトリに移動します。

    2. CD-ROM を取り出します。


      # eject cdrom
      

scsintall ユーティリティーを使用して Sun Cluster HA for MySQL パッケージをインストールする方法

この手順では、scinstall ユーティリティーを SC3.1 上で使用して Sun Cluster HA for MySQL パッケージをインストールします。この作業には、Sun Cluster Agents CD-ROM が必要です。この手順は、Sun Cluster の初期インストール時にデータサービス パッケージをインストールしていない場合を想定しています。

Sun Cluster のインストール時に Sun Cluster HA for MySQL パッケージをインストールした場合は、Sun Cluster HA for MySQL の登録と構成 へ進んでください。

それ以外の場合は、次の手順で、Sun Cluster HA for MySQL パッケージをインストールします。この作業は、Sun Cluster HA for MySQL データサービスを実行できるすべてのノードで行います。

  1. CD-ROM ドライブに Sun Cluster Agents CD-ROM を挿入します。

  2. scinstall ユーティリティーをオプションなしで実行します。

    scinstall ユーティリティーが対話型モードで起動します。

  3. メニューオプション「新しいデータサービスのサポートをこのクラスタノードに追加」を選択します。

    scinstall ユーティリティーにより、ほかの情報を入力するためのプロンプトが表示されます。

  4. Sun Cluster Agents CD-ROM のパスを指定します。

    ユーティリティーはこの CD をデータサービス CD-ROM として示します。

  5. インストールするデータサービスを指定します。

    選択したデータサービスが scinstall ユーティリティーによって示され、この選択内容の確認が求められます。

  6. scinstall ユーティリティーを終了します。

  7. ドライブから CD を取り出します。

Sun Cluster HA for MySQL の登録と構成

ここでは Sun Cluster HA for MySQL の構成手順について説明します。

フェイルオーバーサービスとしての Sun Cluster HA for MySQL の登録と構成方法

次の手順で、Sun Cluster HA for MySQL をフェイルオーバーデータサービスとして構成します。この手順は、Sun Cluster の初期インストール時にデータサービスパッケージをインストールしている場合を想定しています。

Sun Cluster のインストール時に Sun Cluster HA for MySQL をインストールしていない場合は、scsintall ユーティリティーを使用して Sun Cluster HA for MySQL パッケージをインストールする方法 へ進んでください。

それ以外の場合は、次の手順で、フェイルオーバーサービスとして Sun Cluster HA for MySQL データサービスを構成します。

  1. MySQL のホストとなるクラスタノードの 1 つで、スーパーユーザーになります。

  2. SUNW.gds リソースタイプを登録します。


    # scrgadm -a -t SUNW.gds
    
  3. SUNW.HAStoragePlus リソースタイプを登録します。


    # scrgadm -a -t SUNW.HAStoragePlus
    
  4. フェイルオーバーリソースグループを作成します。


    # scrgadm -a -g MySQL-failover-resource-group
    
  5. MySQL ディスク記憶装置に対応するリソースを作成します。


    # scrgadm -a -j MySQL-has-resource  \
    -g MySQL-failover-resource-group   \
    -t SUNW.HAStoragePlus  \
    -x FilesystemMountPoints=MySQL- instance-mount-points
    
  6. MySQL 論理ホスト名に対応するリソースを作成します。


    # scrgadm -a -L -j MySQL-lh-resource  \
    -g MySQL-failover-resource-group  \
    -l MySQL-logical-hostname
    
  7. MySQL ディスク記憶装置と 論理ホスト名のリソースが組み込まれたフェイルオーバーリソースグループを有効にします。


    # scswitch -Z -g MySQL-failover-resource-group
    

    注 –

    mysql_install_db を実行したときに使用したノードと同じノード上でリソースグループが有効になっていることを確認してください。


  8. MySQL サーバーインスタンスを手動で起動します。


    #cd <MySQL Basedirectory>
    

    # ./bin/mysqld --defaults-file=<MySQL Databasedirectry>/my.cnf \
    --basedir=<MySQL Basedirectory>\
     --datadir=<MySQL Databasedirectory>\
     --user=mysql\
     --pid-file=<MySQL Databasedirectory>/mysqld.pid &
    
  9. 管理ユーザー用のパスワードを設定します。


    # <MySQL Databasedirectry>/bin/mysqladmin -S /tmp/<Logical host>.sock password 'admin password'
    
  10. MySQL インスタンス用の障害モニターユーザーとテストデータベースを作成します。


    # cd /opt/SUNWscmys/util
    

    mysql_configファイルを編集し、そのファイルに次のコメントを追加します。


    # mysql のインストール場所 (BASEDIR)
    MYSQL_BASE=
    
    # Mysql ローカルホストの管理ユーザー (root)
    MYSQL_USER=
    
    # mysql 管理ユーザー用のパスワード
    MYSQL_PASSWD=
    
    # 構成済み論理ホスト
    MYSQL_HOST=
    
    # 障害モニターユーザーのユーザー名を指定する
    FMUSER=
    
    # 障害モニターユーザー用のパスワードを選ぶ
    FMPASS=
    
    # mysqld のソケット名 ( /tmp/<Logical host>.sock )
    MYSQL_SOCK=
    
    # SC3.1 に限り、 物理 NIC には物理ホスト名を指定してください。
    # SC3.1 の論理ホスト名は、このリソースグループを置くことができる
    # クラスタのすべてのノードに属します。
    # 例 : 論理ホスト lh1 は、物理ノード phys-1 では hme1 に属し、
    # 物理のノード phys-2 では hme3 に属します。hme1 のホスト名は phys-1-hme1、
    # phys-2 の hme3 のホスト名は phys-2-hme3 です。
    # 例 : MYSQL_NIC_HOSTNAME="phys-1-hme1 phys-2-hme3"
    MYSQL_NIC_HOSTNAME=""

    注 –

    SC 3.1 での MySQL インスタンスの例は次のようになります。



    MYSQL_BASE=/global/mysql
    MYSQL_USER=root
    MYSQL_PASSWD=root
    MYSQL_HOST=hahostix1
    FMUSER=fmuser
    FMPASS=fmuser
    MYSQL_SOCK=/tmp/hahostix1.sock
    MYSQL_NIC_HOSTNAME="clusterix1 clusterix2"
    

    注 –

    SC3.0U3 を使用した場合は、MYSQL_NIC_HOSTNAME パラメータは省略されていてもかまいません。


    mysql_config を編集したあとは、mysql_register スクリプトを実行する必要があります。


    # ./mysql_register
    
  11. MySQL サーバーインスタンスを手動で停止します。


    # kill -TERM `cat <MySQL Databasedirectry>/mysqld.pid
    
  12. フェイルオーバーデータサービスとして MySQL を作成して登録します。


    # cd /opt/SUNWscmys/util
    

    ha_mysql_config ファイルを編集し、ファイル内の次のコメントに従います。


     次のパラメータは (キー=値) の形式でカスタマイズできます。
    #
    #        RS - アプリケーションのリソース名
    #        RG - RS を含むリソースグループ名
    #   BASEDIR - Mysql bin ディレクトリ名
    #   DATADIR - Mysql Data ディレクトリ名
    # MYSQLUSER - Mysql の起動ユーザー名
    #        LH - LogicalHostname SC リソース名
    #    FMUSER - Mysql 障害モニターユーザー名
    #    FMPASS - Mysql 障害モニターユーザー用のパスワード名
    #    LOGDIR - mysqld がログファイルを格納するディレクトリ名
    #    CHECK  - HA-MySQL が MyISAM のインデックスファイルをチェックしてからスタートする、YES/NO
    #    HAS_RS - mysql HAStoragePlus SC リソース名
    #

    MySQL インスタンスの例は次のようになります。


    RS=mysql-res
    RG=mysql-rg
    BASEDIR=/global/mysql
    DATADIR=/global/mysql-data
    MYSQLUSER=mysql
    LH=hahostix1
    FMUSER=fmuser
    FMPASS=fmuser
    LOGDIR=/global/mysql-data/logs
    CHECK=YES 
    HAS_RS=mysql-has-res
    
  13. 各 MySQL リソースを有効にします。

    複数のインスタンスを作成した場合は、MySQL インスタンスごとにこの手順を繰り返します。


    # scstat -g
    # scswitch -e -j MySQL-resource
    
  14. MySQL Logicalhost を使用して、MySQL インスタンスにローカルにアクセスするための管理ユーザーを追加します。


    注 –

    MySQL インスタンスにアクセスする方法がローカルホストからのソケット経由だけである場合、この手順は省略してもかまいません。


    MySQL のブートストラップを実行するとき、コマンド mysql_install_db は 2 人の管理ユーザー、つまり、localhost に属する管理ユーザーと mysql_install_db を実行したノードに属する管理ユーザーを作成します。

    SC3.0U3 を使用していた場合、物理ノードに属する root ユーザーを削除して、論理ホストに属する管理ユーザーを追加する必要があります。

    SC3.0U3 での MySQL インスタンスの例は次のようでした。


    # mysql -S /tmp/hahostix1.sock -uroot
    mysql> use mysql;
    mysql> DELETE FROM user where User='root' AND Host='clusterix1';
    mysql> GRANT ALL ON *.* TO 'root'@'hahostix1' IDENTIFIED BY 'rootpasswd';
    mysql> exit;

    SC3.1 を使用している場合は、この MySQL インスタンスを実行するクラスタ内のすべての物理ノードに対して、管理ユーザーを作成する必要があります。


    注 –

    物理インタフェースのノード名とホスト名が異なる場合は、ホスト名を使用する必要があります。


    SC3.1 での MySQL インスタンスの例は次のようになります。


    # mysql -S /tmp/hahostix1.sock -uroot
    mysql> use mysql;
    mysql> mysql> GRANT ALL ON *.* TO 'root'@'clusterix2' IDENTIFIED BY 'rootpasswd';
    mysql> mysql> GRANT ALL ON *.* TO 'root'@'clusterix1' IDENTIFIED BY 'rootpasswd';
    mysql> exit;

    注 –

    管理ユーザーには手動で Grant_priv を追加する必要があります (MySQL 管理マニュアルを参照してください)。


Sun Cluster HA for MySQL のインストールと構成の確認

ここでは、データサービスが正しくインストールされて構成されているかどうかを確認する手順について説明します。

Sun Cluster HA for MySQL のインストールと構成の確認方法

次の手順で、Sun Cluster HA for MySQL が正しくインストールされ、構成されているかどうかを確認してください。

  1. MySQL のホストとなるクラスタノードの 1 つで、スーパーユーザーになります。

  2. すべての MySQL リソースがオンラインになっていることを scstat で確認します。


    # scstat 
    

    オンラインになっていない MySQL リソースごとに、次のように scswitch コマンドを使用します。


    # scswitch -e -j MySQL- resouce
    
  3. scswitch コマンドを実行し、 MySQL リソースグループをほかのクラスタノード (node2 など) に切り替えます。


    # scswitch -z -g MySQL-failover-resource-group -h node2
    

Sun Cluster HA for MySQL 障害モニターの概要

この情報は、Sun Cluster HA for MySQL 障害モニターを理解するうえで役立ちます。ここでは、Sun Cluster HA for MySQL 障害モニターのプローブアルゴリズムまたは機能について説明し、プローブの失敗に関連する条件、メッセージ、回復処理を示します。

障害モニターの概念については、『Sun Cluster 3.1 の概念』を参照してください。

リソースプロパティ

Sun Cluster HA for MySQL 障害モニターでは、SUNW.gds というリソースタイプと同じリソースプロパティを使用します。使用するリソースプロパティの全リストについては、SUNW.gds(5) のマニュアルページを参照してください。

検証アルゴリズムと機能

Sun Cluster HA for MySQL のデバッグ

Sun Cluster HA for MySQL でデバッグを有効にする方法

ここでは、Sun Cluster HA for MySQL のデバッグを有効にする方法について説明します。

Sun Cluster HA for MySQL は複数の MySQL インスタンスで使用できます。デバッグは、すべての MySQL インスタンスに対して有効にすることも、特定の MySQL インスタンスに対して有効にすることもできます。

MySQL コンポーネントごとに DEBUG ファイルがあり、/opt/SUNWscmys/etc に格納されます。xxx は個々の MySQL コンポーネントを表す 3 文字の略語です。

これらのファイルによって、Sun Cluster の特定のノードで特定の MySQL インスタンスに対してデバッグを有効にすることも、またはすべての MySQL インスタンスに対してデバッグを有効にすることもできます。Sun Cluster 全体にわたって、Sun Cluster HA for MySQL のデバッグを有効にしなければならない場合は、Sun Cluster 内のすべてのノードでこの手順を繰り返す必要があります。

  1. /etc/syslog.conf を編集します。

    /etc/syslog.conf を編集し、daemon.notice daemon.debug に変更します。


    # grep daemon /etc/syslog.conf
    *.err;kern.debug;daemon.notice;mail.crit        /var/adm/messages
    *.alert;kern.err;daemon.err                     operator
    #

    daemon.notice daemon.debug に変更し、syslogd を再起動します。次に示す grep daemon /etc/syslog.conf コマンドの出力例では、daemon.debug が設定されています。


    # grep daemon /etc/syslog.conf
    *.err;kern.debug;daemon.debug;mail.crit        /var/adm/messages
    *.alert;kern.err;daemon.err                    operator
    #
    # pkill -1 syslogd
    #
  2. /opt/SUNWscmys/etc/config を編集します。

    /opt/SUNWscmys/etc/config を編集し、 DEBUG=DEBUG=ALL または DEBUG= resource に変更します。


    # cat /opt/SUNWscmys/etc/config
    #
    # Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
    # Use is subject to license terms.
    #
    # Usage:
    #       DEBUG=<RESOURCE_NAME> or ALL
    #
    DEBUG=ALL
    #

    注 –

    デバッグを無効にするには、この手順を逆に実行して下さい。


Sun Cluster HA for MySQL 使用時に SC3.1 にアップグレードする

ここでは、Sun Cluster HA for MySQL 使用時に SC3.1 にアップグレードする方法について説明します。


注 –

ここでは、ノードを SC3.1 にアップグレードする方法ではなく、Sun Cluster HA for MySQL を SC3.1 にアップグレードする方法だけを説明していることに注意してください。


  1. scswitch —n —j MySQL- resouce を使用して、Sun Cluster HA for MySQL リソースをシャットダウンします。


    # scswitch -n -j MySQL- resouce
    
  2. Sun Cluster のマニュアルを参照して、ノードを SC3.1 にアップグレードします。

  3. SC 3.1 上で MySQL サーバーを手動で起動します。


    #cd <MySQL Base
    >
    

    # ./bin/mysqld --defaults-file=<MySQL Databasedirectry>/my.cnf \
    --basedir=<MySQL Basedirectory>\
     --datadir=<MySQL Databasedirectory>\
     --user=mysql\
     --pid-file=<MySQL Databasedirectory>/mysqld.pid &
    
  4. ソケットオプションを使用して、ローカルノードから MySQL インスタンスにアクセスします。


    #<MySQL Basedirectory>
    /bin/mysql -S <MySQL Socket> -uroot \
     -p<Adminpassword>\
    

    MySQL インスタンスの例は次のようになります。


    # mysql -s /tmp/hahostix1.sock -uroot -proot
    mysql> 
  5. Sun Cluster HA for MySQL のテストデータベース sc3_test_database を削除します。


    # mysql -s /tmp/hahostix1.sock -uroot -proot
    mysql> DROP DATABASE sc3_test_database;
    Query OK, 0 rows affected (0.03 sec)
  6. mysql-database 内のテーブル db から、User=' <MySQL Faultmonitor user>' という文字列を含むエントリをすべて削除します。


    # mysql -s /tmp/hahostix1.sock -uroot -proot
    mysql> use mysql;
    Database changed
    mysql> DELETE FROM db WHERE User='fmuser';
    Query OK, 1 row affected (0.03 sec)
  7. mysql-database 内のテーブル user から、User=' <MySQL Faultmonitor user>' という文字列を含むエントリをすべて削除します。


    # mysql -s /tmp/hahostix1.sock -uroot -proot
    mysql> use mysql;
    Database changed
    mysql> DELETE FROM user WHERE User='fmuser';
    Query OK, 1 row affected (0.03 sec)
  8. 障害モニターユーザーとテストデータベースを MySQL に追加します。


    # cd /opt/SUNWscmys/util
    

    mysql_configファイルを編集し、そのファイルに次のコメントを追加します。


    # mysql のインストール場所 (BASEDIR)
    MYSQL_BASE=
    
    # ローカルホストの mysql 管理ユーザー (root)
    MYSQL_USER=
    
    # mysql 管理ユーザー用のパスワード
    MYSQL_PASSWD=
    
    # 構成済み論理ホスト
    MYSQL_HOST=
    
    # 障害モニターユーザーのユーザー名を指定する
    FMUSER=
    
    # 障害モニターユーザー用のパスワードを選ぶ
    FMPASS=
    
    # mysqld のソケット名( /tmp/<Logical host>.sock )
    MYSQL_SOCK=
    
    # SC3.1 に限り、 物理 NIC には物理ホスト名を指定してください。
    # SC3.1 の論理ホスト名は、このリソースグループを置くことができる
    # クラスタのすべてのノードに属します。
    # 例 : 論理ホスト lh1 は、物理ノード phys-1 では hme1 に属し、
    # 物理のノード phys-2 では hme3 に属します。hme1 のホスト名は phys-1-hme1、
    # phys-2 の hme3 のホスト名は phys-2-hme3 です。
    # 例 : MYSQL_NIC_HOSTNAME="phys-1-hme1 phys-2-hme3"
    MYSQL_NIC_HOSTNAME=""

    注 –

    SC 3.1 での MySQL インスタンスの例は次のようになります。



    MYSQL_BASE=/global/mysql
    MYSQL_USER=root
    MYSQL_PASSWD=root
    MYSQL_HOST=hahostix1
    FMUSER=fmuser
    FMPASS=fmuser
    MYSQL_SOCK=/tmp/hahostix1.sock
    MYSQL_NIC_HOSTNAME="clusterix1 clusterix2"
    
  9. mysql_config を編集したあと、mysql_register スクリプトを実行する必要があります。


    # ./mysql_register
    
  10. MySQL サーバーを手動で停止します。


    # kill -TERM `cat <MySQL Databasedirectry>/mysqld.pid
    
  11. scswitch —e —j MySQL- resouce を使用して、Sun Cluster HA for MySQL リソースを起動します。


    # scswitch -e -j MySQL- resouce
    
  12. MySQL Logicalhost を使用して、MySQL インスタンスにローカルにアクセスする管理ユーザーのソースアドレスを変更します。


    注 –

    MySQL インスタンスにアクセスする方法がローカルホストからのソケット経由だけである場合、この手順は省略してもかまいません。


    SC3.0U3 を使用していた場合、論理ホストに属する root ユーザーを削除して、物理ホストに属する管理ユーザーを追加する必要があります。


    注 –

    物理インタフェースのノード名とホスト名が異なる場合は、ホスト名を使用する必要があります。


    SC3.1 での MySQL インスタンスの例は次のようになります。


    # mysql -S /tmp/hahostix1.sock -uroot
    mysql> use mysql;
    mysql> DELETE FROM user where User='root' AND Host='hahostix1';
    mysql> GRANT ALL ON *.* TO 'root'@'clusterix1' IDENTIFIED BY 'rootpasswd';
    mysql> GRANT ALL ON *.* TO 'root'@'clusterix2' IDENTIFIED BY 'rootpasswd';
    mysql> exit;

    注 –

    管理ユーザーには手動で Grant_priv を追加する必要があります (MySQL 管理マニュアルを参照してください)。


Sun Cluster HA for MySQL 使用時に MySQL を 3.23.54 から 4.0.12 にアップグレードする

ここでは、Sun Cluster HA for MySQL 使用時に MySQL 4.0.12 にアップグレードする方法について説明します。


注 –

ここでは、MySQL を MySQL 4.0.12 にアップグレードする方法ではなく、Sun Cluster HA for MySQL を MySQL 4.0.12 にアップグレードする方法だけを説明していることに注意してください。この手順では、新しい MySQL バイナリが前回と同じ場所にインストールされているとみなしています。新しいバイナリが新しいディレクトリにインストールされている場合は、新しい MySQL Basedir を使用して MySQL リソースを登録し直す必要があります。


  1. scswitch —n —j MySQL- resouce を使用して、Sun Cluster HA for MySQL をシャットダウンします。


    # scswitch -n -j MySQL- resouce
    
  2. 「MySQL のインストールと構成方法」の手順 3 と 4 に従って、新しい MySQL バイナリをインストールします。

  3. scswitch —e —j MySQL- resouce を使用して、Sun Cluster HA for MySQL を起動します。


    # scswitch -e -j MySQL- resouce
    
  4. scswitch —n –M —j MySQL- resouce を使用して、Sun Cluster HA for MySQL の障害モニターをシャットダウンします。


    # scswitch -n -M -j MySQL- resouce
    
  5. MySQL のマニュアルを参照して MySQL データベースのアップグレードします。

  6. scswitch —e –M —j MySQL- resouce を使用して、Sun Cluster HA for MySQL の障害モニターを起動します。


    # scswitch -e -M -j MySQL- resouce