17.3.8.2 반동기 복제의 설치 및 구성
준 동기 복제는 플러그인을 사용하여 구현되므로 플러그인이 서버에 설치되어 사용할 수있는 상태 여야합니다. 플러그인이 설치된 후 그와 관련된 시스템 변수에 의해 제어합니다. 이러한 시스템 변수는 연결된 플러그인이 설치 될 때까지 사용할 수 없습니다.
준 동기 복제를 사용하려면 다음 요구 사항을 충족해야합니다.
MySQL 5.5 이상이 설치되어 있어야합니다.
플러그인을 설치하는 기능은 동적 로딩을 지원하는 MySQL 서버가 필요합니다. 이를 검증하기 위해
have_dynamic_loading
시스템 변수의 값이YES
인지 확인하십시오. 바이너리 배포판은 동적 로딩을 지원하는 것입니다.복제가 이미 작동하고 있어야합니다. 마스터 / 슬레이브 관계의 작성 내용은 섹션 17.1.1 "복제 설정 방법" 을 참조하십시오.
준 동기 복제를 설정하려면 다음 지침을 사용하십시오. 여기에 표시된 INSTALL PLUGIN
, SET GLOBAL
, STOP SLAVE
및 START SLAVE
명령문은 SUPER
권한이 필요합니다.
준 동기 복제 플러그인은 MySQL 배포판에 포함되어 있습니다.
구성 요소 배포를 압축합니다 (마스터 측과 슬레이브 측의 파일이 포함되어 있습니다).
구성 요소 파일을 해당 서버의 플러그인 디렉토리에 설치합니다. semisync_master*
파일을 마스터 서버 플러그인 디렉토리에 설치합니다. semisync_slave*
파일을 각 슬레이브 서버 플러그인 디렉토리에 설치합니다. 플러그인 디렉토리의 위치는 서버의 plugin_dir
시스템 변수의 값으로 사용할 수 있습니다.
플러그인을로드하려면 준 동기화하는 마스터와 각 슬레이브에서 INSTALL PLUGIN
명령문을 사용합니다.
마스터 :
mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
각 슬레이브 :
mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
위의 명령은 플러그인 파일 이름 접미사 .so
를 사용합니다. 시스템에 다른 접미사를 적용해도 괜찮습니다. 플러그인 파일 이름에 자신이없는 경우 서버 플러그인 디렉토리에 플러그인을 찾습니다.
플러그인을 설치하려고하면 Linux에서 여기에 표시된대로 오류가 발생하는 경우 libimf
을 설치해야합니다.
mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
ERROR 1126 (HY000): Can't open shared library
'/usr/local/mysql/lib/plugin/semisync_master.so' (errno: 22 libimf.so: cannot open
shared object file: No such file or directory)
libimf
는 http://dev.mysql.com/downloads/os-linux.html 에서 얻을 수 있습니다.
어떤 플러그인이 설치되어 있는지 확인하려면 SHOW PLUGINS
문을 사용하거나 INFORMATION_SCHEMA.PLUGINS
테이블을 조회하십시오.
준 동기 복제 플러그인이 설치된 후에는 기본적으로 비활성화되어 있습니다. 준 동기 복제를 사용하려면 플러그인이 마스터 측과 슬레이브 측 모두에서 활성화해야합니다. 한쪽 만 사용하는 경우에는 복제는 비동기입니다.
설치된 플러그인을 사용할지 여부를 제어하려면 해당 시스템 변수를 설정합니다. 이러한 변수는 실행시에 SET GLOBAL
을 사용하여 또는 명령 행 또는 옵션 파일에서 서버를 시작할 때 설정할 수 있습니다.
실행시에 이러한 마스터 측 시스템 변수를 사용할 수 있습니다.
mysql>SET GLOBAL rpl_semi_sync_master_enabled = {0|1};
mysql>SET GLOBAL rpl_semi_sync_master_timeout =
N
;
슬레이브 측에이 시스템 변수를 사용할 수 있습니다.
mysql> SET GLOBAL rpl_semi_sync_slave_enabled = {0|1};
rpl_semi_sync_master_enabled
또는 rpl_semi_sync_slave_enabled
의 경우, 준 동기 복제를 사용하려면 값을 1 비활성화하려면 0으로해야합니다. 기본적으로 이러한 변수는 0으로 설정되어 있습니다.
rpl_semi_sync_master_timeout
의 경우 값 N
은 밀리 세컨드로 지정됩니다. 기본값은 10000 (10 초)입니다.
실행시에 슬레이브에서 준 동기 복제를 사용하는 경우, 슬레이브 I / O 쓰레드를 시작하고 (이미 실행중인 경우 우선 중지하고) 슬레이브를 마스터에 연결하여 준 동기 슬레이브로 등록 해야합니다.
mysql> STOP SLAVE IO_THREAD; START SLAVE IO_THREAD;
I / O 스레드가 이미 실행되고 다시 시작하지 않으면, 슬레이브는 비동기 복제를 사용하고 있습니다.
서버 시작시 반 동기식 복제를 제어하는 변수를 명령 줄 옵션 또는 옵션 파일에 설정할 수 있습니다. 옵션 파일에 나열된 설정은 서버가 시작할 때마다 사용됩니다. 예를 들어 마스터 측과 슬레이브의 my.cnf
파일에 다음과 같이 변수를 설정할 수 있습니다.
마스터 :
[mysqld] rpl_semi_sync_master_enabled=1 rpl_semi_sync_master_timeout=1000 # 1 second
각 슬레이브 :
[mysqld] rpl_semi_sync_slave_enabled=1