GNU/Linux >> Linux の 問題 >  >> Linux

MySQLソース-ソースレプリケーションを構成する

:Rackspace Supportは、構成が複雑でエラーが発生する可能性があるため、ソースとソースのレプリケーションのセットアップを支援できません。 MySQLのソースとソースのレプリケーションを指示する代わりに、データベースインスタンス間のデータレプリケーションの信頼性を高めるために、クラウドデータベースサービスまたはTungstenなどのレプリケーションエンジンのいずれかを検討してください。

MySQLソース-ソースレプリケーション

この記事では、クラスターレプリケーションを設定する方法を示します。2つのクラウドサーバー間での双方向レプリケーションと循環レプリケーションです。ソース-ソースデータの複製により、複数のコンピューターに保存されている複製データを、グループの承認された貢献メンバーが更新できるようになります。これにより、グループメンバーによって識別された必要な変更をノードの指定されたソースに送信する必要があるソースレプリカレプリケーションよりもオープンなコラボレーションが可能になります。

このチュートリアルでは、RackspaceCloudベースイメージから構築されたDebian 5(Lenny)オペレーティングシステムを使用します。

セットアップの概要

debian501という2つのクラウドサーバーがあります およびdebian502 、この演習では、両方のサーバーに2つのIPアドレス(1つはパブリック、もう1つはプライベート)があります。この演習では、プライベートIPインターフェースを介してレプリケーションが実行されるように構成しているため、帯域幅の料金は発生しません。

クラウドサーバーの作成

Debian 5ベースイメージを使用して、2つのLinuxクラウドサーバーを作成する必要があります。次の手順を使用して、各サーバーを個別に作成します。

  1. クラウドコントロールパネルにログインします。
  2. 上部のナビゲーションバーで、製品の選択> Rackspace Cloudをクリックします 。
  3. サーバー>クラウドサーバーを選択します 。
  4. [サーバーの作成]をクリックします 。
  5. セットアップ中にサーバーを簡単に識別できるように、サーバーに名前を付けます。この演習では、debian501およびdebian502という名前が付けられています。
  6. Debianイメージを選択します。
  7. データベースの要件を満たすRAM構成(フレーバー)を選択します。
  8. [サーバーの作成]をクリックします 。

次のサーバーコマンドは、特権(root、sudoグループ)ユーザーとして実行する必要があります。

MySQLのインストール

まず、両方のDebianクラウドサーバーにMySQLをインストールする必要があります。いつものように、パッケージをインストールする前に、パッケージリストが最新であり、ロケール/言語設定が適切に構成されていることを確認する必要があります。

  • パッケージデータベースを更新します:

      # aptitude update
    
  • ロケールのインストール:

      # aptitude install locales
    
      # dpkg-reconfigure locales
    
  • dpkg-reconfigure locales コマンドを実行すると、国と地域に応じてシステムのロケールを選択できるロケール設定ウィンドウが表示されます。この場合、en\_GB.UTF-8を選択します 。

  • 次に、次のコマンドを実行してMySQLをインストールします。

      # aptitude install mysql-server mysql-client libmysqlclient15-dev
    
レプリケーションの構成

mysql-server パッケージが正常にインストールされました。ノード間のレプリケーションを有効にするために、各MySQLノードの構成を開始します。

