[펌]MySQL Replication 설치

2007. 7. 25. 13:40·Computing/MySQL

MySQL Replication 설치

저작권 : 이문서는자유롭게수정및배포가가능합니다. 단상업적용도로사용할수없습니다.
수정및배포시작성자의이름및출처를꼭명시하기바랍니다
.
작성자 : f405(ccotti22)

작성일 : 2005년 12월 28일목요일
이메일 : f405@naver.com


이문서는공부하는입장에서작성되었으므로틀린부분을다소포함할수있으며, 저는그에대한책임을지지않겠습니다. 부족하지만다른분들도공부하는데도움이되길바랍니다. 그리고이문서를작성하기전참고한리눅스문서들을작성하신많은선배님들에게감사의말씀을드립니다.
그리고이후부터는경어는생략하였습니다. 양해의말씀을...

설치환경

Red Hat Linux (Kernel 2.6.9-22.ELsmp)

Intel(R) Xeon(TM) CPU 2.80GHz ( 4 CPU )

MemTotal : 1GB

설치패키지구성(필요한파일)

//다음파일들을다운받고설치시작 (2005-12-28 현재최신 stable 버전)

mysql-standard-5.0.17-linux-i686-glibc23.tar.gz

다음사이트에서필요한파일들을다운받을수있다.

[MySQL]                   http://dev.mysql.com/downloads

- MySQL 설치

Replication을구축하기위해우선 MySQL을설치한다. 설치시특이사항은없고일반적으로설치하면되므로기타자세한설명은하지않도록하겠다.

# groupadd mysql
# useradd -g mysql
# tar xvzf mysql-standard-5.0.17-linux-i686-glibc23.tar.gz
# mv ./mysql-standard-5.0.17-linux-i686-glibc23 /usr/local/
# ln -s /usr/local/ mysql-standard-5.0.17-linux-i686-glibc23 /usr/local/mysql
# cd /usr/local/mysql
# ./scripts/mysql_install_db
# chown -R root .
# chown -R mysql data
# chgrp -R mysql .
# cp ./support-files/my-medium.cnf /etc/my.cnf
# cp ./support-files/mysql.server /etc/init.d/mysqld
# vi /etc/init.d/mysqld

/////
다음부분을잘찾아서고칠것

$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file --user=mysql >/dev/null 2>&1 &

# chmod 700 /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig --level 345 mysqld on
# /etc/init.d/mysqld start

- MySQL Replication 설치

Replication 이란?

Replication은 3.23.15부터지원되기시작한기능으로 ‘복제’라는사전적의미에맞게마스터의 MySQL 서버의데이터를여러대의슬레이브 MySQL 서버의데이터와동기화시켜주는기능이다.

주로, MySQL의데이터를실시간으로백업하거나, 데이터서버의부하분산을하고자할때많이사용된다.

자, 이제 Master-Slave로구성된 Replication 상태를만들어보도록하자.

How to Set Up Replication

1.       MySQL을 master 와 slave 서버에설치한다.
안정성을위해두서버의버전을맞춰주는것이좋다. Replication 기능은3.23.15부터지원되기시작하였으나 3.23.32부터안정화되었다고알려져있으므로, 그이상혹은최신버전의 MySQL 을설치하길권장한다
.

2.       slave 서버에서 master 서버에접속할수있도록, master 서버에계정을만든다. 사용자를추가해주어야한다는말이다. 이계정에 REPLICATION SLAVE 권한을주어야한다. replication에만사용할계정이라면추가적인권한은주지않아도된다.
slave 서버에서master 서버에접속할계정과패스워드에권한을부여하는명령은다음과같다.
master mysql > GRANT REPLICATION SLAVE ON *.*           -> TO 'user_name'@'user_host' IDENTIFIED BY 'user_password';
여기서 user_name은중복되지않는이름이면되며, user_host 는 slave로만들서버의주소혹은도메인네임을적어준다. 이주소의 slave 유저만 master 서버로접속할수있다.

4.0.2 이전버전의 MySQL에서는, REPLICATION SLAVE 권한이없으므로, 다음과같이 FILE 권한으로대신한다.
master mysql > GRANT FILE ON *.*

          
-> TO 'user_name'@'user_host' IDENTIFIED BY 'user_password';

3.       master 서버의기본데이터를백업받아, slave 서버의데이터베이스에복사한후, 데이터디렉토리에서압축을푼다.

 
HOT 백업

master mysql > FLUSH TABLES WITH READ LOCK;
master shell > tar -cvf /tmp/mysql-snapshot.tar .
slave   shell > tar -xvf /tmp/mysql-snapshot.tar
master mysql > UNLOCK TABLES;

  mysqldump
이용백업

master Shell > mysqldump –u root –p ‘password’ -B db_name > dump_file.sql

4.       Master 와 Slave 의데이터베이스환경을설정한다.
우선 master 서버를설정하도록한다
.
master shell>
vi /etc/my.cnf
master 서버는디폴트로구성이되어있을것이므로, [mysqld] 섹션에 log-bin이있는지확인한다
.
[mysqld]
log-bin
server-id  = 1

5.       다음은 slave 서버의환경설정이다.
slave shell>
vi /etc/my.cnf
[mysqld] 섹션으로가서 server-id를 master 서버의 server-id와다르게설정한다
.
본문서에서는 2로설정하도록하겠다. slave 서버를여러대로구축하고자할때에각 slave 서버의 server-id는각각달라야한다는것에주의하자. 2^32-1까지가능하다
.
[mysqld]
server-id             = 2
master-host          = xxx.xxx.xxx.xxx(user_host)
master-port           = 3306
master-user          = user_name
master-password  = user_password


6.       master 서버의데이터를백업받았다면, slave 서버를시작하기전에 slave 서버의데이터디렉토리에 master 서버의데이터를복사해둔다. mysqldump를사용했다면, 다음으로가서먼저, slave 서버를스타트한다.

7.       slave 서버를스타트한다.
slave shell > /etc/init.d/mysqld start

8.       mysqldump를사용해백업파일을만들었다면, slave 서버에덤프파일을로드시킨다.
slave shell > mysql –u root –p < dump_file.sql

9.       slave 서버에서 master-host, master-user, master-password 등의설정을다음과같이바꿀수도있다. 물론 /etc/my.cnf에서설정하지않았을경우에도쓸수있다.
slave mysql >  CHANGE MASTER TO
          ->        MASTER_HOST='master_host_name',
          ->        MASTER_USER='replication_user_name',
          ->       
MASTER_PASSWORD='replication_password',           ->        MASTER_LOG_FILE='recorded_log_file_name',           ->        MASTER_LOG_POS=recorded_log_position;

    

      각옵션의최대길이는다음과같다.

MASTER_HOST

60

MASTER_USER

16

MASTER_PASSWORD

32

MASTER_LOG_FILE

255



10.   slave 쓰레드를스타트한다.
slave mysql > START SLAVE;

11.   mysql/data/slave.err을확인하여다음과같은메시지가있으면성공적으로설정된것이다.
Slave I/O thread: connected to master 'user_name@user_host:3306',  replication started in log 'FIRST' at position 4

'Computing > MySQL' 카테고리의 다른 글

mysql 복구  (0) 2011.11.04
[Mysql] 쿼리문 내에서 encoding 변경...  (0) 2010.11.17
[펌]MySql 복구 방법  (0) 2007.07.25
[펌]MySQL Cluster  (0) 2007.07.25
'Computing/MySQL' 카테고리의 다른 글
  • mysql 복구
  • [Mysql] 쿼리문 내에서 encoding 변경...
  • [펌]MySql 복구 방법
  • [펌]MySQL Cluster
머냥
머냥
(날아보기도전에 인생추락... 그러나 포기는 없다.)
  • 머냥
    Frody's
    머냥
  • 전체
    오늘
    어제
    • 분류 전체보기 (88)
      • 사진관 (0)
        • 죄지은영혼 (0)
      • 스크랩북 (10)
        • 사진 (1)
        • 기사 (1)
        • 기타 (8)
      • 긁적임 (0)
      • 취미 (1)
      • Computing (69)
        • Typescript Study (0)
        • Linux (35)
        • MySQL (5)
        • java/jsp (4)
        • Flex (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

    • 쉘스크립트메뉴얼
    • Cron 설정
    • 루비강좌 (Ruby)
    • 루비 강좌(Wiki)
    • 회계기초 동영상
    • 서버DNS점검
    • 정규식 프로그램 RegexBuddy 소개
    • spamassasin 관련 설명블로그
    • spamassasin 관련 #2
    • spamassasin 관련 #3
    • soap 간단예제관련
    • php smarty 한글메뉴얼
    • 파이썬강좌
    • 가덕도 방문기
    • 기업용주가정보 무료제공
    • 페이스북 글등록
    • axigen메일
    • 야후신고센터.
    • postfix 환경설정
  • 공지사항

  • 인기 글

  • 태그

    tar
    Auqa Data
    프로그래밍
    김동욱
    Qmail
    모비딕
    연주
    휴대폰
    동영상
    요리
    Linux
    디워
    골
    MySQL
    BIND
    명령어
    스트리밍
    MSSQL
    ffmpeg
    imap
    김동률
    ssh
    freeTDS
    FLV
    오라클
    프리시즌
    php
    윤도현의 러브레터
    김두현
    Subversion
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
머냥
[펌]MySQL Replication 설치
상단으로

티스토리툴바