この手順は、Sun Cluster の初回のインストール時にこのデータサービスパッケージをインストールしている場合を想定しています。
Sun Cluster の初回のインストールで Sun Cluster HA for MySQL パッケージをインストールしなかった場合は、「 scsintall ユーティリティーを使用して Sun Cluster HA for MySQL パッケージをインストールする」に進んでください。
MySQL のホストとなるクラスタノードの 1 つで、スーパーユーザーになります。
# scrgadm -a -t SUNW.gds |
SUNW.HAStoragePlus リソースタイプを登録します。
# scrgadm -a -t SUNW.HAStoragePlus |
フェイルオーバーリソースグループを作成します。
# scrgadm -a -g MySQL-failover-resource-group |
MySQL ディスク記憶装置に対応するリソースを作成します。
# scrgadm -a -j MySQL-has-resource \ -g MySQL-failover-resource-group \ -t SUNW.HAStoragePlus \ -x FilesystemMountPoints=MySQL- instance-mount-points |
MySQL 論理ホスト名に対応するリソースを作成します。
# scrgadm -a -L -j MySQL-lh-resource \ -g MySQL-failover-resource-group \ -l MySQL-logical-hostname |
MySQL ディスク記憶装置と論理ホスト名のリソースが組み込まれたフェイルオーバーリソースグループを有効にします。
# scswitch -Z -g MySQL-failover-resource-group |
mysql_install_db を実行したノード上でリソースグループを有効にする必要があります。
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 & |
admin ユーザー用の admin パスワードを設定します。
# <MySQL Databasedirectry>/bin/mysqladmin -S /tmp/<Logical host>.sock password 'admin password' |
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 |
MySQL サーバーインスタンスを手動で停止します。
# kill -TERM `cat <MySQL Databasedirectry>/mysqld.pid |
フェイルオーバーデータサービスとして 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 |
各 MySQL リソースを有効にします。
複数のインスタンスを作成した場合は、MySQL インスタンスごとにこの手順を繰り返します。
# scstat -g # scswitch -e -j MySQL-resource |
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 の管理マニュアルを参照してください。