複製されるデータベースと、それとともに使用される複製のユーザー名とパスワードを作成する必要があります。以下に概説するコマンドを使用して設定できます。特定の構成に適用するために、すべての文字列/値の括弧内を変更することを忘れないでください。

  • まず、debian501で、mysqlコンソールにログインします。 (MySQLのインストール中に設定したmysqlルートパスワードを使用します。)

      # mysql -u root -p
      mysql>
    
  • 次に、変更を同期するために使用されるレプリケーションユーザーを作成します。

      mysql> grant replication slave on \*.\* to replicauser@'[private IP of debian502]' identified by '[some password]';
      mysql> flush privileges;
      mysql> exit
    
  • debian502についても同じようにします。

      mysql> grant replication slave on \*.\* to replicauser@'[private IP of debian501]' identified by '[some password]';
      mysql> flush privileges;
      mysql> exit
    
  • debian501に戻り、 /etc/mysql/my.cnfを編集します。 次のエントリを挿入、更新、またはコメント解除します。

      bind-address = 0.0.0.0
      server-id = 1
      log-bin = /var/log/mysql/var/bin.log
      log-slave-updates
      log-bin-index = /var/log/mysql/log-bin.index
      log-error = /var/log/mysql/error.log
      relay-log = /var/log/mysql/relay.log
      relay-log-info-file = /var/log/mysql/relay-log.info
      relay-log-index = /var/log/mysql/relay-log.index
      auto_increment_increment = 10
      auto_increment_offset = 1
      master-host = [private IP address of debian502]
      master-user = [replication username]
      master-password = [replication password]
      replicate-do-db = <database name to be replicated>
    
  • debian502サーバーで手順を繰り返します。

      bind-address = 0.0.0.0
      server-id = 2
      log-bin = /var/log/mysql/bin.log
      log-slave-updates
      log-bin-index = /var/log/mysql/log-bin.index
      log-error = /var/log/mysql/error.log
      relay-log = /var/log/mysql/relay.log
      relay-log-info-file = /var/log/mysql/relay-log.info
      relay-log-index = /var/log/mysql/relay-log.index
      auto_increment_increment = 10
      auto_increment_offset = 2
      master-host =  [private IP address of debian501]
      master-user = [replication username]
      master-password = [replication user password]
      replicate-do-db = [database name to be replicated]
    
  • ここで、両方のデータベースを再起動します。いずれかのサーバーでサービスの再起動に失敗した場合は、/var/log/mysql/error.logを確認してください。 エラーのファイル。構成を更新し、タイプミスなどがないか確認します。

シナリオのテスト

レプリケーション設定をテストするために、前の構成セクションで指定されたデータベースを作成します。また、ノードの1つにテストテーブルを作成し、 / var / log / mysqlのログファイルを監視します。 ディレクトリ。すべてのデータベースの変更は、すぐに他のサーバーに複製する必要があることに注意してください。

  mysql> create database [your-db-name];
  mysql> use [your-db-name]
  mysql> create table foo (id int not null, username varchar(30) not null);
  mysql> insert into foo values (1, 'bar');
  • 追加のテストとして、debian502でMySQLサービスを停止し、debian501サーバーでデータベースを変更してから、debian502でMySQLサービスを再起動します。debian502MySQLサービスは、すべての新しい変更を自動的に同期する必要があります。

  • デフォルトのバイナリログローテーション値(expire_logs_days)の変更も検討する必要があります およびmax_binlog_size /etc/mysql/my.cnf内 デフォルトでは、すべてのバイナリログが10日間保持されるため、ファイル。データベースアプリケーションのトランザクション数が多い場合、ログにかなりのハードディスクスペース使用量が発生する可能性があります。したがって、サーバーバックアップポリシーに一致するようにこれらの値を変更することを検討してください。たとえば、MySQLノードのバックアップを毎日設定している場合、10日分のバイナリログを保持する必要はありません。


Linux
  1. OracleLinuxでMySQLマルチマスターレプリケーションを構成する方法

  2. MySQLデータベースを使用してWSO2APIManagerを構成する

  3. MySQLソース-レプリカレプリケーションを設定する

  1. MySQLマスターをセットアップする方法-マスターレプリケーション

  2. MySQL スレーブ データベースの構成方法

  3. MySQL レプリケーションにおける「システム ユーザー」の目的は何ですか

  1. CentOSでMySQLレプリケーションを設定する方法

  2. UbuntuオペレーティングシステムでMySQLサーバーを構成する

  3. MySQLソース-レプリカレプリケーションを構成する