LifeKeeper MySQL環境に関して、次のような特有の考慮事項について検討する必要があります。

プライマリサーバーとスタンバイサーバーでMySQLデータベースサービスを運用するには、ファイルシステムとディスクパーティションが各サーバーからアクセスできなければなりません。Recovery Kit for MySQLの設定を開始する前に、必ず次の準備手順を終了し、各サーバー上のデータベースをテストして稼働させる必要があります。以下の手順では、ユーザー「mysql」はMySQLサーバーを開始するオペレーティングシステムユーザーを表します。

  1. すべてのサーバーにMySQLサーバーとクライアントコンポーネントをインストールします。必ず、すべてのサーバーで同じバーションのMySQLクライアントコンポーネントとサーバーコンポーネントが稼働するようにします。MySQL実行可能ファイルは、ローカルまたは共有ドライブ上に置くことができます。

  2. LifeKeeperが保護するMySQLデータベースサーバーを稼働させたいソケットおよび/またはポート上でmysqldが稼働しているサーバーがあれば、mysqladmin コマンドを使用して各MySQLサーバーを停止します。

  3. MySQLデータディレクトリーの内容を共有の場所に移動します。デフォルトで、MySQLデータディレクトリーはローカルドライブにインストールされます。この場所は、ディストリビューションのメカニズムによって異なります。バイナリーRPMは、データディレクトリーを /var/lib/mysql にインストールします(必ず内容のみを移動して、ディレクトリーはそのまま残してください。これにより、MySQLデータベースサーバーが必要に応じてこのディレクトリー内にログを書き込むことができます。ステップ4で説明されている「mysql」ユーザーが、この場所にログを書き込む権限を持っていることを確認します)。

  4. インストール処理でLinuxユーザー「mysql」が作成されなかった場合は、このユーザーを作成します。セキュリティ上の理由から、MySQLサーバーを「root」として実行しないでください(セキュリティ問題の詳細については、『 MySQL Administration Guide 』を参照してください)。必ず、「mysql」ユーザーのみがデータベースディレクトリーへの読み取り/書き込み権限を持つようにします。「mysql」ユーザーおよびグループはすべてのサーバー上に作成する必要があります。ユーザーIDとグループIDは、すべてのサーバーで同じでなければなりません。

  5. 重要: OS自動起動によって開始されるサーバーは、LifeKeeperの保護下には入れません。さらに、このサーバーはLifeKeeperの保護下にあるサーバーと同じポート番号またはソケットを使用できません。

  6. ソケットを共有ディスク上のデータディレクトリーに書き込むことを推奨します。ソケットをローカルディスクに書き込む場合、階層が存在するすべてのLifeKeeperサーバー上の同じパスに存在することを確認します。「mysql」ユーザーが、この場所にソケットを書き込む権限を持っていることを確認します。

  7. 設定に適したmysqlデーモンスタートアップコマンドを使用してMySQLサーバーを開始します。 my.cnf ファイルで単一インスタンスを定義している設定の場合は、以下のコマンドを使用してください。
    mysqld_safe --user=mysql --socket=<socket> --port=<port number> --datadir=<path to the data directory> --log &

    my.cnf ファイルでmysqldグループを使用した設定の場合は、以下のコマンドを使用してください。
    mysqld_multi start <group number>

    <group number> はmysqldグループの my.cnf ファイルで定義したインスタンス番号を表しています。LifeKeeperでmysqldグループを使用する際の詳細については、 LifeKeeperでmysqldグループを使用する を参照してください。

    systemd support for MySQLがインストールされている場合、systemctlコマンドを利用する必要があります。詳しくは systemd support for MySQLを使用する場合の考慮事項 を参照してください。

  8. 「mysql」という名前でMySQLデータベースユーザーを作成します。このユーザーにパスワードを指定し、「shutdown」権限を付与します。これは、1台のサーバー上でのみ行います(ユーザーの作成と権限付与の詳細については、『 MySQL Administration Guide 』を参照してください)。

  9. サンプル設定ファイル my.cnf を必要な場所( /etc もしくは /<datadir> )にコピーします。このファイルには、データベースサーバー用とクライアントプログラム用のオプションが含まれています。

    ファイルは、 MySQLデータ ディレクトリーまたは /etc ディレクトリーのどちらかに置くことが可能です。 /etc/my.cnf ファイルにはグローバルオプションが含まれます。マシン上で常に1つのデータベースのみが稼働する場合(つまりアクティブ/スタンバイ設定)、もしくはmysqldグループ機能を使用している場合は /etcmy.cnf ファイルを置きます。( LifeKeeperでmysqldグループを使用する を参照してください。)ファイルが /etc にある場合、そのファイルを各LifeKeeperスタンバイサーバーにコピーする必要があります。データディレクトリー内の my.cnf ファイルには、サーバー固有のオプションが含まれている必要があります。複数サーバーおよびアクティブ/アクティブ設定の場合、mysqldグループ機能を使用しない限りはこのファイルをリソースインスタンスごとにデータディレクトリーに格納する必要があります。( LifeKeeperでmysqldグループを使用する を参照してください。)

    注意: サーバー固有のオプションを含む my.cnf ファイルは /etc ディレクトリーと /<datadir> ディレクトリーの両方に存在してはいけません。もし、サーバー固有のオプションを含む my.cnf ファイルが /etc ディレクトリーに存在し、同時に、保護された my.cnf ファイルが /<datadir> にインストールされている場合、コンフリクトの原因となる場合があります。詳細はMySQLのドキュメントのグローバルオプションとサーバー固有のオプションの設定を参照してください。

    以下のエントリを追加または編集します。

    1. ファイルの「client」セクションに、接続に使用するユーザーとパスワードを指定します。
      [client]
      user =clientuser
      password =password
      .
      .
      .
      
    2. ファイルの「mysqld」セクションには、接続に使用するソケットとポートを、mysqldプロセスに対するpidファイルの場所とともに指定します。ユーザー変数では、mysqldプロセスを開始するオペレーティングシステムユーザーを指定します。
      [mysqld]
      socket =/home1/test/mysql/mysql.sock
      port =3307
      pid-file =/home1/test/mysql/mysqld.pid
      user =osuser
      

フィードバック

お役に立ちましたか?

はい いいえ
お役に立ちましたか
理由をお聞かせください
フィードバックありがとうございました

このトピックへフィードバック

送信