RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
MySQL Replication 설정(Master-Slave, Master-Master) Tips

2013/03/13 15:47

복사 http://blog.naver.com/ggaibi1004/10163013682

전용뷰어 보기

CentOS 6.2, MySQL 5.5.16에서 테스트했습니다.

먼저 Master-Slave 구조 설정 후에 Master-Master 구조 설정을 추가하였습니다.



#######################################################################

[ Master - Slave 설정 ]

#######################################################################

: Master에서만 트랜잭션이 가능하고 Master의 변경사항이 Slave로 단방향 동기화 구조


##################################

[ Master 설정 ]

##################################


1. vi /etc/my.cnf 설정

---------------------------

[mysqld]

# Seting for Replication(Master)

server-id        = 1                          <- 서버 고유아이디, Slave와 다르게 설정

log-bin          = mysql-bin               <- MySQL(오라클의 redo로그와 유사) 로그생성 설정

expire_logs_days = 7                      <- 로그 보관주기 설정(일)

replicate-do-db  = test_db              <- Replication 대상 DB 지정, 이 옵션을 제거시 모든 DB 복제

---------------------------


* 참고(binlog_do_db/replicate-do-db 차이)

- binlog_do_db : Master 기준 어떤 DB를 Replication 허용할 것인지 설정(제외조건 binlog_ignore_db)

- replicate-do-db : Slave 기준 어떤 DB를 Replication 할 것인지 설정(제외조건 replicate-ignore-db)



2. mysql restart

service mysql restart


3. Master 접속 계정생성 및 Replication 접근 권한설정

---------------------------

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'repl';   <- repl/repl 계정변경가능

mysql> FLUSH PRIVILEGES;

---------------------------


4. 데이터 동기화(백업)

---------------------------

mysql> FLUSH TABLES WITH READ LOCK;

mysql> mysqldump -u root -p test_db > backup.sql

mysql> SHOW MASTER STATUS;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001 |      107 |              |                  |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)


mysql> UNLOCK TABLES;

---------------------------




##################################

[ Slave 설정 ]

##################################


1. 데이터 동기화(복사)

---------------------------

mysql> mysql -u root -p test_db < backup.sql

---------------------------


2. vi /etc/my.cnf 설정

---------------------------

[mysqld]

# Seting for Replication(Slave)

server-id        = 2

log-bin          = mysql-bin

expire_logs_days = 7

replicate-do-db  = test_db

---------------------------


3. mysql restart

service mysql restart


4. Master 접속설정

---------------------------

mysql> CHANGE MASTER TO

MASTER_HOST='192.168.1.5',                     <- Master IP나 호스트명을 입력

MASTER_USER='repl',                               <- Replication 아이디

MASTER_PASSWORD='repl',                      <- Replication 패스워드

MASTER_PORT=3306,

MASTER_LOG_FILE='mysql-bin.000001',      <- Master의 SHOW MASTER STATUS; 결과화면의 로그파일명 입력

MASTER_LOG_POS=107;                           <- Master의 SHOW MASTER STATUS; 결과화면의 Position 입력

---------------------------


5. Slave 시작

---------------------------

#변경의 경우

#stop slave;

#reset slave;

#flush privileges;


start slave;






#######################################################################

[ Master - Master 설정추가 ]

#######################################################################

: 양쪽 노드가 다 Master이면서 Slave인 구조로 양방향 동기화 구조


##################################

[ Slave 설정 ]

##################################

: 위 Master-Slave 설정에서 서로 바꾸어 설정을 하면 됨


1. 접속 계정생성 및 Replication 접근 권한설정

---------------------------

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'repl';

mysql> FLUSH PRIVILEGES;

---------------------------


2. 로그파일과 Position확인

 mysql> SHOW MASTER STATUS;


+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000002 |      322 |              |                  |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)




##################################

[ Master 설정 ]

##################################


3. Master 접속설정

---------------------------

mysql> CHANGE MASTER TO

MASTER_HOST='192.168.1.19',                     <- Master IP나 호스트명을 입력

MASTER_USER='repl',                                <- Replication 아이디

MASTER_PASSWORD='repl',                       <- Replication 패스워드

MASTER_PORT=3306,

MASTER_LOG_FILE='mysql-bin.000002',       <- Slave의 SHOW MASTER STATUS; 결과화면의 로그파일명 입력

MASTER_LOG_POS=322;                            <- Slave의 SHOW MASTER STATUS; 결과화면의 Position 입력


flush privileges;


start slave;

---------------------------


4. 동작확인

mysql> SHOW SLAVE STATUS\G


양쪽에서 위 명령으로 상태 확인시 아래와 같은 결과시 성공.


*************************** 1. row ***************************

               Slave_IO_State: Waiting for master to send event

                  Master_Host: 192.168.1.5

                  Master_User: repl

                  Master_Port: 3306

                Connect_Retry: 60

              Master_Log_File: mysql-bin.000002

          Read_Master_Log_Pos: 107

               Relay_Log_File: JCSM-2-relay-bin.000006

                Relay_Log_Pos: 253

        Relay_Master_Log_File: mysql-bin.000002

             Slave_IO_Running: Yes

            Slave_SQL_Running: Yes

              Replicate_Do_DB: test_db

          ...중략

1 row in set (0.00 sec)


한쪽 mysql 중지시 아래와 같은 결과


*************************** 1. row ***************************

               Slave_IO_State: Reconnecting after a failed master event read

                  Master_Host: 192.168.1.5

                  Master_User: repl

                  Master_Port: 3306

                Connect_Retry: 60

              Master_Log_File: mysql-bin.000001

          Read_Master_Log_Pos: 24447

               Relay_Log_File: JCSM-2-relay-bin.000004

                Relay_Log_Pos: 22473

        Relay_Master_Log_File: mysql-bin.000001

             Slave_IO_Running: Connecting

            Slave_SQL_Running: Yes

              Replicate_Do_DB: test_db

          ....중략

                Last_IO_Errno: 2003

                Last_IO_Error: error reconnecting to master 'repl@192.168.1.5:3306' - retry-time: 60  retries: 86400


1 row in set (0.00 sec)



