#!/bin/sh
#MySQL Info
sqluser=root
sqlpsw=slave@101B
/usr/bin/mysqladmin -u$sqluser -p$sqlpsw flush-logs --default-character-set=GBK
DATADIR=/data/mysql
BAKDIR=/home/backup/mysql/daily
TEMPDIR=/home/backup/mysql/temp
BINLOGNAME='mysql-bin'
cd $DATADIR
FILELIST=$(cat $BINLOGNAME.index | cut -c3-)
## COUNTER number
COUNTER=0
for file in $FILELIST
do
COUNTER=$(expr $COUNTER + 1)
done
NextNum=0
for file in $FILELIST
do
NextNum=$(expr $NextNum + 1)
if test "$NextNum" = "$COUNTER"
then
echo "skip lastest"
else
dest=$BAKDIR/$file
if test -e $dest
then
echo "skip exist $dest"
else
cp $file $TEMPDIR
fi
fi
done
echo "backup mysql binlog ok"
sleep 2s
cd $TEMPDIR
tarname=binlog$(date +%y%m%d).tar.gz
tar czf $tarname ./mysql-bin*
sleep 1s
#ftp Info
ftphost=118.123.22.162
ftpname=datasql
ftppsw=backup99@KF
cd $TEMPDIR
ftp -i -n <<!
open $ftphost
user $ftpname $ftppsw
type binary
put $tarname
close
bye
!
sleep 10s
echo "end upload"
cd $TEMPDIR
mv $BINLOGNAME* $BAKDIR
rm -r $tarname
echo "end"
说明:
mysqladmin -u$sqluser -p$sqlpsw flush-logs:mysql自动把内存中的日志放到日志文件binlog的最后一个文件里,并生成一个空的新日志文件,之后只需要备份前面的几个即可,最后一个因为是刚生成的,并且是空的,所以不需备份。
关于binlog可参考http://cxhyrf-sina-com.iteye.com/blog/1680055
大概思路:
把datadir和bakdir目录中的binlog进行对比,如bakdir中没有,且该binlog不是最后一个,则把该binlog复制到tempdir中;这样tempdir中的binlog都是新增的binlog。之后把tempdir中的binlog进行打包压缩,ftp到另一个服务器上。
分享到:
相关推荐
本地备份与异地备份都是保障数据安全的重要策略。以下是对标题和描述中提到的知识点的详细解释: 1. **MySQL数据库备份**:MySQL是全球广泛使用的开源关系型数据库管理系统,定期对其备份是为了防止数据丢失或系统...
全量备份是整个数据库的副本,增量备份只备份自上次备份以来更改的数据,而差异备份则备份自上次全量备份以来更改的数据。 5. **测试和验证**: 定期测试备份的完整性和可恢复性至关重要。你可以选择定期恢复一些...
Redmine在Windows下实现自动备份和异地备份 1.Redmine备份内容 Redmine在Windows下的自动备份实现,包括: 1)Redmine目录的全备份(1周或1个月备份1次,由windows计划来调度执行),将整个Redmine安装的文件夹全部...
本测试中并未详细描述增量备份的过程,但提到全量及增量备份集均可用于恢复,说明增量备份也在恢复过程中起到了补充作用。 3. **恢复验证**:恢复后,通过检查数据库中的数据更新时间(如`mysql.innodb_table_stats...
4. **二进制日志**: MySQL的二进制日志记录了所有改变数据库的数据更改事件,可用于增量备份和恢复。 在CentOS 8中,备份策略可能还包括系统级别的快照,例如使用LVM快照或Rsync,这样可以同时保护MySQL数据和系统...
总结来说,MySQL的备份和恢复策略应该综合考虑全量备份、增量备份、binlog以及主从复制,同时结合异地容灾和定期演练,以达到RPO(恢复点目标)和RTO(恢复时间目标)。这样的方案可以有效防止数据丢失,保障业务...
- **异地备份**:将备份文件存放在不同的地理位置,以提高容灾能力。 #### 五、备份注意事项 在进行MySQL备份时,还需要注意以下几点: - **备份文件的安全性**:备份文件中可能包含敏感信息,因此需要加密存储。...
MySQL全量和增量备份是数据库管理中的重要环节,确保数据安全和业务连续性。这篇文档主要介绍了如何在Linux环境中利用mysqldump工具创建自动备份脚本,包括全量备份和远程备份。以下是对该备份方案的详细说明: 1. ...
3. 异地备份:在不同地理位置存储备份,以应对地区性灾难。 五、MySQL数据库还原 1. 使用SQL脚本还原:通过执行由mysqldump生成的SQL文件恢复数据库。 2. 物理文件还原:适用于InnoDB引擎,将备份文件直接替换到...
但MySQL本身并不直接支持真正意义上的增量备份,需要结合其他工具如Percona Xtrabackup。 4. **配置文件DumpRestoreMysqlData.cfg**:可能包含了备份策略、数据库连接信息、备份路径等设置,用于自动化备份脚本。 ...
10. **灾备与高可用性**:逻辑备份只是灾备方案的一部分,完整的灾备体系还包括冗余硬件、复制技术(如主从复制、组复制)以及异地备份,以确保在灾难发生时能快速恢复服务。 总结来说,MySQL逻辑备份恢复是数据库...
数据库FTP异地备份是一种重要的数据保护策略,它通过网络将数据库的备份文件传输到远程服务器或存储设备上,以防止本地灾难性事件导致的数据丢失。在本文中,我们将深入探讨这一主题,了解其工作原理、重要性和实施...
针对上述问题,自定义备份方案通常会结合MySQL的特性,比如使用InnoDB存储引擎的事务日志(Binary Log)和增量备份。通过编写脚本,可以实现定期备份主数据和二进制日志,确保在数据丢失后能够精确恢复到某个时间点...
备份策略通常包括完整备份、增量备份和差异备份,以平衡数据恢复速度与存储空间的使用。 在MySQL中,有多种方式进行数据备份,包括使用mysqldump工具、MySQL Enterprise Backup(MEB)、InnoDB Hot Backup等。这里...
除了全库备份外,MySQL 还支持增量备份和差异备份。 1. **增量备份**:只备份自上次备份以来发生变化的数据。这种方式可以显著减少备份所需的时间和空间。 ```bash mysqldump -u username -p --single-...
XtraBackup还支持流式压缩传输,可以将备份数据传输到其他服务器上,这对于维护数据的异地备份以及在多机房环境中保持数据一致非常有用。在创建主从同步架构时,XtraBackup也能够轻易实现数据的快速同步,使数据库...
下面将详细介绍如何设置MySQL数据库的自动备份,包括本地备份、异地备份以及过期备份文件的自动删除,并简要提及备份恢复的过程。 **一、数据库数据的自动备份** 1.1 **自动备份介绍** 自动备份是指通过编写脚本和...
3. 可以考虑采用复制的方法来做异地备份,但不能代替备份,它对数据库的误操作也无能为力。 4. 要定期做备份,备份的周期要充分考虑系统可以承受的恢复时间。备份要在系统负载较小的时候进行。 5. 确保 MySQL 打开...
异地备份软件,尤其是在SQL数据库环境下,是保护企业数据安全的重要工具。这种软件的主要目标是确保在发生灾难性事件,如硬件故障、自然灾害或恶意攻击时,企业的关键数据能得到及时恢复,保证业务连续性。SQL数据库...
本方案旨在提供一个 MySQL数据库备份与恢复的解决方案,包括数据库备份、异地备份和文件备份三部分。 一、数据库备份 数据库备份是确保数据安全的重要步骤。备份的方式可以是完全备份,也可以是增量备份。完全备份...