>  기사  >  데이터 베이스  >  MySql 데이터 배포: 마스터-슬레이브 복제 메커니즘을 구현하는 방법

MySql 데이터 배포: 마스터-슬레이브 복제 메커니즘을 구현하는 방법

WBOY
WBOY원래의
2023-06-15 22:25:401109검색

MySql은 널리 사용되는 관계형 데이터베이스 관리 시스템입니다. 데이터 복제는 데이터 백업, 로드 밸런싱 및 고가용성을 달성하는 데 널리 사용됩니다. MySql에서는 마스터-슬레이브 복제 메커니즘을 사용하여 데이터 분산을 달성할 수 있으며, 이를 통해 여러 시스템이 동일한 데이터에 액세스할 수 있습니다. 이 기사에서는 MySql에서 마스터-슬레이브 복제 메커니즘을 구현하는 방법을 소개합니다.

1. 마스터-슬레이브 복제 메커니즘의 기본 개념

마스터-슬레이브 복제 메커니즘은 MySql 데이터베이스의 중요한 기능으로 마스터 서버의 데이터를 하나 이상의 서버에 동기식으로 복제하여 데이터 배포 및 백업을 달성하는 데 도움이 될 수 있습니다. 더 많은 슬레이브가 서버에서 데이터 분산이 실현됩니다. MySql에서는 마스터 서버가 모든 데이터 업데이트 작업을 처리하고, 슬레이브 서버는 마스터 서버의 데이터를 복사하여 데이터에 액세스합니다.

MySql의 마스터-슬레이브 복제 메커니즘에서 마스터 서버는 자신의 데이터 변경 기록을 바이너리 로그 파일(바이너리 로그)에 기록하고, 슬레이브 서버는 바이너리 로그 파일을 읽어 마스터 서버의 데이터 업데이트 작업을 얻습니다. . 이런 방식으로 슬레이브 서버는 마스터 서버의 데이터를 실시간으로 동기화할 수 있어 여러 시스템이 동시에 데이터에 더 쉽고 효율적으로 액세스할 수 있습니다.

2. 마스터-슬레이브 복제 메커니즘 구성 방법

  1. 전제 조건

마스터-슬레이브 복제 메커니즘을 구성하기 전에 MySql 데이터베이스가 마스터 서버와 슬레이브 서버 모두에 설치되어 있는지 확인해야 합니다. 버전은 동일합니다. 또한 마스터 서버와 슬레이브 서버가 서로 접속할 수 있는지, 마스터 서버가 바이너리 로그 기능을 활성화했는지 확인해야 합니다.

  1. 마스터 서버 구성

1단계: 서버에서 복제할 사용자를 마스터 서버에 생성하고 마스터 서버의 모든 데이터베이스에 액세스할 수 있는 권한을 부여합니다. 예를 들어, Replicator라는 사용자를 생성하고 모든 데이터베이스에 대한 액세스 권한을 부여할 수 있습니다.

CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'replicator'@'%' WITH GRANT OPTION;

2단계: 메인 서버의 바이너리 로그 기능을 활성화합니다. 마스터 서버의 my.cnf 구성 파일에 다음 매개변수를 추가합니다.

[mysqld]
log_bin=mysql-bin
server-id=1

server-id 매개변수는 마스터 서버의 고유 식별자를 나타냅니다. 각 마스터 서버는 서로 다른 식별자를 가져야 합니다. 여기서는 이를 1로 설정하고 바이너리 로그 파일의 접두사를 mysql-bin으로 설정합니다.

3단계: 기본 서버를 다시 시작하여 구성 파일의 변경 사항을 적용합니다.

  1. 슬레이브 서버 구성

1단계: 슬레이브 서버에서 마스터 서버 액세스를 위한 사용자를 생성하고 복제해야 하는 모든 데이터베이스에 액세스할 수 있는 권한을 부여합니다. 예를 들어, backup이라는 사용자를 생성하고 이 사용자에게 모든 데이터베이스에 대한 액세스 권한을 부여할 수 있습니다.

