MariaDB 복제

in #kr-dev2 years ago

Mariabackup으로 복제 슬레이브 설정

Mariabackup 을 사용 하여 복제 슬레이브를 설정하려는 경우 Mariabackup으로 복제 슬레이브 설정 의 정보가 도움이 될 수 있습니다.

버전

일반적으로 다른 버전의 MariaDB 간에 복제할 때 마스터가 슬레이브보다 이전 버전인 것이 가장 좋습니다. MariaDB 버전은 일반적으로 이전 버전과 호환되지만 이전 버전이 항상 이전 버전과 호환되는 것은 아닙니다. MySQL 마스터에서 MariaDB 슬레이브로 복제 도 참조하십시오 .

마스터 구성

  • 아직 활성화되지 않은 경우 바이너리 로깅을 활성화합니다. 자세한 내용 은 바이너리 로그 및 바이너리 로그 형식 활성화 를 참조하십시오.
  • 마스터에 고유한 server_id 를 제공하십시오 . 모든 슬레이브에도 server_id가 지정되어야 합니다. 1에서 2 32 -1 사이의 숫자가 될 수 있으며 복제 그룹의 각 서버에 대해 고유해야 합니다.
  • --log-basename 을 사용하여 복제 로그의 고유한 이름을 지정하십시오 . 이것이 지정되지 않으면 호스트 이름이 사용되며 호스트 이름이 변경되면 문제가 발생합니다.
  • 슬레이브는 서버에서 연결하고 복제를 시작할 수 있는 권한이 필요합니다. 일반적으로 이것은 전용 슬레이브 사용자를 생성하고 해당 사용자에게 복제 권한(REPLICATION SLAVE 권한)만 부여하여 수행됩니다.

MariaDB에 대한 복제 활성화 예

my.cnf 파일 에 다음을 추가하고 데이터베이스를 다시 시작하십시오.

[마리아디브]
로그인
서버 아이디=1
로그 기반 이름=마스터1
binlog 형식=혼합

서버 ID는 네트워크의 각 MariaDB/MySQL 서버에 대한 고유 번호입니다. binlog-format 은 명령문이 기록되는 방식을 지정합니다. 이는 주로 마스터와 슬레이브 간에 전송되는 바이너리 로그 의 크기에 영향을 미칩니다.

mysql그런 다음 명령줄 클라이언트 로 다음 SQL을 실행합니다 .

CREATE  USER  'replication_user' @ '%'  IDENTIFIED  BY  'bigs3cret' ; 
* 에 복제 슬레이브 를 부여  합니다 . * TO '복제_사용자' @ '%' ;     

MySQL에 대한 복제 활성화 예

MySQL에서 MariaDB로의 복제를 활성화하려는 경우 MariaDB 서버 간과 거의 동일한 방식으로 수행할 수 있습니다. 가장 큰 차이점은 MySQL은 log-basename.

[mysqld]
로그인
서버 아이디=1

확인할 설정

복제에 영향을 미치거나 중단할 수 있는 여러 옵션이 있습니다. 문제를 방지하려면 다음 설정을 확인하십시오.

  • 건너뛰기 네트워킹 . 인 경우 skip-networking=1서버는 localhost로만 연결을 제한하고 모든 원격 슬레이브가 연결하는 것을 방지합니다.
  • 바인드 주소 . 마찬가지로 서버가 TCP/IP 연결을 수신하는 주소가 127.0.0.1(localhost)이면 원격 슬레이브 연결이 실패합니다.

슬레이브 구성

  • 슬레이브에 고유한 server_id 를 제공합니다 . 마스터든 슬레이브든 모든 서버에는 server_id가 지정됩니다. 1에서 2 32 -1 사이의 숫자가 될 수 있으며 복제 그룹의 각 서버에 대해 고유해야 합니다. 이 옵션의 변경 사항을 적용하려면 서버를 다시 시작해야 합니다.

마스터의 이진 로그 좌표 얻기

이제 바이너리 로그 위치를 보는 동안 데이터가 변경되는 것을 방지해야 합니다. 이것을 사용하여 복제를 시작해야 하는 정확한 지점을 슬레이브에 알릴 것입니다.

  • 마스터에서 를 실행하여 모든 테이블을 플러시하고 잠급니다 FLUSH TABLES WITH READ LOCK. 이 세션을 계속 실행하고 종료하면 잠금이 해제됩니다.
  • 다음을 실행하여 바이너리 로그의 현재 위치를 가져옵니다 [SHOW MASTER STATUS](https://mariadb.com/kb/en/show-master-status/).
마스터 상태 표시
+--------+----------+--------------+-- ----------------+
| 파일 | 위치 | Binlog_Do_DB | Binlog_Ignore_DB |
+--------+----------+--------------+-- ----------------+
| master1-bin.000096 | 568 | | |
+--------+----------+--------------+-- ----------------+

  • 파일위치 세부사항을 기록 하십시오. 바이너리 로깅이 활성화된 경우 비어 있습니다.
  • 이제 잠금 장치가 있는 상태에서 마스터에서 슬레이브로 데이터를 복사합니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 백업, 복원 및 가져오기 를 참조하십시오.
  • 라이브 데이터베이스에 대한 참고 사항: 데이터의 로컬 복사본을 만들기만 하면 됩니다. 슬레이브가 데이터를 가져올 때까지 마스터를 잠근 상태로 유지할 필요가 없습니다.
  • 데이터가 복사되면 UNLOCK TABLES 를 실행하여 마스터에 대한 잠금을 해제할 수 있습니다 .
잠금 해제 테이블;

슬레이브 시작

  • 데이터를 가져오면 복제를 시작할 준비가 된 것입니다. CHANGE MASTER TO 를 실행하여 MASTER_LOG_FILE 이 파일과 일치하고 MASTER_LOG_POS 가 이전 SHOW MASTER STATUS에서 반환된 위치 와 일치 하는지 확인하는 것으로 시작합니다. 예를 들어:
 MASTER_HOST = 'master.domain.com' , MASTER_USER = 'replication_user' , MASTER_PASSWORD = ' bigs3cret  ' , MASTER_PORT = 3306 , MASTER_LOG_FILE 
  = ' master1 - bin.000096 ' , MASTER_LOG8NPOS = _5 로 마스터 를 변경합니다 .
  
  
  
  
  
  

MASTER_LOG_FILE처음부터 복제를 위해 구성된 새로운 마스터에 대해 슬레이브를 시작하는 경우 및 를 지정할 필요가 없습니다 MASTER_LOG_POS.

GTID(글로벌 트랜잭션 ID) 사용

  • 이제 다음 START SLAVE명령으로 슬레이브를 시작합니다.
 슬레이브 시작 ;

  • SHOW SLAVE STATUS다음 명령 을 실행하여 복제가 작동하는지 확인합니다 .
 슬레이브  상태  표시 \ G

  • 복제가 올바르게 작동하는 경우 및 값은 모두 다음 Slave_IO_RunningSlave_SQL_Running같아야 합니다 Yes.
Slave_IO_Running: 예
Slave_SQL_Running: 예

MySQL 마스터에서 MariaDB 슬레이브로 복제

Sort:  

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

Coin Marketplace

STEEM 0.18
TRX 0.15
JST 0.028
BTC 62800.25
ETH 2449.72
USDT 1.00
SBD 2.57