읽기 전용 계정에 따른 읽기/쓰기 분리
2. 계정 관리 탭을 선택하고 계정 생성을 클릭합니다.
3. 팝업 창에서 계정 정보를 설정하고 읽기 전용 계정으로 생성을 Yes로 설정한 후 확인 후 다음으로 이동을 클릭합니다.
4. 팝업 창에서 읽기 전용 요청 할당 정책을 설정하여 보조 서버 장애(또는 긴 지연) 발생 시 읽기 정책을 정의하고 읽기 전용 보조 서버 지연 매개변수를 구성한 다음 확인을 클릭합니다.
프라이머리를 선택하면 세컨더리의 지연이 제한을 초과할 경우 프라이머리 서버에서 읽습니다.
세컨더리의 지연이 제한을 초과할 때 오류를 보고하려면 오류 보고를 선택합니다.
지연 매개변수를 무시하고 항상 세컨더리에서 읽으려면 세컨더리에서 읽기 전용을 선택합니다(일반적으로 동기화를 위해 binlog를 가져오는 데 사용됨).
읽기 전용 세컨더리 지연 매개변수를 설정하여 읽기 전용 요청 할당 정책에서 기본 서버 및 오류 보고와 함께 사용되는 데이터 동기화 지연 임계값을 정의합니다.
주석에 따른 읽기/쓰기 분리
세컨더리에서 읽을 각 SQL 문 앞에 /*slave*/ 필드를 추가하고 mysql 뒤에 -c 매개변수를 추가하여 mysql -c -e "/*slave*/sql"와 같은 주석을 구문 분석하여 세컨더리에 읽기 요청을 자동으로 할당합니다. 예시는 다음과 같습니다.
//프라이머리에서 읽기//
select * from emp order by sal,deptno desc;
//세컨더리에서 읽기//
/*slave*/ select * from emp order by sal,deptno desc;
주의 사항:
이 기능은 다른 작업이 아닌 세컨더리(select)에서 읽기만 지원합니다. 비 select 문은 실패합니다.
주석을 구문 분석하려면 mysql 다음에 -c 매개변수를 추가해야 합니다.
/*slave*/는 소문자여야 하며, 문장 앞뒤에 공백이 필요하지 않습니다.
MAR(strong sync) 메커니즘이 세컨더리 예외의 영향을 받는 경우 세컨더리에서 읽기가 자동으로 프라이머리에서 읽기로 전환됩니다.