日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql实时增量备份

發布時間:2023/12/31 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql实时增量备份 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

啟用binlog日志實現對數據的增量備份:

日志存儲位置: /var/lib/mysql/

日志名稱:主機名-bin.000001 或mysqld-bin.000001

binlog日志概述:二進制日志,記錄所有更改數據的操作;默認超過500M自動生成新的日志;

修改主配置文件啟用binlog日志

vim /etc/my.cnf

[mysqld]

log-bin ?(或指定日志名log-bin=x.000001或者指定目錄和文件名log-bin=/logdir/X.000001)

max-binlog-size=200m ? (設置日志最大200m,默認為500m)

:wq

重啟mysql服務,/var/lib/mysql/下會多出一個日志文件1個日志索引文件:

x-bin.000001 ? ?mysql的binlog日志文件

x-bin.index ? ? 記錄當前已有的binlog日志名

mysqlbinlog是mysql日志查看專屬命令

查看binlog日志文件內容: mysqlbinlog ?日志文件名

binlog日志記錄sql語句的方式:

1 根據字符偏移量(pos)

起始字符偏移量 ?--start-positon=數字

結束字符偏移量 ?--stop-position=數字

2 根據時間點(time)

起始時間 ? --start-datetime="yyyy-mm-dd hh:mm:ss"

結束時間 ? --stop-datetime="yyyy-mm-dd hh:mm:ss"

執行binlog日志里的sql語句恢復數據:

mysqlbinlog 選項 ?x-bin.000001 | mysql -uroot -p123456 [數據庫名]

手動生成新的binlog日志文件方式:

1:重啟mysql服務 ? (很少用)

2:mysql> flush logs;

3:?[root@A mysql]# mysql -uroot -p123456 -e "flush logs" ?(引號里可以執行任意sql語句)

4: mysqldump -uroot -p123456 --flush-logs ?數據名 > xxx.sql

清理binlog日志

刪除已有binlog日志

1 刪除指定版本的binlog日志

(1)方式一:mysql> purge master logs to "x-bin.000004"; ? ?(刪除000004之前的日志,x-bin.index同步更新)

(2)方式二: rm -rf x-bin.000001 (x-bin.index不同步更新)

2 刪除所有binlog日志,重建日志; ?mysql> reset master;

編寫腳本allbak.sh每周一對數據做完全備份:00 18 * * 1 /shell/allbak.sh

vim allbak.sh

?#!/bin/bash

?bakdir=/datadir

?dbname=haha

?day=$(date +%F)

?if [ ! -e $bakdir ]

?then mkdir $bakdir

?fi

?mysqldump -uroot -p123456 --flush-logs $dbname > $bakdir/allbak-$day.sql

編寫腳本newbak.sh每周二~日做增量備份(只備份新生成的和沒備份過的binlog日志且正在使用的不備份):不備份最后一個binlog日志 ? 00 18 * * 2-7 /shell/newbak.sh

vim newbak.sh

#!/bin/bash

if [ ! -e /backdir ];then?

?mkdir /backdir

fi

cd ?/var/lib/mysql

for file in `sed '$d' /var/lib/mysql/A-bin.index`

do name=`echo $file | awk -F "/" '{print $2}'`

if [ ! -e /backdir/$name ];then

?cp $name /backdir

fi

done



轉載于:https://blog.51cto.com/liangzai818/1740079

總結

以上是生活随笔為你收集整理的mysql实时增量备份的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。