레이블이 복제인 게시물을 표시합니다. 모든 게시물 표시
레이블이 복제인 게시물을 표시합니다. 모든 게시물 표시

2010년 7월 13일 화요일

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

Slave에 관한 SQL문 

  • GRANT REPLICATION CLIENT ON *.* : SHOW SLAVE STATUS를 실행할 수 있는 권한을 부여 
  • CHANGE MASTER TO : Master 변경, 바이너리 로그의 읽기 위치 변경수행 
  • SHOW SLAVE STATUS: Slave 서버의 상황
  • SHOW WARNINGS : warning의 확인
  • SHOW SLAVE HOSTS: Slave리스트를 출력. Slave서버는 --report-host=옵션의 지정이 필요하다. REPLICATION CLIENT권한이 필요
  • SET GLOBAL SQL_SLAVE_SKIP_COUNTER=갯수 : 지정된 갯수만큼만 이벤트 실행을 건너뜀.
  • SELECT MASTER_POS_WAIT() :  지정된 바이너리로그의 위치까지 실행되기까지 대기 
  • START SLAVE: Slave개시
  • STOP SLAVE: Slave정지 
  • RESET SLAVE: Master 정보 삭제 
  • LOAD DATA FROM MASTER: Master로부터 데이터를 복사 
  • LOAD TABLE 테이블명 FROM MASTER: Master로부터 테이블을 복사 

Slave가 작성하는 파일 
  • master.info:  Replication상태를 유지하기위해서 이용되는 파일. Slave서버가 자동으로 생성한다.  임의로 변경하지 않도록 주의한다.  다음과 같은 내용을 포함하고 있다.  
  1. 이 파일의 행수 
  2. Master_Log_File
  3. READ_Master_Log_Pos
  4. Master_Host
  5. Master_User
  6. 패스워드
  7. Master_Port
  8. Connect_Retry
  9. Master_SSL_Allowed
  10. Master_SSL_CA_File
  11. Master_SSL_CA_Path
  12. Master_SSL_Cert
  13. Master_SSL_Cipher
  14. Master_SSL_Key
디폴트로 datadir/밑에 작성되지만 --master-info-file=옵션으로 변경가능하다.  파일명도 같은 방법으로 변경할 수 있다.  

  • relay-log.info: Slave서버의 relay-log상황을 기록하는 파일로 자동적으로 생성된다.  임의로 편집해서는 안된다.  다음과 같은 내용을 포함하고 있다. 
  1. Relay_Log_File
  2. Relay_Log_Pos
  3. Relay_Master_Log_File
  4. Exec_Master_Log_Pos
디폴트로 datadir/밑에 작성되지만 --relay-log-info-file=옵션으로 변경가능하다.  파일명도 같은 방법으로 변경할 수 있다.  
  • 호스트명-relay-bin.NNNNNN:  relay로그파일이다.  N은 숫자로 000001에서 순차적으로 증가한다.  999999의 다음은 1000000가 된다.   호스트명-relay-bin의 부분은 --relay-log=옵션으로 변경가능하다.  또, 디폴트로는 datadir/에 작성되지만 장소는 --relay-log=옵션으로 변경가능하다. 

  • 호스트명-relay-bin.index:현재 가지고 있는 relay로그 리스트이다. 

2010년 7월 6일 화요일

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

바이너리 로그갱신의 일시적인 ON/OFF ( SET SQL_LOG_BIN)

바이너리 로그의 갱신을 일시적으로 ON/OFF하는 경우는 SET SQL_LOG_BIN을 실행한다.
보통 Replication 대상외로 하고 픈 테이블(권한 테이블)등을 갱신할 때만 사용한다.

구문은 다음과 같다.

SET SQL_LOG_BIN= {0|1}

「1」은 이 세션의 갱신을 바이너리로그에 기록한다. 기본값이다. 「0」은 이 세션의 갱신을 바이너리로그에 기록하지 않는다.

Master이 상태확인(SHOW MASTER STATUS)

현재 써넣고 있는 바이너리로그와 그 위치를 확인하는 경우는 SHOW MASTER STATUS를 실행한다.


바이너리 로그의 목록을 표시(SHOW BINARY LOGS)

현재 유지하고 있는 바이너리 로그를 목록표시하기 위해서는 SHOW BINARY LOGS를 사용한다.
구문은 다음과 같다.

SHOW [MASTER|BINARY] LOGS


바이너리로그내의 이벤트를 표시 ( SHOW BINLOG EVENTS ) 

지정된 바이너리 로그파일의 이벤트를 나타낸다. 구문은 다음과 같다.

SHOW BINLOG EVENTS
[IN '바이너리로그파일'] [FROM 위치1] [LIMIT [오프셋,] 갯수]

바이너리 로그파일명을 지정하지 않는 경우는 최초의 바이너리 로그를 읽어들인다.
LIMIT으로 이벤트의 읽어들일 위치(오프셋)과 표시할 이벤트의 갯수를 지정할 수 있다.
LIMIT가 없는 경우는 모든 이벤트를 표시하게 되어 엄청난 양이 될 수 있으므로 주의해야한다.



지정한 바이너리 로그의 삭제 (PURGE MASTER LOGS)

바이너리 로그를 삭제하려면 PURGE MASTER LOGS를 사용한다. 구문은 다음과 같다.

PURGE {MASTER|BINARY} LOGS TO '바이너리 로그파일'
PURGE {MASTER|BINARY} LOGS BEFORE 'YYYY-MM-DD hh:mm:ss'


TO '바이너리 로그파일'의 지정의 경우는 지정된 파일 한개 전까지가 삭제된다.
BEFORE '날짜시간'도 지정된 일시보다 전의 파일이 삭제된다.

이 조작을 수행하면 호스트명-bin.index파일도 자동으로 변경된다.


Slave정보의 확인(SHOW SLAVE HOSTS)

Slave 정보를 얻기위해서는 SHOW SLAVE HOSTS를 실행한다.
Slave 서버에 --report-host=옵션을 지정하고 있는 것에 한정된다.

실행후에 나타나는 컬럼 Rpl_recovery_rank는 5.1.12-beta버전에서는 사용되어지지 않고 의미도 없다.
또, Master 서버에 --show-slave-auth-info옵션을 지정한 경우는 유저명과 패스워드도 표시된다.

이것은 Slave에서 다음의 옵션으로 지정한 값에 지나지 않는다. 실제로 Replication이 사용하고 있는 패스워드등은 표시되지 않는다.

--report-host=
--report-port=
--report-user=
--report-password=


Master의 초기화
모든 바이너리 로그파일을 삭제하고 Master를 초기화하는 경우는 RESET MASTER를 실행한다.
Replication운용중에 사용하지는 않겠지만 처음에 Replication을 재셋업할 경우등에 사용한다.

주의해서 사용해야한다.