일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Eclipse
- JavaScript
- 맥
- java
- jquery
- Oracle
- 공모주 청약
- SQL
- php
- 주식 청약 일정
- 코드이그나이터
- 제이쿼리
- 리눅스
- IPO
- linux
- css
- codeigniter
- 오라클
- Stock ipo
- 주식 청약
- 7월 공모주 청약 일정
- Stock
- 자바
- 공모주
- 주식
- 공모주 청약 일정
- MYSQL
- html
- 6월 공모주 청약 일정
- 자바스크립트
- Today
- Total
개발자의 끄적끄적
[sql] MySQL Replication(미러링) [펌] 본문
[sql] MySQL Replication(미러링) [펌]
- 필요성 -
서버 운영중에 발생하는 예기치 못한 서비스 중단에 대해 최신 자료의 복구를 위해
- REPLICATION 란? -
Master DB를 복제하는 Slave DB를 만들어 데이터 백업, 복구, 부하 분산 등에 이용하는 것
- Mysql Replication 의 특징 -
1. 마스터-> 슬레이브로의 일방향 복제기능.
2. 바이너리 로그(binlog)를 이용한 미러링.
3. 쿼리에 의한 부하 분산.
4. 다수의 슬레이브 서버를 이용한 부하 분산.
- REPLICATION 설정 방법 -
1. Master DB와 Slave DB에 Mysql 을 설치
2. Master DB와 Slave DB의 Mysql 의 데이터를 일치시킴. (mysqldump 등을 이용)
3. Master DB와 Slave DB의 my.cnf(보통 /etc/my.cnf에 존재) 수정
<<<Master DB>>>
[mysqld]
log-bin
server-id=1
<<<Slave DB>>>
[mysqld]
master-host=마스터의 IP/도메인 주소
master-user=아이디
master-password=패스워드
master-port=3306 (마스터 Mysql 포트번호)
server-id=2
마스터에 슬레이브가 접근 가능하도록 권한 수정
GRANT FILE ON *.* TO 'ID'@"%" IDENTIFIED BY 'password';
(이걸 빠뜨린다면 아래와 같은 오류가 발생할 수 있다)
- error connecting to master 'repl@192.168.0.22:3306' - retry-time: 60 retries: 86400
여기서 '%'는 모든 ip주소를 의미하고 특정 ip만 접근가능하도록 하기 위해서는 '%' 대신에 ip주소를 적어도 된다
만일 여러 대의 슬레이브 서버를 구축하는 경우, server-id 라는 고유넘버를 달리하여 슬레이브 설정과 같이 해 주면 된다.
이제 모든 설정이 완료되면 마스터와 슬레이브 서버를 재시작한다. (mysql.server restart)
- REPLICATION 작동 확인 방법 -
설정과 Mysql 재시작이 완료되면 Replication 작동 상태를 확인한다.
먼저 마스터의 Mysql Shell로 로그인 하여
> show master status ;
를 하여 다음과 같은 메시지가 나온다면 정상이다.
+-------------+----------+--------------+------------------+
| File | Position | Binlog_do_db | Binlog_ignore_db |
+-------------+----------+--------------+------------------+
| sim-bin.002 | 73 | | |
+-------------+----------+--------------+------------------+
다음으로 슬레이브의 Mysql Shell로 로그인 하여 작동 상태를 확인한다.
> show slave status;
를 하여 다음과 같은 메시지가 나온다면 정상적이다.
+--------------+-------------+-------------+---------------+---------
----+-----+
| Master_Host | Master_User | Master_Port | Connect_retry | Log_File
| Pos | Slave_Running |
+--------------+-------------+-------------+---------------+---------
----+-----+
| sim.tt.co.kr | chodong | 3306 | 60 | sim-bin.002 | 73 | Yes |
+--------------+-------------+-------------+---------------+---------
----+-----+
또한 show processlist; 명령을 통해 각각의 프로세스 정보를 확인하는 방
법도 있다.
마스터 서버에서 show processlist ; 를 한 결과이다.
Id User Host db Command Time State Info
1 chodong 211.47.65.106 Binlog Dump 336959 Slave connection: waiting
for binlog update
위와 같이 슬레이브 서버의 접속 상태와 접속시간 등의 정보를 볼 수 있
다.
슬레이브에서 show processlist ; 한 결과이다.
Id User Host db Command Time State Info
57 system user none Connect 502778 Reading master update
마찬가지로 마스터 서버에 대한 접속 상태와 접속시간 등을 알 수 있다.
미러링 참고로 퍼왔습니다!
출처는 아래 명시했습니다!
꼭 원문 사이트가서 다시 확인하고 참고하세용!
'개발 > sql' 카테고리의 다른 글
[mysql] table comment , mysql 테이블 주석 및 필드 주석 [펌] (0) | 2020.08.24 |
---|---|
[oracle]오라클 Replication 기능에 대해[펌] (0) | 2020.08.22 |
[mysql] 이중화 구성 (Replication / 리눅스 + 윈도우) [펌] (0) | 2020.08.21 |
[MySQL] mysqldump 스크립트 자동화시 계정에 관한 경고 처리[펌] (0) | 2020.08.21 |
[MySQL] 패스워드 노출 경고 (Mysql 5.6 Warning: Using a password on the command line interface can be insecure.) [펌] (0) | 2020.08.20 |