2. DBMS이야기/02. MySQL

MySQL에서 Master-Master Replication 셋팅 방법②

OSSW(Open Source System SoftWare 2014. 11. 19. 16:18

MySQL에서 Master-Master Replication 셋팅 방법을 전 내용과 이어서 설명드립니다.


Step 2 - Install and Configure MySQL on Server D

우리는 우리가 우리가 다음 명령을 수행 할 수있는 설치해야합니다 서버 C. 먼저 다음에 동일한 단계를 반복해야합니다 :
sudo apt-get install mysql-server mysql-client
두 개의 패키지가 제대로 설치되면, 우리는 우리가 우리가 /etc/mysql/my.cnf 파일을 편집하여 시작합니다 서버 C. 구성으로 거의 같은 방식으로 구성해야합니다.
sudo nano /etc/mysql/my.cnf 
우리가 이전 변경으로 우리는 구성 파일에 같은 네 줄을 변경해야합니다.
우리가 변경해야하는 기본값 내용은 다음과 같습니다.
#server-id              = 1
#log_bin                = /var/log/mysql/mysql-bin.log
#binlog_do_db           = include_database_name
bind-address            = 127.0.0.1
우리는 아래의 라인에 맞게 네 가지 라인을 변경해야합니다. 서버 C는 달리, 서버 D에 대한 서버 ID가 1로 설정 될 수 없음을 양해 해 주시기 바랍니다.
server-id              = 2
log_bin                = /var/log/mysql/mysql-bin.log
binlog_do_db           = example
# bind-address            = 127.0.0.1
저장하고 해당 파일을 종료 한 후에, 당신은 MySQL의를 다시 시작해야합니다 :
sudo service mysql restart
그것은 MySQL의 쉘에 가서 좀 더 많은 구성 옵션을 설정하는 시간입니다.
mysql -u root -p 
첫째, 단지 서버 C에, 우리는 복제에 대한 책임을 질 것입니다 의사 사용자를 생성 할 것입니다. 당신이 사용하고자하는 암호로 "password"를 교체합니다.

create user 'replicator'@'%' identified by 'password'; 
다음으로, 우리는 우리가 우리의 VPS에 복제하고자하는 데이터베이스를 작성해야합니다.
create database example; 
그리고 우리는 그것을 복제하는 우리의 새로 만든 '복제'사용자 권한을 부여해야합니다.
grant replication slave on *.* to 'replicator'@'%'; 
다음 단계는 우리가 이전의 메모를했다 정보를 복용하고 우리의 MySQL 인스턴스에 적용이 포함됩니다. 이 복제를 시작 할 수 있습니다. 다음은 MySQL의 쉘에서 입력해야합니다 :

slave stop; 
CHANGE MASTER TO MASTER_HOST = '3.3.3.3', MASTER_USER = 'replicator', MASTER_PASSWORD = 'password', MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 107; 
slave start; 
당신은 당신이 복제에 대해 선택한 암호 '암호'를 교체해야합니다. MASTER_LOG_FILE과 MASTER_LOG_POS에 대한 귀하의 값은 위의 것보다 다를 수 있습니다. "SHOW 마스터 상태가"서버 C.에 반환 당신은 값을 복사해야합니다.
완료하기 전에 우리가 마지막으로 할 일은 MySQL의 마스터 - 마스터 복제 (서버 C로 서버 D에서) 다른 방향으로 복제하는 마스터 로그 파일과 위치를 기록하는 것입니다 .
우리는 다음을 입력하여 해당 작업을 수행 할 수 있습니다 :
SHOW MASTER STATUS; 
출력은 다음과 비슷하게 보일 것입니다:
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 |      107 | example      |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
우리는 서버 C에 그를 입력해야합니다으로 양방향 복제를 완료하려면, 파일 및 위치를 기록해 둡니다.
다음 단계는 그 작업을 수행하는 방법을 설명합니다.

Step 3 - Completing Replication on Server C

돌아 가기 서버 C에, 우리는 명령 줄에서 복제 구성을 완료해야합니다. 이 명령을 실행하면 서버 D. 모든 데이터를 복제합니다


slave stop; 
CHANGE MASTER TO MASTER_HOST = '4.4.4.4', MASTER_USER = 'replicator', MASTER_PASSWORD = 'password', MASTER_LOG_FILE = 'mysql-bin.000004', MASTER_LOG_POS = 107; 
slave start; 
당신의 가치는 위의 것과 다를 수 있다는 것을 명심하십시오. 또한 복제 사용자를 설정할 때 만든 암호로 MASTER_PASSWORD의 값을 교체하십시오.
Query OK, 0 rows affected (0.01 sec)
마지막으로 할 일은 복제가 모두 VPS에 노력하고 테스트하는 것입니다. 마지막 단계는이 구성을 테스트 할 수있는 쉬운 방법을 설명합니다.

Step 4 - Testing Master-Master Replication

모든 구성이 설정했는지 이제, 우리는 지금 테스트하는 것입니다.
이를 위해, 우리는 서버 C에 예 데이터베이스에 테이블을 생성하고이 나타나 있는지 확인하기 위해 서버 D에 확인할 것입니다.
그런 다음, 우리는 서버 D에서 삭제하고 더 이상 서버 C.에 게재하는지 확인려고합니다.
이제 우리는 서버간에 복제 될 데이터베이스를 작성해야합니다. 우리는 MySQL의 쉘에서 다음을 입력하여 해당 작업을 수행 할 수 있습니다 :
create database example; 
이 작업이 일단,의 서버 C에 더미 테이블을 만들 수 있습니다 :
create table example.dummy (`id` varchar(10)); 
우리는 지금 우리의 테이블이 존재하는지 확인하기 위해 서버 D를 확인할 것입니다.

show tables in example; 
+-------------------+
| Tables_in_example |
+-------------------+
| dummy             |
+-------------------+
1 row in set (0.00 sec)
할 수있는 마지막 테스트는 또한 서버 C.에서 삭제해야 서버 D.에서 우리의 더미 테이블을 삭제하는 것입니다

우리는 서버 D에서 다음을 입력하여이 작업을 수행 할 수 있습니다 :
DROP TABLE dummy; 
이를 확인하려면, 서버 C에있는 "Show 테이블"명령을 실행하면 어떤 테이블을 표시하지 않습니다 :

Empty set (0.00 sec)

by 윤성용