ここでは、Sun Cluster HA for MySQL 使用時に SC3.1 にアップグレードする方法について説明します。
ここでは、ノードを SC3.1 にアップグレードする方法ではなく、Sun Cluster HA for MySQL を SC3.1 にアップグレードする方法だけを説明していることに注意してください。
scswitch —n —j MySQL- resouce を使用して、Sun Cluster HA for MySQL リソースをシャットダウンします。
# scswitch -n -j MySQL- resouce |
Sun Cluster のマニュアルを参照して、ノードを SC3.1 にアップグレードします。
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 & |
ソケットオプションを使用して、ローカルノードから MySQL インスタンスにアクセスします。
#<MySQL Basedirectory> /bin/mysql -S <MySQL Socket> -uroot \ -p<Adminpassword>\ |
MySQL インスタンスの例は次のようになります。
# mysql -s /tmp/hahostix1.sock -uroot -proot mysql> |
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) |
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) |
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) |
障害モニターユーザーとテストデータベースを 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" |
mysql_config を編集したあと、mysql_register スクリプトを実行する必要があります。
# ./mysql_register |
MySQL サーバーを手動で停止します。
# kill -TERM `cat <MySQL Databasedirectry>/mysqld.pid |
scswitch —e —j MySQL- resouce を使用して、Sun Cluster HA for MySQL リソースを起動します。
# scswitch -e -j MySQL- resouce |
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 管理マニュアルを参照してください)。