2010년 7월 5일 월요일

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

Slave데이터베이스의 유저명, 호스트, 패스워드 등록

 GRANT REPLICATION SLAVE ON *.*
 TO '유저명'@'호스트' [IDENTIFIED BY '패스워드']

global 권한이므로  ON *.*이 된다.


권한의 부여
 Master와 Slave의 내용을 확인할 수 있도록 SHOW MASTER  STATUS와 SHOW SLAVE STATUS를 실행할 권한을 부여한다.

 GRANT REPLICATION CLIENT ON *.*
 TO '유저명'@'호스트' [IDENTIFIED BY '패스워드']

 global 권한이므로  ON *.*이 된다.
  
바이너리로그의 로테이트(FLUSH LOGS) 

바이너리로그를 로테이트시킨다.  이 조작으로 Replication에서 부정합이 발생하지 않는다.

이 조작을 실행하면 호스트명-bin.index파일도 자동으로 변경된다.  SQL처리중에 FLUSH LOGS가 실행된 경우,  그것이 완료된 뒤에  로그의 로테이트와 .index파일이 변경된다.


Binlog Dump 스레드의 확인 

Master는  바이너리로그에 기록되어있는 쿼리를  Slave에 송신하기 위해서 스레드를 작동한다. (Binlog Dump 스레드)  Binlog Dump 스레드는 SHOW PROCESSLIST로 확인가능하다.

내용은 아래와 같다.
  • User, Host : Slave 접속 유저명과 호스트명 
  • Command  Binlog Dump: COM_BINLOG_DUMP. 바이너리로그를 보내는 루틴에 들어가 있는 상태. msql_binlog_send()로 보낸다. 
  • Connect Out: Slave가 접속중  
  • Register Slave :  COM_REGISTER_SLAVE. --report-host=를 지정한 Slave의 정보를 취득처리중. register_slave()가 호출된다.
  • State Finished reading one binlog; switching to next binlog: 스레드는 어떤 바이너리로그를 다 읽어들여서 다음의 바이너리 로그파일을 open하려고 하는 상태 
  • Has sent all binlog to slave; waiting for binlog to be updated: 모든 바이너리로그를 Slave에 전송이 끝나고  새로운 이벤트를 기다리고 있는 상태 
  • Sending binlog event to slave: 바이너리로그를 읽고 Slave에 송신중 
  • Waiting to finalize termination: 스레드 종료할 때의 상태