環境:centos6.4 32位
msyql5.1
二進位制日誌:記錄dml 語句,建立刪除語句,不記錄select 語句, 常用作增量備份。
開啟二進位制日誌
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#慢查詢
long_query_time=1
log-slow-queries=/var/run/mysqld/mysqld-slow.log
#通用查詢
log=/var/lib/mysql/mysql.log
#二進位制日誌
log-bin=/var/lib/mysql/mysqlbin.log
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
重啟/etc/init.d/mysqld restart
會自動生成2個檔案
mysqlbin.000001#日誌檔案,檔案到大一定大小後會自動產生新檔案
mysqlbin.index#索引檔案
檢視二進位制日誌
/usr/bin/msyqlbinlog mysqlbin.000001
/*!*/;
# at 2139#位置
#140814 23:39:35 server id 1 end_log_pos 2225 query thread_id=2 exec_time=267 error_code=0
set timestamp=1408073975/*!*/;#時間
create table a (id int)#操作
/*!*/;
# at 2225
#140814 23:39:51 server id 1 end_log_pos 2311 query thread_id=2 exec_time=251 error_code=0
set timestamp=1408073991/*!*/;
insert into a set id =1
按位置恢復資料(表必須存在的情況下才可以恢復)
/usr/bin/mysqlbinlog --stop-position="2225" mysqlbin.000001 | mysql -uroot -p #從頭恢復到2225位置
/usr/bin/mysqlbinlog --start-position="2139" mysqlbin.000001 | mysql -uroot -p #從2139位置恢復到最後
/usr/bin/mysqlbinlog --start-position="2139" --stop-position="2225" mysqlbin.000001 | mysql -uroot -p #從位置2139 恢復到 2225
遺留問題:
決定日誌檔案**的大小限制是多少,還是按時間**?
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#慢查詢
long_query_time=1
log-slow-queries=/var/run/mysqld/mysqld-slow.log
#通用查詢
log=/var/lib/mysql/mysql.log
#二進位制日誌
log-bin=/var/lib/mysql/mysqlbin.log
expire_logs_days=1 #二進位制日誌保留時間,比如取值為1,就表示今天是19號就好留18-19號這2天的檔案,但必須滿足max_binlog_size,才會起作用。
max_binlog_size=100000 #限制二進位制日誌檔案的大小,當檔案大小超過這個數值,就會自動產生乙個新的檔案
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
當日期到了20號,18號和19號的日誌否沒有達到 max_binlog_size 的值,18號的日誌檔案就不會被刪除。
使用shell命令 mysqladmin flush-logs 可以在不滿足max_binlog_size 的情況下,強行刪除18號日誌並新建乙個日誌檔案
如果 mysqlbin.000001 這個檔案後面的序號到了極限,可以 進入mysql 客戶端使用 reset master 命令清除索引,刪除所有二進位制日誌,重新生成mysqlbin.000001
mysql二進位制增量備份
mysqlbinlog u root p v dbbackup db bin log.000002 v dbbackup db bin log.000002.sql在 mysql 配置檔案,my.ini 或 my.cnf 中加入 log bin 配置。log bin v dbbackup db bi...
mysql 二進位制日誌
如果mysql 伺服器啟用了二進位制日誌,你可以使用mysqlbinlog工具來恢復從指定的時間點開始 例如,從你最後一次備份 直到現在或另乙個指定的時間點的資料。mysqlbinlog 用於處理二進位制日誌檔案的實用工具 要想從二進位制日誌恢復資料,你需要知道當前二進位制日誌檔案的路徑和檔名。一般...
mysql 二進位制日誌
1.日誌型別 二進位制日誌記錄了所有對mysql資料庫的修改事件,包括增刪改事件和對錶結構的修改事件。2.配置使用二進位制日誌 在my.ini 配置 log bin mysql bin 3.二進位制日誌格式 基於段的日誌格式 binlog format statement 記錄了操作的sql語句。優...