이 글은 Mysql 5.7 슬레이브 노드 구성 멀티스레드 마스터-슬레이브 복제 관련 정보를 주로 소개합니다. 와서 우리와 함께 볼 수 있습니다.
머리말
Mysql은 복제를 위해 멀티스레딩을 사용하는데, 이는 Mysql 5.6부터 지원되지만 5.6 버전에서는 취약점이 있다. 여러 스레드를 지원하지만 각 데이터베이스는 하나의 스레드만 가질 수 있습니다. 즉, 데이터베이스가 하나만 있으면 마스터-슬레이브 복제 중에 하나의 스레드만 작동합니다. 이전 단일 스레드와 동일합니다. Mysql 5.7부터 동일한 데이터베이스 내에서 병렬 마스터-슬레이브 복제가 지원됩니다. 그러나 기본적으로는 여전히 단일 데이터베이스이자 단일 스레드입니다. 다중 스레드를 사용해야 하는 경우 슬레이브 노드에서 구성해야 합니다.
Mysql 5.7에는 마스터-슬레이브 복제 유형이 추가되었으며, 다음과 같은 두 가지 유형이 있습니다.
DATABASE 라이브러리 기반 병렬 복제, 각 데이터베이스는 복제 스레드에 해당합니다.
LOGICAL_CLOCK 그룹 제출을 기반으로 하는 병렬 복제 방법, 동일한 데이터베이스에 여러 스레드가 있을 수 있습니다.
슬레이브 노드에서 다음 단계를 구성합니다.
현재 구성 보기
구성을 시작하기 전에 마스터-슬레이브 복제 프로세스 수를 살펴보겠습니다. 현재 구성.
mysql> show processlist; +----+-------------+-----------+------+---------+-------+--------------------------------------------------------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-------------+-----------+------+---------+-------+--------------------------------------------------------+------------------+ | 1 | system user | | NULL | Connect | 91749 | Waiting for master to send event | NULL | | 2 | system user | | NULL | Connect | 208 | Slave has read all relay log; waiting for more updates | NULL | | 37 | root | localhost | NULL | Query | 0 | starting | show processlist | +----+-------------+-----------+------+---------+-------+--------------------------------------------------------+------------------+ 3 rows in set (0.00 sec)
위에서 보면 동기화를 기다리는 메인 프로세스는 단 하나뿐임을 알 수 있습니다.
아래 복제 유형 및 병렬 수 구성을 확인하세요
mysql> show variables like 'slave_parallel_type'; +---------------------+----------+ | Variable_name | Value | +---------------------+----------+ | slave_parallel_type | DATABASE | +---------------------+----------+ 1 row in set (0.00 sec)
현재 복제 유형은 DATABASE이므로 하나만 있음을 의미합니다. 통합 데이터베이스에서 스레드는 복사를 수행하며 병렬로 복사할 수 없습니다.
mysql> show variables like 'slave_parallel_workers'; +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | slave_parallel_workers | 0 | +------------------------+-------+ 1 row in set (0.01 sec)
현재 병렬로 작동하는 프로세스 수는 0입니다
멀티스레딩 구성
1. 슬레이브 노드에서 복제를 중지합니다
mysql> stop slave; Query OK, 0 rows affected (0.01 sec)
2. 복제 유형을 LOGICAL_CLOCK
mysql> set global slave_parallel_type='logical_clock'; Query OK, 0 rows affected (0.00 sec) mysql> show variables like 'slave_parallel_type'; +---------------------+---------------+ | Variable_name | Value | +---------------------+---------------+ | slave_parallel_type | LOGICAL_CLOCK | +---------------------+---------------+ 1 row in set (0.01 sec)로 설정합니다. 🎜>3. 병렬성을 설정합니다. 숫자는 4
mysql> set global slave_parallel_workers=4; Query OK, 0 rows affected (0.00 sec) mysql> show variables like 'slave_parallel_workers'; +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | slave_parallel_workers | 4 | +------------------------+-------+ 1 row in set (0.00 sec)4. 슬레이브 노드에서 복제를 시작합니다
mysql> start slave; Query OK, 0 rows affected (0.02 sec)
mysql> show processlist; +----+-------------+-----------+------+---------+------+--------------------------------------------------------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-------------+-----------+------+---------+------+--------------------------------------------------------+------------------+ | 37 | root | localhost | NULL | Query | 0 | starting | show processlist | | 38 | system user | | NULL | Connect | 8 | Waiting for master to send event | NULL | | 39 | system user | | NULL | Connect | 7 | Slave has read all relay log; waiting for more updates | NULL | | 40 | system user | | NULL | Connect | 8 | Waiting for an event from Coordinator | NULL | | 41 | system user | | NULL | Connect | 8 | Waiting for an event from Coordinator | NULL | | 42 | system user | | NULL | Connect | 8 | Waiting for an event from Coordinator | NULL | | 43 | system user | | NULL | Connect | 8 | Waiting for an event from Coordinator | NULL | +----+-------------+-----------+------+---------+------+--------------------------------------------------------+------------------+ 7 rows in set (0.00 sec)
요약
위 내용은 Mysql5.7 슬레이브 노드에서 다중 스레드 마스터-슬레이브 복제를 구성하는 방법에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!