master ip 주소 : 192.168.56.50
slave ip 주소: 192.168.56.51
1) Mysql 설치
- Mysql 설치되어있는지 확인
rpm -qa | grep ^mysql-server
- Mysql 설치
yum -y install mysql-server
- Mysql 시작
service mysqld start
- 부팅 시 자동시작 설정
chkconfig mysqld on
2) /etc/my.cnf 수정
먼저 master 서버의 /etc/my.cnf
[mysqld]
bind-address=192.168.56.70 server-id=1 binlog-do-db=databasename relay-log=/var/lib/mysql/mysql-relay-bin relay-log-index=/var/lib/mysql/mysql-relay-bin.index log-error=/var/lib/mysql/mysql.err master-info-file=/var/lib/mysql/mysql-master.info relay-log-info-file=/var/lib/mysql/mysql-relay-log.info log-bin=/var/lib/mysql/mysql-bin datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid |
slave 서버의 /etc/my.cnf
[mysqld] server-id=2 master-host=192.168.56.70 master-connect-retry=60 master-user=replicauser master-password=replicapass replicate-do-db=databasename relay-log = /var/lib/mysql/mysql-relay-bin relay-log-index = /var/lib/mysql/mysql-relay-bin.index log-error = /var/lib/mysql/mysql.err master-info-file = /var/lib/mysql/mysql-master.info relay-log-info-file = /var/lib/mysql/mysql-relay-log.info log-bin = /var/lib/mysql/mysql-bin datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid |
3) Mysql 재시작: service mysqld restart
4) Mysql 접속: mysql -uroot
5) 사용자 생성 & 권한 부여 & 권한 플러시 & 복제할 DB 만들기 & 데이터 베이스 잠그기
GRANT REPLICATION SLAVE ON *.* TO 'replicauser'@'192.168.56.71' IDENTIFIED BY 'replicapass';
FLUSH PRIVILEGES;
FLUSH TABLES WITH READ LOCK;
* 복제 테스트할 database와 table 만들기
CREATE DATABASE databasename; =>database 하나 만듬
connect databasename => 만든 database로 연결함.
create table aaa (aaa int); => 테이블 하나 만듬
* 만들어진 database와 table 확인하는 방법
show databases;
connect databasename;
show tables;
6) 슬레이브로 보낼 databasename 덤프뜨기
mysqldump -u root -p databasename > databasename.sql
7) 슬레이브로 데이터베이스 전송
8) master와 slave 연결
먼저 master에 가서 master 상태를 확인합니다.
show master status\G
File과 Position을 기억합니다.
slave 서버로 옵니다.
Stop slave;
CHANGE MASTER TO MASTER_HOST='192.168.56.50',
MASTER_USER='replicauser',
MASTER_PASSWORD='replicapass',
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=203;
start slave;
show slave status\G;
l 복제 실패 체크리스트
운영체제가 linux 인가? |
O 리눅스임 |
마스터에는 mysql 전역 변수 “read-only=1”을 설정했는가? (단 slave가 하나뿐이라면 신경 안써도 된다.) |
슬레이브가 하나뿐임. |
다중 마스터 복제가 지원되는 0.52 버전 이상인가? |
O 0.53임 |
Mysql 버전 5.0 이상인가? |
O 5.1.73 임 mysql --version |
Mysqlbinlog가 있는가? (Mysql 5.1 이상에서는 mysqlbinlog를 사용한다.) |
O 사용하고있음 mysqlbinlog --version |
slave에서 log-bin이 활성화 되어있는가? (현재의 슬레이브가 log-bin을 설정하지 않는다면, 새로운 마스터가 될 수 없습니다) |
O |
바이너리로그 및 릴레이 로그 필터링 규칙이 모두 (slave, master)동일한가? |
O |
'DATABASE > DB HA' 카테고리의 다른 글
RAC Configuration - 3 (ASM Device Settings, RAC2 Node Replication) (0) | 2019.07.24 |
---|---|
RAC Configuration - 2 (Shared Disk Settings) (0) | 2019.07.17 |
RAC Configuration - 1 (oracle linux download + guest addtion) (0) | 2019.07.15 |
MHA failover + error (0) | 2019.03.25 |
MHA construct (0) | 2019.03.21 |
댓글