MariaDB マスタースレーブレプリケーション設定ガイド

環境構成

サーバー名IPアドレス役割
db-master-0110.32.161.131マスター
db-slave-0110.32.161.132スレーブ

MariaDBのインストール

公式ドキュメントを参照してMariaDBをインストールしてください。

設定変更とサービス再起動

# マスターノード設定
# /etc/my.cnf を編集
server-id = 101
log_bin = master-bin
binlog_format = row

# スレーブノード設定
# /etc/my.cnf を編集  
server-id = 102
log_bin = slave-bin
read_only = ON
relay_log = relay-bin

# サービス再起動
systemctl restart mariadb

# レプリケーション用ユーザー作成(マスター)
CREATE USER 'sync_user'@'%' IDENTIFIED BY 'secure_pass123';
GRANT REPLICATION SLAVE ON *.* TO 'sync_user'@'%';
FLUSH PRIVILEGES;

データバックアップとリストア

# マスターでのバックアップ作成
mkdir -p /backup/mariadb
mariabackup --backup --user=root --target-dir=/backup/mariadb/full_backup

# バックアップファイルをスレーブに転送
rsync -av /backup/mariadb/full_backup/ 10.32.161.132:/backup/mariadb/

# スレーブでのデータ準備
systemctl stop mariadb
rm -rf /var/lib/mysql/*

# バックアップの準備とリストア
mariabackup --prepare --target-dir=/backup/mariadb/full_backup
mariabackup --copy-back --target-dir=/backup/mariadb/full_backup

# 権限設定とサービス起動
chown -R mysql:mysql /var/lib/mysql
systemctl start mariadb

レプリケーション設定

# バイナリログ位置の確認
# cat /backup/mariadb/full_backup/xtrabackup_binlog_info
master-bin.000003    1564

# スレーブでのレプリケーション設定
CHANGE MASTER TO
MASTER_HOST='10.32.161.131',
MASTER_USER='sync_user',
MASTER_PASSWORD='secure_pass123',
MASTER_LOG_FILE='master-bin.000003',
MASTER_LOG_POS=1564;

# レプリケーション開始
START SLAVE;

# レプリケーション状態確認
SHOW SLAVE STATUS\G

レプリケーションフィルタリング

# スレーブ設定ファイル
# /etc/my.cnf
[mysqld]
replicate_ignore_table=app_db.temp_data,app_db.log_entries
replicate_wild_ignore_table=test%.%

タグ: MariaDB レプリケーション マスタースレーブ データ同期 データベースクラスタ

7月7日 19:07 投稿