RDB:外部レプリケーションの設定
マスターとなるDBサーバーの設定
- サーバーIDの設定
マスターとレプリカとで異なる値を設定する必要があります。
ニフクラRDBのサーバーIDは以下のSQLコマンドで確認できます。
mysql> show variables like 'server_id';
+---------------+-----------+
| Variable_name | Value |
+---------------+-----------+
| server_id | 133770726 |
+---------------+-----------+
ファイアウォール許可設定
レプリカの外部レプリケーション接続元IPアドレスを調べてマスターのファイアウォール等に接続許可設定をしてください。
※レプリカの外部レプリケーション接続元IPアドレスはコントロールパネルまたはDescribeDBInstance APIで確認することができます。レプリケーションユーザーにはREPLICATION SLAVE権限を付与してください。
マスターとなるDBサーバーがニフクラRDBのDBサーバー以外の場合、以下の設定が必要です。
バイナリログを出力するように設定ファイルを編集します。
※ファイルパスは動作環境に合わせて変更してください
# バイナリログを出力する設定
log-bin=/var/lib/mysql/binlog/mysql-bin
マスターとなるDBサーバーがニフクラRDBのDBサーバーの場合、以下の設定が必要です。
・バックアップ保持期間:1以上
・グローバルIPアドレス:利用する
・DBエンジン:MySQL
・構成:シングルまたは冗長化構成(データ優先)
コントロールパネル
DBサーバーのステータスが稼働中でない場合は操作できません。
外部レプリケーション操作ステータスが「started」の場合は操作できません。
ニフクラRDBを表示します。
左メニューの「DBサーバー」をクリックすると、DBサーバーの一覧が表示されます。
外部レプリケーションを設定したいDBサーバーのチェックボックスを選択します。
「選択したDBサーバーの操作」と表示されているドロップダウンメニューから「外部レプリケーション設定」を選択します。
「外部レプリケーション設定」ダイアログで設定情報を入力します。
入力項目 入力内容 マスターとなるDBサーバーのIPアドレスまたはホスト名 マスターとなるDBサーバーのIPアドレスまたはホスト名を入力します。 マスターとなるDBサーバーのポート番号 マスターとなるDBサーバーのポート番号を入力します。 レプリケーションユーザー名 レプリケーションに使用するユーザー名を入力します。 レプリケーションユーザーのパスワード レプリケーションに使用するユーザーのパスワードを入力します。 レプリケーションを開始するバイナリログファイル名 バイナリログファイル名を入力します。 レプリケーションを開始するバイナリログファイル内の位置 バイナリログファイルの読み取り開始位置を入力します。 「設定する」ボタンをクリックすると、外部レプリケーションの設定処理が開始されます。
API
下記のパラメーターを指定し、SetExternalMaster APIを実行します。
DBInstanceIdentifier = 外部レプリケーションを設定するDBサーバー名
MasterHost = マスターとなるDBサーバーのIPアドレスまたはホスト名
MasterPort = マスターとなるDBサーバーのポート番号
ReplicationUserName = レプリケーションユーザー名
ReplicationUserPassword = レプリケーションユーザーのパスワード
BinlogFileName = レプリケーションを開始するバイナリログファイル名
BinlogPosition = レプリケーションを開始するバイナリログファイル内の位置
例
https://jp-east-1.rdb.api.nifcloud.com/
?Action=SetExternalMaster
&DBInstanceIdentifier=mydbinstance
&MasterHost=127.0.0.3
&MasterPort=3306
&ReplicationUserName=repl
&ReplicationUserPassword=repl
&BinlogFileName=mysql-bin.00001
&BinlogFilePosition=1
&SignatureVersion=2
&SignatureMethod=HmacSHA256
&Timestamp=2013-12-09T00%3A00%3A00.000Z
&AWSAccessKeyId=<NIFCLOUD Access Key ID>
&Signature=<Signature>