일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 공모주 청약
- 주식 청약
- java
- 주식 청약 일정
- 6월 공모주 청약 일정
- MYSQL
- Stock
- linux
- php
- Stock ipo
- SQL
- 제이쿼리
- 오라클
- 자바
- codeigniter
- 리눅스
- JavaScript
- IPO
- Oracle
- 맥
- jquery
- 코드이그나이터
- 공모주 청약 일정
- css
- html
- 자바스크립트
- 주식
- 공모주
- 7월 공모주 청약 일정
- Today
- Total
개발자의 끄적끄적
[mysql] 이중화 구성 (Replication / 리눅스 + 윈도우) [펌] 본문
[mysql] 이중화 구성 (Replication / 리눅스 + 윈도우) [펌]
최근에 프로젝트를 진행하던중
디비 백업과 관련하여 자료를 찾던중
참고할만한 내용이라 퍼왔습니다!
출처는 맨 아래 명시했습니다!
리눅스 서버와 윈도우 서버에 mysql 을 설치 했으니, 이중화를 구성하려고 한다.
MS-SQL 이중화와는 방식이 다르긴 하지만 뭐, 그냥 저냥 해보면 될 것 같다.
1. Master 와 Slave 할당
검색을 통해서 알아보니깐 DB 버전이 완전히 같을 필요는 없지만, Slave 가 버전이 높아야 한다고 한다.
그래서 Master 는 리눅스 mysql 5.1 을, Slave 는 윈도우 mysql 5.6 으로 정했다.
M : Linux / mysql 5.1 / 192.168.1.10
S : Window / mysql 5.6 / 192.168.1.20
2. M 의 my.cnf 설정 추가
[mysqld] 하단에 아래의 구문 추가
log-bin=mysql-bin
server-id = 1
mysqld 서비스 재시작
# service mysqld restart
3. M 의 mysql 에 S 에서 접속할 사용자 계정 생성
mysql> use mysql;
mysql> grant replication slave on *.* to 'repluser'@'192.168.1.20' identified by 'password';
4. S 의 my.ini 설정 추가
[mysqld] 하단에 아래의 구문 추가
log-bin=mysql-bin
server-id = 2
윈도우 서비스에서 mysql 재시작
5. S 에서 M 에 접속하는 정보 등록
my.ini 에 아래와 같이 구문을 추가 하고, 서비스 재시작 했더니 구동 실패가 발생했다.
[mysqld]
master-host=192.168.1.10
master-user=repluser
master-password=password
master-port=3306
mysql 에서 직접 M 의 접속 정보 입력을 진행 했다.
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.10',MASTER_USER='repluser',MASTER_PASSWORD='password', MASTER_PORT=3306, MASTER_CONNECT_RETRY=30;
mysql > start slave;
하고 나면, my.ini 에 해당 설정이 추가 되는게 아니라 C:\ProgramData\MySQL\MySQL Server 5.5\data\master.info 파일이 생성되어 저장 된다.
윈도우 환경이라서 다른 것일 수도 있다. (리눅스 끼리 연동 후 확인 필요)
6. M 의 mysql 에서 replication 작동 상태 확인
mysql> show master status;
7. S 의 mysql 에서 replication 작동 상태 확인
mysql> show slave status;
8. M 의 mysql 에 접속하여 테이블 생성 및 데이타 입력
mysql> use test;
mysql> create table gunnm ( no int(5), date int(10), text char(50), primary key(no) );
mysql> insert into gunnm values ('1', '20180321', 'replication test success, gunnm.tistory.com');
mysql> select * from gunnm;
9. S 의 mysql 에 접속하여 gunnm 테이블 조회
mysql> use test;
mysql> select * from gunnm;
10. 결과
MS-SQL 의 미러링을 구성하는 Slave 서버에서는 대부분의 기능이 제한적인데 반해, mysql 에서는 slave 이지만 데이타값 조회가 가능한 것을 확인했다.
그래서 slave 에서 데이타를 입력하면 master 에도 반영이 되는가를 테스트 해보았는데, 결과는
master 의 테이블에는 slave 에서 입력한 데이타값 저장이 되지 않았다.
결과적으로 Master 로 부터 데이타를 가져와서 저장을 하지만, 양방향 동기화가 되는 것은 아니다.
즉, Master 에서 Slave 로의 데이타 백업만 진행되는 것을 확인 했다.
구성 방식을 바꾸면 가능한지를 확인해 봐야겠다.
OS 가 상이하여도 (리눅스 + 윈도우), mysql 을 DBMS 로 사용 한다면 이중화 구성이 가능함을 확인했다.
출처: https://gunnm.tistory.com/146 [독까의 이야기]
'개발 > sql' 카테고리의 다른 글
[oracle]오라클 Replication 기능에 대해[펌] (0) | 2020.08.22 |
---|---|
[sql] MySQL Replication(미러링) [펌] (0) | 2020.08.22 |
[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 |
[sql] mysqldump 의 사용법 [펌] (0) | 2020.08.18 |