* 한쪽 DB를 중지 시키고 다른 쪽 DB에서 데이터 변경후 중지시킨 DB를 start 해보니 자동으로 데이터 동기화가 잘 됨을 확인.
2014/01/28 21:07 2014/01/28 21:07
http://zosel.net/trackback/96
from.Stivali Ugg 2013  2015/11/11 19:35
nike air max 2011
from.Ugg Italia Outlet  2015/11/12 03:47
nike nike air
from.Ugg Sale Online  2015/11/12 09:30
printed nike free runs
from.Ugg Stivali  2015/11/12 09:30
nike air max free run
from.Prezzi Ugg In Italia  2015/11/12 11:45
nike max air shoe
from.Ugg Palermo  2015/11/12 12:28
nike mercurial vapor superfly iii
from.Ugg Outlet Online Shop  2015/11/12 15:51
mcm luggage bags
from.Ugg Mini  2015/11/12 16:23
nike free runs women 5.0
from.Ugg Uomo Online  2015/11/12 20:34
nike id roshe
from.Rivenditori Ugg Milano  2015/11/12 21:10
nike tiffany blue shoes
from.Ugg Svizzera  2015/11/12 21:28
mens nike air max 2013 on sale
from.Ugg In Lana  2015/11/12 21:28
nike id locker
from.Ugg Australia Shop Online Italia  2015/11/12 21:40
nike air max shoes online shop
from.Ugg Online Outlet  2015/11/12 23:01
nike air max woman
from.Ugg Stivali Prezzi  2015/11/12 23:09
mcm bags wiki
from.Le Ugg  2015/11/12 23:10
nike high tops
from.Stivali Ugg Bassi  2015/11/12 23:38
style nike air max
from.Ugg Roxy  2015/11/12 23:51
cheap nike and jordan shoes
from.Ugg Bologna  2015/11/13 00:30
mcm handbags outlet sale
from.Imitazione Ugg  2015/11/13 01:22
free shoes from nike
from.Outlet Ugg Online  2015/11/13 01:48
custom made nike shoes
from.Ugg Da Uomo  2015/11/13 05:31
sneakers nike air
from.Ugg 2013  2015/11/13 07:04
cheap nike running trainers uk
from.Punti Vendita Ugg  2015/11/13 10:59
nike free run price
from.Stivale Ugg  2015/11/13 11:21
womens nike free 5.0 running shoe
from.Ugg 70 Euro  2015/11/13 12:25
shop nike air max online
from.Ugg Bambina  2015/11/13 15:24
nike flyknit
from.Ugg Bambina  2015/11/13 20:41
nike shoes white
from.Ugg Mini  2015/11/13 21:08
nike free run v4 5.0
from.Ugg Sito Ufficiale Italia  2015/11/14 19:37
blue and pink nike free run 3
from.Ugg Italia Prezzi  2015/11/14 22:29
nike outlets stores
from.Spaccio Ugg Italia  2015/11/14 23:17
2014 nike air maxes
from.Ugg Australia Shop  2015/11/15 10:28
cheap nike free run 3.0 v4
from.Ugg Scarpe Donna  2015/11/15 10:48
cheap nike shoes
from.Ugg Cardy Prezzo  2015/11/15 13:14
nike free run 3.0 v4
from.Stivali Tipo Ugg  2015/11/15 14:32
nike air max moto womens
from.Ugg Triplet Button  2015/11/15 18:17
womens nike shox
from.Stivali Australiani Ugg  2015/11/16 03:27
mcm electronics promo code
from.Shop Online Ugg  2015/11/16 03:32
my nike id
from.Ugg Baby  2015/11/16 04:25
nike air max on sale for women
from.Ugg Scontate  2015/11/16 07:11
nike free runs 5.0 kids
from.Ugg Shop On Line  2015/11/18 01:03
nike dunks high
from.Ugg Saldi Milano  2015/11/18 03:39
nike shox deliver
from.Ugg Boots Prezzi  2015/11/18 07:51
cheap nike jordan shoes online
from.Ugg Online Sale  2015/11/18 10:46
nike free sneakers
from.Ugg Australia Prezzi  2015/11/18 13:12
nike air max womens blue
from.Ugg Australia Official Site  2015/11/18 16:32
nike dc
from.Italia Ugg Online  2015/11/18 20:00
2013 nike max air
from.Ugg Donna  2015/11/20 09:23
nike free run 3 running shoes
ZOSEL:Too much is as bad as too little...!! 자공(子貢)이 공자에게 "사(師:子張의 이름)와 상(商:子夏의 이름)은 어느 쪽이 어집니까?" 하고 묻자, 공자는 "사는 지나치고 상은 미치지 못한다"고 대답하였다. "그럼 사가 낫단 말씀입니까?" 하고 반문하자, 공자는 "지나친 것은 미치지 못한 것과 같다(過猶不及)"고 말하였다.
Too much is as bad as too little...!! 자공(子貢)이 공자에게 "사(師:子張의 이름)와 상(商:子夏의 이름)은 어느 쪽이 어집니까?" 하고 묻자, 공자는 "사는 지나치고 상은 미치지 못한다"고 대답하였다. "그럼 사가 낫단 말씀입니까?" 하고 반문하자, 공자는 "지나친 것은 미치지 못한 것과 같다(過猶不及)"고 말하였다.
전체 (209)
리눅스시스템 (92)
윈도우시스템 (16)
프로그램 (7)
네트워크시스템 (7)
최근관심 (1)
«   2024/05   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
  1. yeezyboost-350.co.uk  2021
    yeezyboost-350.co.uk
  2. 강남역 풀싸롱  2021
    강남역 풀싸롱
  3.   2021
  1. 2018/02 (1)
  2. 2017/03 (2)
  3. 2016/12 (2)