출처: http://mytalkhome.tistory.com/840 [내안의 작은 세상]
master - slave 를 구성해야 하는 이유가 뭘까요?
크게 두가지로 볼 수 있을듯 합니다.
1. 나름 백업
2. 분산처리( 쓰기는 마스터만, 읽기는 슬레이브에서만 )
분산처리란 결국 안정성 향상이라고 볼수도 있겠죠~
이글의 작성 기준은 아래와 같습니다
Master
Ubuntu 12.04 Server ( IDC / 한국 )
MariaDB 5.5.44
slave
Ubuntu 14.04 Server ( AWS / 일본 )
MariaDB 5.5.44
1. Master 설정
1-1. my.cnf 설정 변경
# vi /etc/mysql/my.cnf
[mysqld] 에 아래 내용 추가
# master sertting
server_id = 1
log_bin = mysql.bin
1-2. 사용자 추가
# mysql -uroot -p
MariaDB [(none)]> grant replication slave, replication client on *.* to repl@'%' identified by '비밀번호';
1-3. server-id 확인 및 수동 설정
* 이렇게 해주는 이유는 간혹 my.cnf에 설정했더라도 slave실행시 Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids 오류가 발생할 수 있음
MariaDB [(none)]> show variables like 'server_id';+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 1 |
+---------------+-------+
1 row in set (0.00 sec)
MariaDB [(none)]> SET GLOBAL server_id = 1;
1-4. master 정보 확인 및 DB LOCK
* DB 락을 거는 이유는 서비스중일경우 LOCK을 걸고 하시기 바랍니다. 그게 아닌 신규셋팅일경우 신경쓰지 않아도 됩니다.
MariaDB [(none)]> show master status;
+--------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| mariadb-bin.000226 | 483 | | |
+--------------------+----------+--------------+------------------+
* FIle 명과 Position을 기억해주세요 Slave 셋팅시 사용합니다
2. Slave 설정
2-1. my.cnf 설정 변경
[mysqld] 에 아래 내용 추가
# slave Setting
log_bin = mysql-bin
sever-id = 2
relay_log =mysql-relay-bin
log_slave_updates = 1
read_only = 1
2-2. server-id 확인 및 수동 설정
* 이렇게 해주는 이유는 간혹 my.cnf에 설정했더라도 slave실행시 Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids 오류가 발생할 수 있음
MariaDB [(none)]> show variables like 'server_id';+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 1 |
+---------------+-------+
1 row in set (0.00 sec)
MariaDB [(none)]> SET GLOBAL server_id = 2;
2-3. master접속 정보 설정
MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='master서버IP', MASTER_USER='repl', MASTER_PASSWORD='password',MASTER_PORT=3306,MASTER_LOG_FILE='mariadb-bin.000226',MASTER_LOG_POS=483,MASTER_CONNECT_RETRY=10;
* 위 강조된 부분들을 자신의 환경에 맞게 설정해주세요
2-4. SLAVE 시작
MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
출처: http://mytalkhome.tistory.com/840 [내안의 작은 세상]
'개발 > 기타' 카테고리의 다른 글
티스토리에 애드센스 광고넣기 (0) | 2020.01.23 |
---|---|
Socket.io를 사용한 실시간 채팅 애플리케이션 (0) | 2019.11.11 |
mysql/mariadb 계정 생성 및 삭제 (0) | 2015.10.12 |
HTML meta 태그 정리 및 기능 (0) | 2015.09.25 |
이클립스에서 C/C++ 프로그램 작성하기 (0) | 2015.09.16 |
댓글