간마늘작업소

[MariaDB] 이중화 구성 (DRBD / Pacemaker 이용) – 02.MariaDB 디렉토리 변경 본문

Linux/32.MySQL, MariaDB

[MariaDB] 이중화 구성 (DRBD / Pacemaker 이용) – 02.MariaDB 디렉토리 변경

간마늘 2022. 8. 25. 11:24
[MariaDB] 이중화 구성 (DRBD / Pacemaker 이용)
01.DRBD 구성 02.MariaDB 디렉토리 변경 03.Pacemaker 이중화 설정

0.개요

  1. MariaDB의 기본 디렉토리를 DRBD 공유 볼륨으로 변경.
  2. 안내 사항
    • OS 방화벽(Firewalld, iptables)과 SELinux는 비활성화 상태로 설정.
    • 하단 명령어 중 적색 글씨는 DB Node 1에만 적용.
    • 하단 명령어 중 청색 글씨는 DB Node 2에만 적용.

 

1.MariaDB 기본 디렉토리 위치 확인

systemctl start mariadb
systemctl status mariadb
  • MariaDB 시작.
echo "select @@datadir;" | mysql -u root -p
  • MariaDB 기본 디렉토리 확인.
    • 해당 명령어는 MariaDB Client에 접속 후 SQL을 던지게 되어있음.
    • MariaDB Client 접속 후 SQL 문을 입력해도 동일한 결과를 가져올 수 있음.

systemctl stop mariadb
  • MariaDB 종료.

 

2.MariaDB 설정 변경

cd /etc/my.cnf.d/
cp -rp server.cnf server.cnf_bak
vi server.cnf
[mysqld]
datadir=/data/mariadb
socket=/data/mariadb/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/data/mariadb/mariadb.pid

lc-messages             = ko_KR

character-set-client-handshake=FALSE
init_connect="SET collation_connection = utf8mb4_general_ci"
init_connect="SET NAMES utf8mb4"
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci

binlog_format   = MIXED
  • 기존 MariaDB 설정 백업
  • 설정 수정
    • datadir : MariaDB 기본 디렉토리.
    • socket : MariaDB 실행 소켓 위치.
    • log-error : 에러 로그 파일 기록 위치. (선택사항)
    • pid-file : MariaDB PID 파일 생성 위치.
    • 이외의 추가 설정은 문자열 설정으로 설정하는 것을 권고함.

  

bind-address=0.0.0.0
  • 외부 접속 허용.
    • VIP로 접근함에 따라 외부 접속을 허용해야함.

  • 수정 설정 저장.
cp -rp clients.cnf clients.cnf_bak
vi clients.cnf
[mysql]
socket=/data/mariadb/mysql.sock

  • Clients 설정에서 Socket 경로 추가.
    • 기본 디렉토리 변경을 하더라도 MariaDB Clients에서는 기본 디렉토리 안에 있는 MariaDB 실행 소켓을 찾기 때문에 Clients 설정에서 MariaDB 실행 소켓 위치를 지정해야함.
  • 수정 설정 저장.

 

3.MariaDB 데이터 이동

drbdadm status resource0
df -hT /data

  • DRBD Master 및 DRBD 공유 볼륨 마운트 확인.
    • 필자는 DB Node 1DRBD Master로 확인됨.
rsync -av /var/lib/mysql /data
mv /data/mysql /data/mariadb
chown -R mysql.mysql /data/mariadb
  • 처음에 확인한 MariaDB 기본 디렉토리를 설정 수정할 때 변경한 디렉토리로 내용을 복사.
    • rsync 명령어가 아닌 기존 cp 명령어를 사용해도 크게 상관 없음.
      • 명령어 : cp -rp /var/lib/mysql /data/mariadb

 

4.MariaDB 작동 확인

systemctl start mariadb
systemctl status mariadb
  • MariaDB 시작.
echo "select @@datadir;" | mysql -u root -p
  • MariaDB 기본 디렉토리 확인.
    • 변경된 디렉토리로 표시되는지 확인.

systemctl stop mariadb
cd ~/
umount /data
drbdadm secondary resource0
drbdadm status resource0
  • MariaDB 종료.
  • DRBD 수동 Failover 설정.
    • DRBD 공유 볼륨 언마운트.
    • DB Node 1을 DRBD Standby로 지정.
    • 지정 후 상태 확인.
drbdadm primary resource0
drbdadm status resource0
mount /dev/drbd0 /data
  • DRBD 수동 Failover 진행.
    • DB Node 2를 DRBD Master로 지정.
    • 지정 후 상태 확인.
    • DRBD 공유 볼륨을 공유 디렉토리에 마운트.
systemctl start mariadb
systemctl status mariadb
  • MariaDB 시작.
echo "select @@datadir;" | mysql -u root -p
  • MariaDB 기본 디렉토리 확인.
    • 변경된 디렉토리로 표시되는지 확인.
systemctl stop mariadb
cd ~/
umount /data
drbdadm secondary resource0
drbdadm status resource0
  • MariaDB 종료.
  • DRBD 수동 Failover 설정.
    • DRBD 공유 볼륨 언마운트.
    • DB Node 2를 DRBD Standby로 지정.
    • 지정 후 상태 확인.
drbdadm primary resource0
drbdadm status resource0
mount /dev/drbd0 /data
  • DRBD 수동 Failover 진행.
    • DB Node 1을 DRBD Master로 지정.
    • 지정 후 상태 확인.
    • DRBD 공유 볼륨을 공유 디렉토리에 마운트.
[MariaDB] 이중화 구성 (DRBD / Pacemaker 이용)
01.DRBD 구성 02.MariaDB 디렉토리 변경 03.Pacemaker 이중화 설정
Comments