2. DBMS이야기/02. MySQL

MYSQL에서 데이터 복제(Replication)를 설정하는 방법 (1)

OSSW(Open Source System SoftWare 2014. 10. 6. 01:30


이 문서는 MySQL의에서 데이터베이스 복제를 설정하는 방법에 대해 설명한다. 

MySQL의 복제는 (예를 들어 우리가 slave로 호출 할 수 있습니다) 다른 서버에있는 마스터 서버에서 데이터베이스의 정확한 복사본을 가져올 수 있으며, 마스터 서버의 데이터베이스에 대한 모든 업데이트를 즉시 때문에 슬레이브 서버의 데이터베이스에 복제된다. 두 데이터베이스가 동기화되어있다. 


이는 갑작스러운 실수, 삭제 명령, 또한 슬레이브 수행 등을 변경시키는 이슈 때문에 만드는 백업 방법 또는 정책은 아니다; 하지만 복제는 비록 하드웨어 고장으로부터 시스템을 보호 할 수 있습니다. 


Configure The Master:

우리는 MySQL의 설정 파일있는 /etc/my.cnf을 사용하여 복제를위한 마스터 서버를 구성 할 수 있다. 

우리는 MySQL의 네트워킹을 활성화해야하고, MySQL은 모든 IP 주소에서 수신해야 한다.

그러므로 우리는 (이미 my.cnf 파일에 존재하는 경우) 이 라인을 주석 처리한다.


 #skip-networking #bind-address = 127.0.0.1 


이제 우리는 로그를 기록해야하는 데이터베이스의 MySQL 서버를 (이 로그 마스터에 변경된 내용을 확인하기 위해 슬레이브가 사용하는)구성해야 한다.

우리는 이 MySQL 서버를 마스터로 지정해야한다. 데이터베이스 db_test를 복제하기 원하고, 그래서 우리는  /etc/my.cnf에 다음 줄을 넣는다.


log-bin binlog-do-db=db_test server-id=1 


그리고 MySQL의를 다시 시작


 # /etc/rc.d/init.d/mysql restart


그 다음 우리는 루트로 MySQL 데이터베이스에 로그인 및 복제 권한을 가진 사용자를 작성해야한다 


 mysql> GRANT REPLICATION SLAVE ON *.* TO 'u1@%' IDENTIFIED BY 'p1'; 

 mysql> FLUSH PRIVILEGES; 


(여전히 MySQL의 셸) 다음을 수행하십시오


 mysql> USE db_test; 

 mysql> FLUSH TABLES WITH READ LOCK; 

 mysql> SHOW MASTER STATUS; 


다음과 같이 샘플 마스터 상태가 될 것 :


mysql> show master status; 

+----------------+----------+--------------+------------------+

 | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

 +----------------+----------+--------------+------------------+

 | rs2-bin.000063 | 79 | db_test | |

 +----------------+----------+--------------+------------------+ 

1 row in set (0.00 sec)  


우리는 슬레이브 구성은 다음 MySQL의 쉘을두고 나중에이 정보가 필요합니다 : 



mysql> quit; 


Configure The Slave:

우리는 파일있는 /etc/my.cnf을 사용하여 복제에 대한 슬레이브 서버를 구성 할 수 있다. 

우리는 마스터가 H1인 것을, 슬레이브에서 MySQL에게 얘기해야하고, 마스터 데이터베이스 보는 것은 db_test이다. 

그러므로 우리는 /etc/my.cnf에 다음 줄을 추가한다.


server-id=2 

master-host=H1 

master-user=u1 

master-password=p1 

master-connect-retry=100 

replicate-do-db=db_test  


마스터 사용자 및 마스터 암호는 우리가 마스터에서 복제 SLAVE 권한을 부여 할 때 우리가 설정되는 것들이다. 

서버 ID는 마스터 또는 시스템의 다른 노예와 다른 고유 번호이어야한다. 

마스터가 다운되면슬레이브가 다시 연결을 시도하는 마스터 연결 재 시도는 시간 (초)입니다. 60초은 기본값이다.

그리고 MySQL을 다시 시작


 # /etc/rc.d/init.d/mysql restart





다음 단계는 다음 글에서 이어집니다.

Data Transfer:

Replication in action:

Options:

Testing:



by lee ji eun