검색결과 리스트
server-id에 해당되는 글 1건
- 2012.08.03 MySQL Replication (Master-Slave)
글
MySQL Replication은 Master DB에서 발생한 쿼리에 대해 binlog로 기록하고 Slave DB에 relay log로 쌓여서 해당 쿼리들이 적용되는 방식이다.
아래와 같이 DB 전체를 복제할수도 있고, 특정 DB나 Table을 복제할수도 있다.
- master-slave 단방향 복제
- master-master 양방향 복제
- master-slave의 1:1이나 1:n 구성 가능
- binlog를 통한 Mirroring
- master에서 insert, update, delete를 담당하고 slave에서 select를 담당함으로 부하분산
1. 먼저 Master DB와 Slave DB에데이터를일치시킨다.
2. MASTER설정
mysql>CREATE USER 'repl'@'%' IDENTIFIED BY '(password)';
mysql>GRANT FILE ON *.* TO 'repl'@'%';
mysql>grant replication slave on *.* TO repl@'%' identified by '(password)';
mysql>flush privileges;
shell>vi /etc/my.cnf
[mysqld]
…
log-bin
server-id=1
expire_logs_days=3
max_binlog_size=100M
shell>service mysqld restart
mysql>show master status;
File이름과 Position 값을확인
File:mysql-bin.000001
Position:107
3. SLAVE설정
1) Mysql 5.5 이전때의설정
shell>vi /etc/my.cnf
[mysqld]
…
master-host=192.168.xxx.xxxx
master-user=repl
master-password=(password)
master-port=3306
server-id=2
shell>service mysqld restart
2) mysql 5.5 부터의설정
mysql>stop slave;
mysql>change master to master_host='192.168.xxx.xxx', master_user='repl',master_password='(password)', master_log_file='mysql-bin.000001',master_log_pos=107;
mysql>start slave;
mysql>show slave status
* 특정 DB나 Table만을 복제할 경우
[mysqld]
binlog-do-db(table)
binlog-ignore-db(table)
replicate-do-db(table)
replicate-ignore-db(table)
ex)
binlog-do-db=mydb1
binlog-do-db=mydb2
* slave에서 server-id가 master와 같다는 에러가 나올 때
my.cnf에 서로 다른 server-id를 지정했지만, 아래와 같이 확인하면 같은 server-id가 지정되어 있었다.
mysql> show variables;
그래서 slave의 server-id를 아래와 같이 변경하여 해결했다.
mysql> set global server-id=2;
참고 : http://vndfbfkd.tistory.com/575
'-- MySQL' 카테고리의 다른 글
7 ways to convince MySQL to use the right index (0) | 2012.08.30 |
---|---|
MySQL 부하체크 Slow Query (0) | 2012.08.30 |
MySQL메뉴의 Tools - Export/Import를 Query로 실행 (0) | 2012.07.30 |
MySQL Backup & Restore with mysqldump (0) | 2012.07.30 |
CentOS6에 MySQL5.5.25a 설치 (0) | 2012.07.30 |
RECENT COMMENT