CREATE USER 'backup'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'backup'@'%' WITH GRANT OPTION;

2단계: 슬레이브 서버의 my.cnf 구성 파일에 다음 매개변수를 추가합니다.

[mysqld]
server-id=2
relay-log=mysql-relay
log_slave_updates=1
read_only=1

마스터 서버와 달리 슬레이브 서버는 바이너리 로그 기능을 활성화할 필요가 없습니다. server-id 매개변수의 값은 기본 서버와 달라야 하며 여기서는 2로 설정합니다. Relay-log 매개변수는 서버로부터 수신된 데이터 변경 기록의 저장 위치를 ​​지정합니다. 여기서는 이름을 mysql-relay로 지정합니다. log_slave_updates 매개변수는 슬레이브 서버가 생성한 데이터 변경 기록을 자체 바이너리 로그 파일에 기록해야 함을 나타냅니다. read_only 매개변수는 슬레이브 서버가 읽기 작업에만 사용될 수 있고 데이터베이스에 쓰기 작업을 수행할 수 없음을 나타냅니다.

3단계: 슬레이브 서버를 다시 시작하여 구성 파일의 변경 사항을 적용합니다.

  1. 복제 시작

1단계: 슬레이브 서버에서 다음 명령을 실행하여 마스터 서버와 연결을 설정합니다.

CHANGE MASTER TO MASTER_HOST='主服务器IP地址', MASTER_USER='replicator', 
MASTER_PASSWORD='password', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000001', 
MASTER_LOG_POS=107;

그 중 MASTER_HOST 매개변수는 마스터 서버의 IP 주소이고, MASTER_USER, MASTER_PASSWORD 매개변수는 서버에서 복제하기 위해 마스터 서버에 생성된 사용자의 사용자 이름과 비밀번호입니다. MASTER_PORT 매개변수는 주 서버의 포트 번호를 나타내며 여기서는 3306으로 설정합니다. MASTER_LOG_FILE 및 MASTER_LOG_POS 매개변수는 서버에서 데이터 복사를 시작하고 동기화를 유지할 바이너리 로그 파일 위치를 지정하며, 여기서는 첫 번째 바이너리 로그 파일(mysql-bin.000001) 데이터의 107번째 바이트부터 복사를 시작한다고 가정합니다.

2단계: 슬레이브 서버에서 복제 기능을 시작합니다.

START SLAVE;

이 명령을 사용하면 슬레이브 서버가 마스터 서버의 데이터를 복사하기 시작합니다. "SHOW SLAVE STATUSG" 명령을 통해 복제 상태를 확인할 수 있다.

  1. 복제 테스트

복제가 제대로 작동하는지 테스트하려면 마스터 서버에 일부 데이터를 삽입하고 해당 데이터가 슬레이브 서버에 성공적으로 복제되었는지 확인할 수 있습니다.

메인 서버에서 다음 명령어를 실행하여 데이터 테이블에 레코드를 삽입합니다.

INSERT INTO test_table (name, age) VALUES ('Tom', 25);

슬레이브 서버에서 다음 명령어를 실행하여 test_table 테이블의 데이터가 동기화되었는지 확인하세요.

SELECT * FROM test_table;

삽입된 데이터가 슬레이브 서버에 표시되면 마스터-슬레이브 복제 메커니즘이 성공적으로 구성되고 시작된 것입니다.

3. 요약

MySql의 마스터-슬레이브 복제 메커니즘은 데이터 분산 및 동기화를 달성하는 중요한 수단이며 실제 프로젝트에서 널리 사용됩니다. 이 기사에서는 마스터 서버와 슬레이브 서버 구성, 마스터 서버와 슬레이브 서버 간의 복제 채널 설정을 포함하여 MySql에서 마스터-슬레이브 복제 메커니즘을 구성하는 방법을 소개합니다. 위 단계를 통해 MySql에서 마스터-슬레이브 복제 기능을 쉽게 구현할 수 있습니다.

위 내용은 MySql 데이터 배포: 마스터-슬레이브 복제 메커니즘을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.