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

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스레드가 트랜잭션 실패했을 경우  바로 에러로 하지 않고 몇번 재시도할 것인지 지정. 


    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: 모든 바이너리로그를 삭제