Amazon olmayan bir ana bilgisayara RDS-MySQL kopyalansın mı?


16

Amazon'da bir RDS örneği olarak çalışan oldukça büyük bir MySQL (5.1) veritabanı var. Amazon'dan göç etmeye çalışıyorum. Bunu sorunsuz bir şekilde yapabilmek için yeni donanımı RDS örneğinin salt okunur bir kopyası olarak ayarlamak istiyorum.

RDS'nin RDS içindeki çoğaltmayı desteklediğini biliyorum. RDS'de olmayan bir ana bilgisayara çoğaltmak üzere yapılandırmanın herhangi bir yolu var mı?


Tüm verileriniz InnoDB ???
RolandoMySQLDBA

Diyelim ki "evet, hepsi innodb'da" - bu forum için gerçeğe yeterince yakın. ;)
Leopd

Yanıtlar:




3

Aşağıdaki senaryoya sahipseniz

  • tüm verileriniz innodb
  • RDS'de ikili günlük kaydı etkin

RDS'de böyle bir kullanıcı oluşturabilirsiniz

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

Amazon, ana bilgisayar adı için '%' öğesine izin vermezse, genel bir IP adresine ihtiyacınız olacaktır

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

Sonra, mysqldump veri tek bir işlem olarak RDS dışında

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

Kullanıcı olarak leopd@'xxx.xx.xx.xxxx 'komutunu kullanarak MASTER TO CHTER komutunu çalıştırın (xxx.xx.xx.xxxx, RDS'nin IP adresidir)

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;

Verileri yeni bir sunucuya yükleyin. Master_log_file = 'slsnbj' ve master_log_pos = 1 hakkında endişelenmeyin. Dökümün 22. satırı doğru günlük dosyasına ve konuma sahip olacaktır.

START SLAVE'ı çalıştırın; yeni sunucuda

Çalışmaya başlamalıdır. Güvenlik duvarı konuları hakkında endişelenmeniz gerekebilir.

Bir şans ver !!!

GÜNCELLEME 2012-03-23 ​​17:11 EDT

Sadece bir şansın kaldı. Bu son ayrıcalığı şu şekilde ayarlayıp ayarlayamayacağınıza bakın:

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

Belki de bu, mysql.user ana bilgisayar sütununda% olan kullanıcılar için engelleniyor olabilir.

Daha önce önerdiğim gibi genel IP'ye sahip başka bir kullanıcı oluşturmanız gerekebilir

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

RDS'deki çoğaltma kölelerinin de RDS olması gerekir.


Kök olarak giriş yaptığınızda, GRANT REPLICATION SLAVEsonuçlanırERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES)
Leopd

Lütfen koş SHOW GRANTS. Eğer tüm yetkileri var mı . ?
RolandoMySQLDBA

Bu mümkün olan tüm ayrıcalıklara sahip RDS root olarak çalışıyor: 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. Görünüşe göre Amazon buna izin vermiyor.
Leopd

Cevabınız son yorumunuza dayanarak güncellendi ...
RolandoMySQLDBA

1
Orijinal afişi (OP) @Radek o 23 Mart'ta geri cevap verdi: dba.stackexchange.com/a/15492/877
RolandoMySQLDBA
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.