Sun Cluster Data Service for MySQL ガイド (Solaris OS 版)

Sun Cluster HA for MySQL の登録と構成

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

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

この手順は、Sun Cluster の初回のインストール時にこのデータサービスパッケージをインストールしている場合を想定しています。

Sun Cluster の初回のインストールで Sun Cluster HA for MySQL パッケージをインストールしなかった場合は、 scsintall ユーティリティーを使用して 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. admin ユーザー用の admin パスワードを設定します。


    # <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 リソース名
    # MYSQLHOST - name of the host in /etc/hosts
    #    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
    MYSQLHOST=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 ip name を使用して、MySQL インスタンスにローカルにアクセスするための管理ユーザーを追加します。


    注 –

    MySQL インスタンスへのアクセスをソケット (ローカルホスト) からだけにする場合は、この手順を省略します。


    MySQL のブートストラップを実行するとき、コマンド mysql_install_db は 2 人の管理ユーザー、つまりローカルホストに属する管理ユーザーと 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 インスタンスが動作するすべての物理ノードに、admin ユーザーを追加します。


    注 –

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


    次に、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;

    注 –

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