Home >Database >Mysql Tutorial >MySQL异地增量备份

MySQL异地增量备份

WBOY
WBOYOriginal
2016-06-07 17:59:111315browse

MySQL异地增量备份: 1.#!/bin/sh 2. 3.#MySQL Info 4.sqluser=root 5.sqlpsw=root 6. 7./usr/bin/mysqladmin -u$sqluser -p$sqlpsw flush-logs --default-character-set=GBK 8. 9.DATADIR=/data/mysql 10.BAKDIR=/home/backup/mysql/daily 11.TEMPDIR=/home/b

MySQL异地增量备份:

1.#!/bin/sh 
2.
3.#MySQL Info  
4.sqluser=root  
5.sqlpsw=root  
6. 
7./usr/bin/mysqladmin -u$sqluser -p$sqlpsw flush-logs --default-character-set=GBK   8. 
9.DATADIR=/data/mysql  
10.BAKDIR=/home/backup/mysql/daily  
11.TEMPDIR=/home/backup/mysql/temp  
12. 
13.BINLOGNAME='mysql-bin'  14.cd $DATADIR  
15.FILELIST=$(cat $BINLOGNAME.index | cut -c3-)  16.
17.## COUNTER number  
18.COUNTER=0  
19.for file in $FILELIST   20.do  21.COUNTER=$(expr $COUNTER + 1)  
22.done  
23. 
24.NextNum=0  
25.for file in $FILELIST   26.do  27.NextNum=$(expr $NextNum + 1)  
28.if test "$NextNum" = "$COUNTER"  29.then  
30.echo "skip lastest"  31.else  32.dest=$BAKDIR/$file  
33.if test -e $dest   34.then  
35.echo "skip exist $dest"  36.else  37.cp $file $TEMPDIR  
38.fi  
39.fi  
40.done  
41.echo "backup mysql binlog ok"  42. 
43.sleep 2s  
44. 
45.cd $TEMPDIR  
46.tarname=binlog$(date +%y%m%d).tar.gz  
47.tar czf $tarname ./mysql-bin*  
48. 
49.sleep 1s  50.
51.#ftp Info  
52.ftphost=111.111.11.11  
53.ftpname=xxx  
54.ftppsw=psw  
55. 
56.cd $TEMPDIR  
57. 
58.ftp -i -n 59.open $ftphost  
60.user $ftpname $ftppsw  
61.type binary  
62.put $tarname  
63.close  
64.bye  
65.!  
66.sleep 10s  
67. 
68.echo "end upload"  69. 
70.cd $TEMPDIR  
71.mv $BINLOGNAME* $BAKDIR  
72.rm -r $tarname  
73. 
74.echo "end"  说明:

mysqladmin -u$sqluser -p$sqlpsw flush-logs:mysql自动把内存中的日志放到日志文件binlog的最后一个文件里,并生成一个空的新日志文件,之后只需要备份前面的几个即可,最后一个因为是刚生成的,并且是空的,所以不需备份。

关于binlog可参考: http://www.linuxidc.com/Linux/2012-09/70815.htm

大概思路:

把datadir和bakdir目录中的binlog进行对比,如bakdir中没有,且该binlog不是最后一个,则把该binlog复制到tempdir中;这样tempdir中的binlog都是新增的binlog。之后把tempdir中的binlog进行打包压缩,ftp到另一个服务器上。
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn