SSamTure.net

워드프레스

MySQL Replication 구축 방법

본 포스트에서 나오는 경로는 우분투 리눅스 기준으로 작성하였습니다.

#1. Master Server

/etc/mysql/my.cnf 에서

server-id        = 1
log_bin            = /var/log/mysql/mysql-bin.log
binlog_do_db        = DB명
#사용 되는 옵션(do: 해당 DB(table)만 | ignore: 해당 DB(table) 제외하고)
#binlog-do-db(table)
#binlog-ignore-db(table)
#replicate-do-db(table)
#replicate-ignore-db(table)

#여러개의 DB(table)을 입력 시에는 ","로 구분하는 것이 아니고 하나하나 작성 해야함
#ex)
binlog_do_db        = DB1
binlog_do_db        = DB2.table

위와 같이 작성 후 mysql를 재 시작한다.

sudo /etc/init.d/mysql

재 시작 후 mysql에 접속한 후 다음을 확인한다. 이때 File 을 기억한다. 처음 설정을 할 시에는 000001이지만, 혹시 모르니 작성해 두었다.

mysql>grant replication slave on *.* to '계정'@'slave server ip' identified by '비밀번호'; //slave server를 위한 계정 생성

mysql> show master status;//실행 상태 확인
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000006 |      921 | wpmu2        |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

mysql> show master logs;//로그 확인
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |       117 |
| mysql-bin.000002 |       117 |
| mysql-bin.000003 |       125 |
| mysql-bin.000004 |     29542 |
| mysql-bin.000005 |    370734 |
| mysql-bin.000006 |      1084 |
+------------------+-----------+

master server 설정은 끝났다.

#2.  Slave Server

/etc/mysql/my.cnf 에서

server-id        = 2(master server 와 다르게)

위와 같이 작성 후 mysql를 재 시작한다.

mysql 접속 후

mysql>stop slave;
mysql>change master to master_host = 'master IP', master_port = 3306, master_user = ' master에서 생성한 계정', master_password = '비밀번호', master_log_file = 'mysql-bin.000001'; //master_log_file 명은 앞에서 확인한 master 상태에서의 File(Log_file)명이 된다.
mysql>start slave;

이제 모든 설정이 끝났다.

slave 의 동작 상태는

mysql>show slave statusG;

를 통하여 확인 할 수 있으며

Slave_IO_State : Wating for master to send event
Slave_IO_Running : YES

로 나오면 정상 동작하는 것이다.

Leave a Reply

Your email address will not be published. Required fields are marked *