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

MySQL 5.6.12 線上遷移 Binlog 二進制日志目錄實戰:修改配置、重啟驗證、mysqlbinlog 解析

     編輯:MySQL 綜合教學

MySQL 5.6 線上遷移 Binlog 目錄完整操作

一、場景與現狀確認

# 當前配置
grep log-bin /usr/local/mysql/my.cnf
# log-bin = /home/data/mysql/binlog/mysql-bin.log

# 當前 binlog 文件
ls -lh /home/data/mysql/binlog/
# mysql-bin.000053  1.0G  12-10 20:44  (最新寫入)

二、驗證 Binlog 正常寫入

mysql> CREATE TABLE test.z2 SELECT 2 AS a;
# 觀察 mysql-bin.000053 大小變化,確認活躍

三、重啟觀察 Binlog 旋轉

service mysqld56 restart
ls -lh /home/data/mysql/binlog/
# 新生成 mysql-bin.000054 (399 bytes) — 旋轉正常

四、建立新目錄並授權

mkdir -p /home/data/mysql/binlog_new
chown -R mysql.mysql /home/data/mysql/binlog_new

五、修改配置文件指向新路徑

vim /usr/local/mysql/my.cnf
# log-bin = /home/data/mysql/binlog_new/mysql-bin

六、重啟服務生效

service mysqld56 restart

七、驗證新 Binlog 產生與寫入

ls -lh /home/data/mysql/binlog_new/
# mysql-bin.000001 (143B), mysql-bin.000002 (399B), mysql-bin.index (90B)

mysql> USE test;
mysql> CREATE TABLE z3 SELECT 3 AS a;
mysql> INSERT INTO z3 SELECT 4; INSERT INTO z3 SELECT 5;

ls -lh /home/data/mysql/binlog_new/
# mysql-bin.000002 從 399B 增長到 1085B — 新日志正常寫入

八、mysqlbinlog 解析驗證內容完整性

/usr/local/mysql/bin/mysqlbinlog --base64-output=DECODE-ROWS -v \
  /home/data/mysql/binlog_new/mysql-bin.000002

# 輸出包含:
# CREATE TABLE `test`.`z3` ...
# INSERT INTO `test`.`z3` VALUES (3), (4), (5)
# Xid = 60/63/64 COMMIT
輸出顯示完整的 DDL、DML、事務提交事件,證明遷移成功且 Binlog 內容完整可用於主備復制/時間點恢復。

九、關鍵注意事項

  1. **必須重啟 mysqld** 使 log-bin 新路徑生效(動態修改無效)
  2. **舊目錄保留**:舊 binlog 仍可能被 Slave 讀取,確認所有 Slave 已切換至新位置(或通過 CHANGE MASTER TO 指定新路徑)後再清理
  3. log-bin.index 會自動在新目錄生成,記錄新 binlog 列表
  4. 生產環境建議**低峰期操作**,並提前備份
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved