mysql

maria DB 레플리케이션(클러스터링) 서버 구축

에스크리토 2019. 5. 30. 16:34
반응형

maria DB는 무료 디비이지만 레플리케이션 서버를 지원한다. 레플리케이션 서버란 복제서버를 말한다. A라는 서버에 데이타가 입력되면 자동으로 슬레이브 서버에 등록되는것을 말한다...보통은 마스터서버에 insert를 하고 슬레이브에서 select를 하는 방식으로 많이 사용하고 아무데나 넣고 아무데서나 select하는것도 가능하다

 

서버가 최소 2대는 있어야한다....마스터랑 슬레이브로...

 

마스터 설정부터 알아보자...

 

마스터 서버에 데이타베이스를 만들고 테이블을 만들어서 데이터를 입력해보자...

 

mysql에 root로 로그인한다.

>create database blockchain;

>create user 'username'@'localhost' identified by 'userpassword';

>grant all privileges on blockchain.* to 'username'@'localhost' identified by 'userpassword';

>flush privileges;

 

mysql 나갔다고 다시 username으로 접속한다.

>use blockchain;

>CREATE TABLE `area` (
  `code` varchar(30) NOT NULL,
  `region` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`code`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

>insert into area values ('1','2');

>select * from area;

데이타가 보이면 성공

다시 나온다.

 

#mysqldump -uroot -p패스워드 --all-databases > all.sql

불러오는 중입니다...

백업한다..

 

백업한 파일을 슬레이브 서버에 업로드한다.

 

슬레이브 서버에 접속한다.

 

# mysql -uroot -p패스워드 < all.sql

 

업로그한 백업파일을 이용해 복구한다.

 

다시 마스터 서버로 접속한다. mysql 마스터 설정을 한다.

 

# vi /etc/my.cnf

 

마리아 설정파일은 보통 /etc/my.cnf다 .. 혹시 저위치에 없다면

 

#find / -name my.cnf

 

이렇게 찾으면 된다.

 

위 파일을 열어서 아래 문구를 입력해준다..

 

[mariadb]
log-bin
server_id=1
log-basename=master1

 

[mariadb]라는 부분이 있으면 밑에 3줄만 추가해주면 된다...없으면 다 추가해라...

 

저장하고 나온다. ..  마리아디비 재시작한다

 

# systemctl restart mariadb

 

마리아디비 root로 접속한다...

 

>CREATE USER 'replication_user'@'%' IDENTIFIED BY '패스워드';

>GRANT REPLICATION SLAVE ON *.* TO replication_user;

> SHOW MASTER STATUS;
+--------------------+----------+--------------+------------------+
| File               | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| master1-bin.000001 |     1279 |              |                  |
+--------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

 

요거 기억해둔다...

 

------------ 슬레이브 설정 -------------------

 

# vi /etc/my.cnf

[mariadb]
server-id=11
log-bin
log-basename=master1
report-host=slave1

 

위와같이 입력한다...슬레이브서버를 추가하면 server-d의 값과 report-host의 값만 바꿔주면 된다..

다시시작한다.

 

#systemctl restart mariadb

 

마리아 root로 접속한다..

 

>CHANGE MASTER TO
     MASTER_HOST='198.162.0.1',
     MASTER_USER='replication_user',
     MASTER_PASSWORD='userpassword',
     MASTER_PORT=3306,
     MASTER_LOG_FILE='master1-bin.000001',
     MASTER_LOG_POS=1279,
     MASTER_CONNECT_RETRY=10;

 

마스터의 ip 주소 레플리케이션 user 명 show master status의 position 값등을 넣어준다.

 

>START SLAVE;

 

이렇게 해주면 된다...

 

>select * from area;

 

이렇게 값을 확인해본다...

 

마스터에 가서 insert 해보고 슬레이브에서 select 해보면 같은 값이 나온다...

 

안나오면 잘못한거니 다시해보자...

반응형