2010년 7월 1일 목요일

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

Master데이터베이스 설정과 조작

Master데이터베이스로써 동작시키기 위해서는 최소한 다음 옵션을 지정할 필요가 있다.
옵션은 my.cnf에 기술한다.

Replication의 Master로 기동하기 전에 모든 데이터를 백업하고 설정을 한 후 Master로 기동한다.

server-id = 번호
log-bin [=파일명]

Master에 관한 옵션은 다음의 표를 참조하길 바란다.

  • server-id=자연수 : 서버의 ID번호를 지정. 모든 slave, master에서 유일한 숫자를 지정할 필요가 있다.
  • log-bin[=파일명] : 바이너리로그<호스트명-bin>를 기록한다.
  • binlog_format={MIXED|STATEMENT|ROW} : 바이너리로그의 서식을 지정한다.
  • binlog-do-db=데이터베이스명 : 지정된 데이터베이스로의 변경만을 바이너리로그에 기록한다.
  • binlog-ignore-db=데이터베이스명: 지정된 데이터베이스로의 변경만을 바이너리로그에 기록하지 않음.
  • binlog-row-event-max-size=바이트수: ROW의 경우 , 한개의 이벤트당 최대 바이트수.
  • log-bin-index=이름 : <호스트명-bin.index> 파일명의 지정
  • log-bin-trust-function-creators: 스토어드 프로시져 작성의 제한
  • show-slave-auth-info : SHOW SLAVE HOSTS문으로 Slave정보목록에 사용자명과 패스워드를 추가한 것을 얻을 수 있음. Slave 서버에 -report-host=Slave호스트명과 옵션을 지정한 것만 표시됨
  • net_buffer_length=바이트수 : 통신에 사용하는 버퍼
  • net_read_timeout=초수 : 읽어들이는 중에 통신이 끊겼을 경우, 몇초를 기다려서 에러로 할 것인가 지정
  • net_write_timeout=초수 : 쓰는 도중에 통신이 끊겼을 경우, 몇초를 기다려서 에러로 할 것인가 지정
  • init-slave='SQL문' : Slave가 접속해 오면 최초 지정한 SQL문을 실행

Master에 관한 SQL문에는 다음과 같은 것이 있다.

  • GRANT REPLICATION SLAVE ON *.* : Replication Slave가 접속할 유저를 등록(권한 부여)
  • GRANT REPLICATION CLIENT ON *.* : SHOW MASTER STATUS를 실행할 수 있는 권한을 부여
  • FLUSH LOGS: 바이너리로그를 로테이트
  • SHOW PROCESSLIST : Replication 스레드를 확인
  • SET SQL_LOG_BIN={0|1} : 현재 세션 기록을 바이너리로그에 수행할 것인가 하지 않을 것인가 지정
  • SHOW MASTER STATUS: 바이너리 로그의 써넣기 상황을 확인
  • SHOW BINARY LOGS: 현재 존재하는 바이너리 로그 파일명을 표시
  • SHOW BINLOG EVENTS: 바이너리로그 이벤트를 표시
  • PURGE MASTER LOGS: 지정된 바이너리로그만을 삭제
  • SHOW SLAVE HOSTS: Slave 리스트를 표시. Slave서버는 --report-host=의 지정을 해둘 필요가 있다.
  • RESET MASTER: 모든 바이너리로그를 삭제