RMS-MySQL을 비 아마존 호스트로 복제 하시겠습니까?


16

Amazon에서 RDS 인스턴스로 실행되는 상당히 큰 MySQL (5.1) 데이터베이스가 있습니다. 아마존에서 마이그레이션하는 중입니다. 이를 원활하게하기 위해 새 하드웨어를 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';

다음으로 mysql은 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

한 번의 기회 만 남았습니다. 다음을 사용하여 마지막 권한을 설정할 수 있는지 확인하십시오.

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.. 아마존은 이것을 허용하지 않는 것 같습니다.
Leopd

마지막 코멘트를 기반으로 내 답변을 업데이트했습니다 ...
RolandoMySQLDBA

1
@Radek 오리지널 포스터 (OP)가 3 월 23 일에 다시 답변했습니다 : dba.stackexchange.com/a/15492/877
RolandoMySQLDBA
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.