mysql 二進位制日誌(增量備份)

2021-06-23 06:45:09 字數 2711 閱讀 7337

環境: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語句。優...