Binlog

6、BinLog

一、Statement level(基於SQL語句的複製,默認)mysql

每一條會修改數據的sql語句會記錄到binlog中。sql

優勢:不須要記錄每一條SQL語句與每行的數據變化,這樣子binlog的日誌也會比較少,減小了磁盤IO,提升性能。函數

缺點:在某些狀況下會致使master-slave中的數據不一致(如sleep()函數, last_insert_id(),以及user-defined functions(udf)等會出現問題)性能

二、Row level(基於行的複製)spa

不記錄每一條SQL語句的上下文信息,僅需記錄哪條數據被修改了,修改爲了什麼樣子了。日誌

優勢:不會出現某些特定狀況下的存儲過程、或function、或trigger的調用和觸 發沒法被正確複製的問題。io

缺點:會產生大量的日誌,尤爲是alter table的時候會讓日誌暴漲。table

不管是增量備份仍是主從複製,都是須要開啓mysql-binlog日誌,最好跟數據目錄設置到不一樣的磁盤分區,能夠下降io等待,提高性能;而且在磁盤故障的時候能夠利用mysql-binlog恢復數據。ast

相關文章
相關標籤/搜索