mysql全量和增量備份指令碼

2021-08-07 13:57:34 字數 4714 閱讀 3935

全量:1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

[root@master leo]# cat dbfullbak.sh

#!/bin/bash

#use mysqldump to fully backup mysql data

bakdir=/root/leo/full

logfile=/root/leo/full/bak.log

date=`date+%y%m%d`

begin=`date+"%y年%m月%d日 %h:%m:%s"`

cd$bakdir

dumpfile=$date.sql

gzdumpfile=$date.sql.tgz

mysqldump -uroot -p123456 --all-databases --lock-all-tables --routines --triggers --events --master-data=2 --flush-logs > $dumpfile

tarzcvf $gzdumpfile $dumpfile

rm$dumpfile

last=`date+"%y年%m月%d日 %h:%m:%s"`

echo開始:$begin 結束:$last $gzdumpfile succ >> $logfile

引數注釋:

1

2

3

4

5

6

7

--all-databases#備份所有庫

--lock-all-tables#為所有表加讀鎖

--routinge#儲存過程與函式

--triggers#觸發器

--events#記錄事件

--master-data=2#在備份檔案中記錄當前二進位制日誌的位置,並且為注釋的,1是不注釋掉在主從複製中才有意義

--flush-logs#日誌滾動一次

結果如下:

1

2

3

4

5

6

[root@master full]# ls

20140728.sql.tgz  bak.log

[root@master full]# cat bak.log

開始:2023年07月28日 19:02:59 結束:2023年07月28日 19:02:59 20140728.sql.tgz succ

開始:2023年07月28日 19:12:01 結束:2023年07月28日 19:12:01 20140728.sql.tgz succ

[root@master full]#

增量備份:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

[root@master leo]# cat dbdailybak.sh

#!/bin/bash

bakdir=/root/leo/binlog/

bindir=/var/lib/mysql

logfile=/root/leo/binlog/bak.log

binfile=/var/lib/mysql/mysql-bin.index

mysqladmin -uroot -p123456 flush-logs

counter=`wc-l $binfile|awk''`

nextnum=0

forfilein`cat$binfile`

do

base=`basename$file`

nextnum=`expr$nextnum + 1`

if[ $nextnum -eq$counter ]

then

echo$base skip! >> $logfile

else

dest=$bakdir/$base

if(test-e $dest)

then

echo$base exist! >> $logfile

else

cp$bindir/$base $bakdir/

echo$base copying >> $logfile

fi

fi

done

echo`date+"%y年%m月%d日 %h:%m:%s"` $next bakup succ~ >> $logfile

MYSQL增量備份和全量備份指令碼

首先配置下mysql增量備份 server id 1 log bin var log mysql mysql bin.log binlog ignore db sys,mysql,information schema,performance schema 設定日誌格式 binlog format m...

mysql全量 增量備份指令碼

本篇文章主要講如何使用shell實現mysql全量,增量備份。增量備份在周一 週六凌晨3點,會複製mysql bin.00000 到指定目錄 而全量備份則使用mysqldump將所有的資料庫匯出,每週日凌晨3點執,並會刪除上週留下的mysq bin.00000 然後對mysql的備份操作會保留在ba...

Xtrabackup全量備份 增量備份指令碼

一 全量備份指令碼 1.全量備份指令碼 1 2 3 4 5 6 7 8 9 10 11 12 13 bin bash description xtrabackup complete author created by michael 2017 08 07 v0.1 user root passwd ...