Sun Cluster 3.1 Data Service 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 のインストール時に 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 管理マニュアルを参照してください)。