2010년 7월 7일 수요일

Replication : Slave에서의 설정과 조작 1

Slave로 동작시키기 위해서는 최소한 다음의 옵션을 my.cnf에 기술해야한다.

server-id = 번호
master-host = 호스트
master-user = 유저명
master-password = 패스워드

Slave에 관한 옵션은 다음과 같다.
  • log-slave-updates :Slave겸 Master로 할 때에 지정한다. 
  • master-connect-retry=기본값은60sec  Master와의 접속이 끊긴후 몇초 기다리고 재접속을 시도할까
  • master-host=호스트 : Master의 호스트명 
  • master-port=포트번호 : Master의 포트번호 
  • master-user=유저명:  Master에 접속할 때 사용하는 유저명 
  • master-password=패스워드: Master에 접속할 때 사용하는 패스워드 
  • master-info-file=파일명 : master.info파일의 파일명(패스)지정 
  • master-retry-count= 횟수: Master와의 통신이 끊겼을 경우 최대로 몇번 재접속을 시도할 것인가
  • master-ssl : Master와의 통신을 SSL로 수행
  • master-ssl-ca=파일: CA의 CERTIFICATE파일 
  • master-ssl-capath=디렉토리명 : CA의 CERTIFICATE파일을 보존하고 있는 디렉토리 
  • master-ssl-cert=파일명: CERTIFICATE파일의 지정
  • master-ssl-cipher=Cipher : Cipher의 지정 
  • master-ssl-key=파일명 : private key 파일명 
  • relay-log=파일명 : relay로그 파일인  호스트명-relay-bin의 지정 
  • relay-log-index=파일명:  호스명-relay-bin.index파일의 지정
  • relay-log-info-file=파일명: relay-log.info파일의 지정 
  • replicate-do-db=데이터베이스명 :  Replication대상이 되는 데이터베이스명 
  • replicate-do-table=테이블명:  Replication대상이 되는 테이블명 
  • replicate-ignore-db=데이터베이스명: Replication 대상외로 하고픈 데이터베이스명 
  • replicate-ignore-table=테이블명: Replication 대상외로 하고픈 테이블명 
  • replicate-rewrite-db="원래 데이터베이스명->Slave에서의 데이터베이스명" : Master의 데이터베이스명을 Slave에서는 다른이름으로 취급
  • replicate-wild-do-table=와일드 카드 : Replication대상이 되는 테이블명을 와일드카드로 지정 
  • replicate-wild-ignore-table=와일드 카드: Replication대상외로 하고픈  테이블명을 와일드 카드로 지정
  • report-host=호스트명 : SHOW SLAVE HOSTS에서 표시되는 이름을 지정 
  • report-user=유저명: SHOW SLAVE HOSTS에 표시되는 유저명을 지정. Master에서는 --show-slave-auth-info옵션을 지정하고 있어야함.
  • report-password=패스워드: SHOW SLAVE HOSTS에 표시되는 패스워드를  지정. Master에서는 --show-slave-auth-info옵션을 지정하고 있어야함.
  • report-port=포트명: SHOW SLAVE HOSTS에서 표시되는 포트번호를 지정 
  • skip-slave-start: mysqld기동시에 Slave를 기동하지 않음. 
  • slave-load-tmpdir="디렉토리 [:디렉토리]":Slave에서 임시 파일을 작성하는 디렉토리를 지정.  「:」로 복수지정가능 
  • slave-skip-errors="에러번호[,에러번호]" : 지정된 에러가 발생하더라도 Slave처리를 정지시키지 않음. 「,」로 복수지정 
  • net_retry_count=횟수 : 읽어들이기가 중단된 경우, 몇번 다시 시도할 것인가 지정 
  • net_buffer_length=바이트수:  통신에 사용하는 버퍼 
  • net_read_timeout=초수:  읽어들이기가 중단된 경우, 몇초 기다려서 에러를 낼 것인가 지정 
  • net_write_timeout=초수: 써넣기가 중단된 경우, 몇초를 기다려서 에러를 낼 것인가 지정 
  • relay_log_purge : 필요없는 relay로그를 제거
  • relay_log_space_limit=바이트수:  relay로그의 합계 사이즈가 이 값을 넘으면 SQL스레드가 처리를 해서  공간이 생길때까지  I/O스레드는 처리를 정지
  • slave_compressed_protocol: 통신내용을 zlib압축
  • slave_net_timeout=초수: 데이터통신중  이 초수 이상으로 Master로부터 응답이 없으면 Slave는 접속을 끊고  재접속을 시도
  • slave_transaction_retries=횟수 : SQL스레드가 트랜잭션 실패했을 경우  바로 에러로 하지 않고 몇번 재시도할 것인지 지정.