MySQL增量備份是指只備份數(shù)據(jù)庫中發(fā)生變化的數(shù)據(jù),而不是對整個數(shù)據(jù)庫進(jìn)行備份。這種備份方式可以大大減少備份的時間和存儲的空間。
在進(jìn)行增量備份之前,需要進(jìn)行一次全量備份,然后在全量備份的基礎(chǔ)上,通過記錄所有新增、修改和刪除的數(shù)據(jù),只備份這些數(shù)據(jù)的差異部分。這些差異數(shù)據(jù)通常以二進(jìn)制日志的形式存在,也稱為binlog。備份的時候需要備份從全量備份到當(dāng)前增量備份所有的binlog。
# 進(jìn)入mysql客戶端 mysql -u root -p # 開啟binlog, 以及設(shè)置binlog名稱和保存位置 SET GLOBAL log_bin = 'mysql-bin'; SET GLOBAL binlog_format = 'ROW'; SET GLOBAL binlog_row_image = 'FULL'; SET GLOBAL binlog_cache_size = 32768; SET GLOBAL binlog_stmt_cache_size = 32768; SET GLOBAL binlog_row_metadata = 1; SET GLOBAL binlog_rows_query_log_events = 1; SET GLOBAL max_binlog_size = 1073741824; SET GLOBAL binlog_expire_logs_seconds = 86400; SET GLOBAL binlog_group_commit_sync_delay = 100; SET GLOBAL binlog_group_commit_interval = 200; SET GLOBAL binlog_group_commit_size = 1024; # 查看binlog名稱和位置 SHOW BINARY LOGS; # 查看指定binlog的詳細(xì)信息 mysqlbinlog mysql-bin.000002
使用增量備份的方式還可以提高恢復(fù)時的速度和效率,因為只需要恢復(fù)最新的增量備份和所有相關(guān)的binlog就可以了。但需要注意的是,增量備份需要定期進(jìn)行,否則如果需要恢復(fù)時,最近一次增量備份已經(jīng)過時了,就要重新進(jìn)行全量備份。