RDS-MySQLを非アマゾンホストに複製しますか?


16

AmazonでRDSインスタンスとして実行されているかなり大きなMySQL(5.1)データベースがあります。Amazonからの移行に取り組んでいます。それをスムーズに行うために、RDSインスタンスの読み取り専用レプリカとして新しいハードウェアをセットアップしたいと思います。

RDSがRDS内の複製をサポートしていることは知っています。RDSにないホストに複製するように構成する方法はありますか?


すべてのデータはInnoDB ???
RolandoMySQLDBA

「はい、すべてinnodbにあります」と言ってみましょう-このフォーラムには十分に近いです。;)
Leopd

回答:




3

次のシナリオがある場合

  • すべてのデータはinnodbです
  • RDSでバイナリロギングを有効にしている

このようにRDSでユーザーを作成できます

GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'leopd'@'%' IDENTIFIED BY 'repl_password'; 

Amazonがホスト名に「%」を許可しない場合、特定のパブリックIPアドレスが必要になります

GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'leopd'@'xxx.xx.xx.xxx';

次に、mysqldumpでRDSから単一のトランザクションとしてデータを取り出します

mysqldump -u... -p... --single-transaction --master-data=1 --all-databases --routines --triggers > /root/MySQLData.sql

leopd@'xxx.xx.xx.xxxx 'をユーザーとして使用してCHANGE MASTER TOコマンドを実行します(xxx.xx.xx.xxxxはRDSのIPアドレスです)

CHANGE MASTER TO
master_host = 'xxx.xx.xx.xxxx',
master_port = 3306,
master_user = 'leopd',
master_passwowrd = 'repl_pass'
master_log_file='slsnbj',
master_log_pos=1;

データを新しいサーバーにロードします。master_log_file = 'slsnbj'およびmaster_log_pos = 1について心配する必要はありません。ダンプの22行目には、正しいログファイルと位置があります。

START SLAVEを実行します。新しいサーバー上

動作を開始するはずです。ファイアウォールの考慮事項について心配する必要がある場合があります。

試してみる !!!

更新2012-03-23 17:11 EDT

あと1回しかチャンスがありません。これで最後の特権を設定できるかどうかを確認します。

UPDATE mysql.user SET Repl_slave_priv = 'Y' WHERE user='root' AND host='%';
FLUSH PRIVILEGES;

おそらく、mysql.userのホスト列に%が含まれるユーザーに対してブロックされています。

前に提案したように、ハードパブリックIPを持つ別のユーザーを作成する必要がある場合があります

GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'leopd'@'xxx.xx.xx.xxx';

RDSのレプリケーションスレーブもRDSである必要があります。


ルートとしてログインすると、GRANT REPLICATION SLAVE結果はERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES)
Leopd

実行してくださいSHOW GRANTS。あなたは上のすべての権限を持っていますか
RolandoMySQLDBA

これは、可能なすべての特権を持つRDSルートユーザーとして実行されていますGRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD <snip> WITH GRANT OPTION。Amazonはこれを許可していないようです。
レオッド

あなたの最後のコメントに基づいて私の答えを更新しました
...-RolandoMySQLDBA

1
@Radek元のポスター(OP)は3月23日に返信しました:dba.stackexchange.com/a/15492/877
RolandoMySQLDBA
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.