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 は、すべてのサーバーで同じでなければなりません。
重要: OS 自動起動によって開始されるサーバーは、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 のドキュメントのグローバルオプションとサーバー固有のオプションの設定を参照してください。
以下のエントリを追加または編集します。
- ファイルの「client」セクションに、接続に使用するユーザーとパスワードを指定します。
[client] user =clientuser password =password . . .
- ファイルの「mysqld」セクションには、接続に使用するソケットとポートを、mysqld プロセスに対する pid ファイルの場所とともに指定します。ユーザー変数では、mysqld プロセスを開始するオペレーティングシステムユーザーを指定します。
[mysqld] socket =/home1/test/mysql/mysql.sock port =3307 pid-file =/home1/test/mysql/mysqld.pid user =osuser
- ファイルの「client」セクションに、接続に使用するユーザーとパスワードを指定します。
このトピックへフィードバック