LifeKeeper MySQL 環境に関して、次のような特有の考慮事項について検討する必要があります。
プライマリサーバとバックアップサーバで MySQL データベースサービスを運用するには、ファイルシステムとディスクパーティションが各サーバからアクセスできなければなりません。MySQL Recovery Kit の設定を開始する前に、必ず次の準備手順を終了し、各サーバ上のデータベースをテストして稼働させる必要があります。以下の手順では、ユーザ「mysql」は MySQL サーバを開始するオペレーティングシステムユーザを表します。
- すべてのサーバに MySQL サーバとクライアントコンポーネントをインストールします。必ず、すべてのサーバで同じバーションの MySQL クライアントコンポーネントとサーバコンポーネントが稼働するようにします。MySQL 実行可能ファイルは、ローカルまたは共有ドライブ上に置くことができます。
- LifeKeeper が保護する MySQL データベースサーバを稼働させたいソケットおよび / またはポート上で mysqld が稼働しているサーバがあれば、mysqladmin コマンドを使用して各 MySQL サーバを停止します。
- MySQL データディレクトリの内容を共有の場所に移動します。デフォルトで、MySQL データディレクトリはローカルドライブにインストールされます。この場所は、ディストリビューションのメカニズムによって異なります。バイナリ RPM は、データディレクトリを /var/lib/mysql にインストールします(必ず内容のみを移動して、ディレクトリはそのまま残してください。これにより、MySQL データベースサーバが必要に応じてこのディレクトリ内にログを書き込むことができます。ステップ 4 で説明されている「mysql」ユーザが、この場所にログを書き込む権限を持っていることを確認します)。
- インストール処理で Linux ユーザ「mysql」が作成されなかった場合は、このユーザを作成します。セキュリティ上の理由から、MySQL サーバを「root」として実行しないでください(セキュリティ問題の詳細については、『 MySQL Administration Guide 』を参照してください)。必ず、「mysql」ユーザのみがデータベースディレクトリへの読み取り/書き込み権限を持つようにします。「mysql」ユーザおよびグループはすべてのサーバ上に作成する必要があります。ユーザ ID とグループ ID は、すべてのサーバで同じでなければなりません。
- 重要: /etc/rc.d/init.d/mysql によって開始されるサーバは、LifeKeeper の保護下には入れません。さらに、このサーバは LifeKeeper の保護下にあるサーバと同じポート番号またはソケットを使用できません。
- ソケットを共有ディスク上のデータディレクトリに書き込むことを推奨します。ソケットをローカルディスクに書き込む場合、階層が存在するすべての LifeKeeper サーバ上の同じパスに存在することを確認します。「mysql」ユーザが、この場所にソケットを書き込む権限を持っていることを確認します。
- 設定に適した mysql デーモンスタートアップコマンドを使用して MySQL サーバを開始します。 my.cnf ファイルで単一インスタンスを定義している設定の場合は、以下のコマンドを使用してください。
<start command> --user=mysql --socket=<socket> --port=<port number>
--datadir=<path to the data directory> --log &
<start command> は、mysql バージョン 3.x では safe_mysqld、バージョン 4.x では mysqld_safe です。
my.cnf ファイルで mysqld グループを使用した設定の場合は、以下のコマンドを使用してください。
mysqld_multi start <group number>
<group number> は mysqld グループの my.cnf ファイルで定義したインスタンス番号を表しています。LifeKeeper で mysqld グループを使用する際の詳細については、LifeKeeper で mysqldGroup を使用するを参照してください。
Systemd を採用しているディストリビューションで MySQL(5.7.6 以降)が Systemd を使用するように設定されている場合、systemctl コマンドを利用する必要があります。詳しくは Systemd 環境で使用する場合の考慮事項 を参照してください。
- 「mysql」という名前で MySQL データベースユーザを作成します。このユーザにパスワードを指定し、「shutdown」権限を付与します。これは、1 台のサーバ上でのみ行います(ユーザの作成と権限付与の詳細については、『 MySQL Administration Guide 』を参照してください)。
- サンプル設定ファイル my.cnf を必要な場所( /etc もしくは /<datadir> )にコピーします。このファイルには、データベースサーバ用とクライアントプログラム用のオプションが含まれています。
ファイルは、 MySQL データ ディレクトリまたは /etc ディレクトリのどちらかに置くことが可能です。 /etc/my.cnf ファイルにはグローバルオプションが含まれます。マシン上で常に 1 つのデータベースのみが稼働する場合(つまりアクティブ / スタンバイ設定)、もしくは mysqld グループ機能を使用している場合は /etc に my.cnf ファイルを置きます。(LifeKeeper で mysqld グループを使用する を参照してください。)ファイルが /etc にある場合、そのファイルを各 LifeKeeper バックアップサーバにコピーする必要があります。データディレクトリ内の my.cnf ファイルには、サーバ固有のオプションが含まれている必要があります。複数サーバおよびアクティブ / アクティブ設定の場合、mysqld グループ機能を使用しない限りはこのファイルをリソースインスタンスごとにデータディレクトリに格納する必要があります。(LifeKeeper で mysqld グループを使用する を参照してください。)
注記: サーバ固有のオプションを含む my.cnf ファイルは /etc ディレクトリと /<datadir> ディレクトリの両方に存在してはいけません。もし、サーバ固有のオプションを含む my.cnf ファイルが /etc ディレクトリに存在し、同時に、保護された my.cnf ファイルが /<datadir> にインストールされている場合、コンフリクトの原因となる場合があります。詳細は MySQL のドキュメントのグローバルオプションとサーバ固有のオプションの設定を参照してください。
以下のエントリを追加または編集します。
a. ファイルの「client」セクションに、接続に使用するユーザとパスワードを指定します。
[client]
user =clientuser
password =password
.
.
.
b. ファイルの「mysqld」セクションには、接続に使用するソケットとポートを、mysqld プロセスに対する pid ファイルの場所とともに指定します。ユーザ変数では、mysqld プロセスを開始するオペレーティングシステムユーザを指定します。
[mysqld]
socket =/home1/test/mysql/mysql.sock
port =3307
pid-file =/home1/test/mysql/mysqld.pid
user =osuser
注記: このファイルが正しく保護され、ユーザ「mysql」によって所有されていることを確認します。
注記: MySQL 階層を作成した後、my.cnf ファイル内の情報を変更する必要がある場合は、変更を加える前に階層を out-of-service (つまり OSU 状態)にして mysql サーバインスタンスを停止します。
注記: 上記の my.cnf 設定の例は、単一のデータベースインスタンス mysqld について説明しています。mysqld グループを使用した設定例については LifeKeeper で mysqld グループを使用する を参照してください。
注記: include文はサポートしていません。単一のmy.cnfに全ての設定を記述してください。
このトピックへフィードバック