這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
database:mysql:binlog [2014/05/31 07:04] ali88 [Binlog 啟動] |
database:mysql:binlog [2014/05/31 08:24] (目前版本) ali88 [刪除Bin-log] |
||
---|---|---|---|
行 1: | 行 1: | ||
======Binary Log二進制日誌====== | ======Binary Log二進制日誌====== | ||
+ | Binary Log主要是儲存SQL語法的DML和DDL,INSERT INTO,UPDATE,DELETE,REPLACE,CREATE,ALTER和DROP等。 | ||
+ | Binary Log 主要應用在 | ||
+ | * Replication-資料庫複寫 | ||
+ | * Data restore資料庫恢復(根據時間點恢復) | ||
======Binlog 啟動====== | ======Binlog 啟動====== | ||
預設 Mysql服務是每有啟動Binlog,需要到/etc/my.cnf(針對RPM安裝的)<code>#vim /etc/my.cnf</code><code mysql 1> | 預設 Mysql服務是每有啟動Binlog,需要到/etc/my.cnf(針對RPM安裝的)<code>#vim /etc/my.cnf</code><code mysql 1> | ||
行 5: | 行 9: | ||
~略~ | ~略~ | ||
binlog-do-db=dbName #指定哪一個資料庫,此參數可略,預設為全部資料庫 | binlog-do-db=dbName #指定哪一個資料庫,此參數可略,預設為全部資料庫 | ||
- | log-bin = /var/lib/mysql/mysql-bin.* #指定bin-log檔案名稱及路徑 | + | log-bin = /var/lib/mysql/mysql-bin.* #指定bin-log檔案名稱或是用預設的base_name(此值就是正在運作服務器主機名稱)及路徑 |
- | expire-logs-days=5 #指定bin-log要保留幾天 | + | expire-logs-days=5 #指定bin-log要保留幾天。預設是0,表Binary log不會被移除 |
max_binlog_size=104857600 #指定單一bin-log檔案大小 | max_binlog_size=104857600 #指定單一bin-log檔案大小 | ||
[mysqld_safe] | [mysqld_safe] | ||
行 15: | 行 19: | ||
======列出Bin Log====== | ======列出Bin Log====== | ||
<code 1>mysql> show binary logs;</code> | <code 1>mysql> show binary logs;</code> | ||
+ | 或是列出服務器正在讀寫哪一個Binary Log及哪一個byte offset(Position)<code>mysql>show master status;</code><code>+------------------+----------+--------------+------------------+ | ||
+ | | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | | ||
+ | +------------------+----------+--------------+------------------+ | ||
+ | | mysql-bin.000012 | 106 | | | | ||
+ | +------------------+----------+--------------+------------------+</code> | ||
+ | 另外,利用系統工具**stat**可以看到binary log 文件大小,也就是byte offset(Position)<code>#stat /var/lib/mysql/mysql-bin.000012</code><code>File: ‘/var/lib/mysql/mysql-bin.000012’ | ||
+ | Size: 106 Blocks: 8 IO Block: 4096 普通檔案 | ||
+ | Device: fd00h/64768d Inode: 158758 Links: 1 | ||
+ | Access: (0660/-rw-rw----) Uid: ( 498/ mysql) Gid: ( 498/ mysql)~ 略</code> | ||
======刪除Bin-log====== | ======刪除Bin-log====== | ||
刪除全部binlog | 刪除全部binlog | ||
<code mysql>mysql>RESET MASTER;</code> | <code mysql>mysql>RESET MASTER;</code> | ||
- | 指定刪除哪一個binlog之前 | + | 指定刪除哪一個binlog之前(不包含自己本身) |
<code mysql>mysql> purge binary logs to 'mysql-bin.000003';</code> | <code mysql>mysql> purge binary logs to 'mysql-bin.000003';</code> | ||
+ | 以上的手動刪除,是利用MySQL 提供的SQL語法來刪除Binary Log。**若是用system 工具刪除 rm -f /var/lib/mysql/mysql-bin.*是不 | ||
+ | 建議的做法,因為會引發一些不必要的warning 或是Error 等訊息** | ||
+ | |||
+ | 若是用system 工具刪除 | ||
+ | 例如<code>mysql> show binary logs;</code><code>+------------------+-----------+ | ||
+ | | Log_name | File_size | | ||
+ | +------------------+-----------+ | ||
+ | | mysql-bin.000001 | 149 | | ||
+ | | mysql-bin.000002 | 149 | | ||
+ | | mysql-bin.000003 | 149 | | ||
+ | | mysql-bin.000004 | 149 | | ||
+ | | mysql-bin.000005 | 106 | | ||
+ | +------------------+-----------+</code>利用system工具<code>#rm -rf /var/lib/mysql/mysql-bin.000001</code>再用mysql工具觀察<code>mysql>show binary logs;</code><code>------------------+-----------+ | ||
+ | | Log_name | File_size | | ||
+ | +------------------+-----------+ | ||
+ | | mysql-bin.000001 | 0 | | ||
+ | | mysql-bin.000002 | 149 | | ||
+ | | mysql-bin.000003 | 149 | | ||
+ | | mysql-bin.000004 | 149 | | ||
+ | | mysql-bin.000005 | 106 | | ||
+ | +------------------+-----------+</code>若再用mysql的**purge**<code>mysql> purge binary logs to 'mysql-bin.000005'; | ||
+ | Query OK, 0 rows affected, 1 warning (0.03 sec)</code>看warning 訊息<code>mysql> show warnings;</code><code>+---------+------+---------------------------------------------------+ | ||
+ | | Level | Code | Message | | ||
+ | +---------+------+---------------------------------------------------+ | ||
+ | | Warning | 1612 | Being purged log ./mysql-bin.000001 was not found | | ||
+ | +---------+------+---------------------------------------------------+</code> | ||
======參考資料====== | ======參考資料====== | ||
- [[http://blog.longwin.com.tw/2009/04/mysql-binlog-recovery-range-by-date-time-2009/|MySQL 使用 binary log 回覆 某段時間區間 的資料]] | - [[http://blog.longwin.com.tw/2009/04/mysql-binlog-recovery-range-by-date-time-2009/|MySQL 使用 binary log 回覆 某段時間區間 的資料]] |