首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

使用 XtraBackup 實現 MySQL 主從復制搭建全流程實戰

     編輯:MySQL 綜合教學

使用 XtraBackup 實現 MySQL 主從復制搭建全流程實戰

環境信息

項目MasterSlave
OSSuSE 11 SP1 x86_64SuSE 11 SP1 x86_64
MySQL5.5.37 官方版5.5.37 官方版
HostnameNDMC74NDMC75
IP192.168.223.132192.168.223.133
Port33063306
server-id13233061333306
DataDir/data/mysql/mysql3306/data/data/mysql/mysql3306/data

前置檢查

# 確認 server-id 唯一
SHOW VARIABLES LIKE 'server_id';
# 確認 Binlog 開啟
SHOW VARIABLES LIKE 'log_bin';  -- ON

Master 全備(XtraBackup)

innobackupex --defaults-file=/etc/my.cnf /data/backup/innobackupex
# 產生備份目錄 2014-07-31_11-20-44
# 關鍵輸出:MySQL binlog position: filename 'mysql-bin.000009', position 376

備份數據一致性處理

innobackupex --apply-log /data/backup/innobackupex/2014-07-31_11-20-44
# 完成後輸出 completed OK!

創建復制賬號

CREATE USER 'repl'@'192.168.223.%' IDENTIFIED BY 'replpass';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'192.168.223.%';

傳輸備份至 Slave 並還原

# Master 上打包傳輸
scp -r /data/backup/innobackupex/2014-07-31_11-20-44 192.168.223.133:/data/backup

# Slave 停庫、替換數據目錄、授權
systemctl stop mysqld
mv /data/backup/2014-07-31_11-20-44 /data/mysql/mysql3306/data
chown -R mysql:mysql /data/mysql/mysql3306/data
systemctl start mysqld

Slave 配置復制並啟動

# 從備份目錄讀取 binlog 位點
cat /data/mysql/mysql3306/data/2014-07-31_11-20-44/xtrabackup_binlog_info
# mysql-bin.000009  376

CHANGE MASTER TO
  MASTER_HOST='192.168.223.132',
  MASTER_USER='repl',
  MASTER_PASSWORD='replpass',
  MASTER_PORT=3306,
  MASTER_LOG_FILE='mysql-bin.000009',
  MASTER_LOG_POS=376;

START SLAVE;
SHOW SLAVE STATUS\G;

驗證關鍵指標

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0

優勢總結

  • 物理熱備,不阻塞寫入(僅最後階段短暫全局讀鎖)
  • 備份速度快、壓縮率高、支持增量備份
  • 還原後直接包含 Binlog 位點,無需額外 mysqldump 導入
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved