㈠ 二進位日誌的重要性
如果有某個時間點的資料備份和所有從那時以後的二進位日誌
就可以重放自從上次全備以來的二進位日誌並"前滾"所有的變更
㈡ 二進位日誌配置的最佳實務
對於 InnoDB 如果僅是啟用二進位日誌是不夠、還需要其他措施來保證安全:
推薦配置如下:
● sync_binlog = 1
表示採用同步寫磁碟的方式來寫二進位日誌、這時寫操作便繞開了OS的緩衝
該預設值為0
● innodb_support_xa = 1
確保二進位日誌和InnoDB 資料檔案的同步
㈢ 影響二進位記錄備份策略的因素
如:
㈣ 二進位日誌的格式
二進位日誌的粒度是事件、每個事件都有固定的事件頭、含:When、What、Who等
因其格式為二進位不可看、我們可藉助 mysqlbinlog 查看其內容
下面是一個例子:
[mysql@even data]$ mysqlbinlog -vv mysql-bin.000023
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#130515 12:35:29 server id 2 end_log_pos 107 Start: binlog v 4, server v 5.5.16-log created 130515 12:35:29 at startup
# Warning: this binlog is either in use or was not closed properly.
ROLLBACK/*!*/;
BINLOG '
kRCTUQ8CAAAAZwAAAGsAAAABAAQANS41LjE2LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACREJNREzgNAAgAEgAEBAQEEgAAVAAEGggAAAAICAgCAA==
'/*!*/;
# at 107
#130515 12:37:47 server id 2 end_log_pos 255 Query thread_id=3 exec_time=0 error_code=0
SET TIMESTAMP=1368592667/*!*/;
SET @@session.pseudo_thread_id=3/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=0/*!*/;
SET @@session.auto_increment_increment=2, @@session.auto_increment_offset=2/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
alter database db_rocky character set = utf8mb4 COLLATE = utf8mb4_unicode_ci
/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;