리플리케이션(복제, replication)의 종류중에는 특정한 데이터베이스를 다른 서버쪽으로 복사하는 것도 있지만 원본이 바뀔때마다 복사작업을 계속 반복해야하는 번거러움이 생긴다. 이건 전산이 아니라 노가다다. --전적으로 저의생각임
이번에 설명드릴 내용은 인터넷상에 많이 소개되고 있는 replication기능중에 주의사항을 위주로 기술할까한다.
1. 리플리케이션원리는
- 각 서버에는 유일한 리플리케이션 ID가 할당되어야 한다. 그값은 64비트크기의양의 정수값이어야한다.
(server-id=정수값)
- 마스터와 슬레이브는 동일한 복사본의 데이터베이스가 복제되어 서로 동기화된 상태에서 시작되어야 한다.
(물론 마스터도 설치직후이고 슬레이브도 설치직후이면 동기화할 필요는 없겠다.)
- 마스터 서버에서 발생한 갱신 사항은 슬레이브로 전달되지 슬레이브에 있는 복제된 데이터베이스에 직접 갱신되어 지는것은 아니다.
- 마스터 서버의 바이너리 갱신 로그에는 슬레이브 쪽으로 전송될 갱신사항이 기록되어진다.
(log-bin=바이너리파일명)
- 하나의 마스터에는 여러개의 슬레이브로 구성될수 있지만, 하나의 슬레이브가 여러개의 마스터를 구성할순 없다. 하지만 그 반대의 경우는 가능하다. 예를 들어 하나의 슬레이브는 다른 슬레이브의 마스터 서버가 될수 있고, 따라서 리플레이션 서버를 체인으로 구성할 수 있다.
- mysql 3.23.x슬레이브는 4.x마스터와 통신할 수 없다.
- 4.0.0슬레이브는 오직 4.0.0마스터하고만 통신할 수 있다.
(되도록 마스터와 슬레이브 버젼을 맞추어 주는것이 좋겠죠?)
- 기능적인 면에서도 호환되어야 한다.
(마스터 서버가 외부 키를 사용하는 InnoDB테이블과 RAID기능을 요구하는 MyISAM테이블을 리플리케이션시킨다면, 슬레이브 서버는 InnoDB핸들러와 RAID지원을 모두 포함해야 한다.)
2. 마스터-슬레이브 리플리케이션 관계수립
- 슬레이브서버에는 마스터 서버상의 계정이 있어야 하는데, 이것을 이용하여 마스터 서버로 연결하고 갱신을 요청한다. 마스터 서버상에서 다음과 같이 계정을 설정한다.
(GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'slave_host' IDENTIFIED BY 'slave_password')
- 마스터에 있는 데이타베이스를 슬레이브로 복사한다.
(mysqldump나 LOAD DATA FROM MASTER사용하여 동기화를 시켜준다.)
- 마스터서버 서비스를 중지시킨다.
- /etc/my.cnf를 수정한다.
[mysqld]
server-id=1
log-bin=binlog_name
- 마스터서버를 다시 시작한다. 이때 마스터 서버는 바이너리 로그를 갱신하게 된다. 이미 바이너리 로그 기능을 활성화시켰으면, 서버를 다시 시작하기 전에 존재하는 바이너리 로그들을 백업한다. 그리고 나서 시작한후 reset master문을 제출하여 존재하는 바이너리 로그들을 지운다.
- 슬레이브 서버를 중지한다.
- /etc/my.cnf를 수정한다.
[mysqld]
server-id=2
master-host=master_host
master-user=slave_user
master-password=slave_password
- 위의 마스터호스트와 유저 패스워드는 위의 GRANT문의 유저 호스트 슬레이브유저 암호를 기입하면 되겠다.
- 슬레이브 서버를 다시 시작한다.
- 슬레이브 서버를 시작한후 Mysql서버에 접속하여 start slave를 입력한다.
- 데이타디렉토리에 mater.info이 생성된다. master.info파일은 작업해야할 바이너리 정보와 서버정보,유저정보가 들어있다.
- 만일 나중에 옵션 파일 안에서 마스터 호스트 정보를 변경하게 된다면 master.info파일을 삭제하고 슬레이브 서버를 다시 시작해야 변경사항을 제대로 읽어온다
'I Like > ETC' 카테고리의 다른 글
4가지 사랑의 언어-펌 그러나 실천할 대상이 없다 ㅋ (0) | 2008.12.26 |
---|---|
크리스마스의 유래 (0) | 2008.12.24 |
유모레스크- 내가 당신을 얼마나 사랑하는지... (0) | 2008.12.19 |
사랑의 묘약 '남몰래 흐르는 눈물' (0) | 2008.12.19 |
그들이 사는 세상 브로마이드 (0) | 2008.12.08 |