`
willvvv
  • 浏览: 331597 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

XtraBackup结合crontab定时备份innodB

阅读更多

mysql-full-backup.sh

 

#!/bin/bash
export MYSQL_HOME=/usr/local/Percona-Server-5.5.21-rel25.0-227.Linux.x86_64/
export PATH=$MYSQL_HOME/bin:$PATH

mysql_backup_dir=/data/backup/mysql/
mysql_username="YOURS"
mysql_password="YOURS"

cd $mysql_backup_dir
lastincrementfolder=`ls -l|grep ^d|tail -n 1 | awk '{print $9}'`
timeStart=$(date '+%Y%m%d%H%M%S')
logfile=full-$timeStart.log
innobackupex --user=$mysql_username --password=$mysql_password $mysql_backup_dir 2> "$logfile" 

 

mysql-incremental-backup.sh

 

#!/bin/bash
export MYSQL_HOME=/usr/local/Percona-Server-5.5.21-rel25.0-227.Linux.x86_64/
export PATH=$MYSQL_HOME/bin:$PATH

mysql_backup_dir=/data/backup/mysql/
mysql_username="YOURS"
mysql_password="YOURS"

cd $mysql_backup_dir
lastincrementfolder=`ls -l|grep ^d| tail -n 1 | awk '{print $9}'`
timeStart=$(date '+%Y%m%d%H%M%S')
logfile=increment-$timeStart.log
innobackupex --incremental $mysql_backup_dir --incremental-basedir=$lastincrementfolder --user=$mysql_username --password=$mysql_password 2> "$logfile"

 

注意里面的

 

export PATH=$MYSQL_HOME/bin:$PATH

 

不加的话报mysql,innobackupex等 command not found!

 

以上两个脚本放在/usr/local/scripts/ 目录下,接下来配置crontab

 

crontab -e

添加以下内容:

0  2 * * 1-6 sh /usr/local/scripts/mysql-incremental-backup.sh
0  2 * * 0   sh /usr/local/scripts/mysql-full-backup.sh

然后使用vi的保存命令(ZZ,或者:wq)保存 !

 

意思是每周一到周六的02:00执行一次增量备份,每周日02:00执行一次全量备份。

下面是crontab的时间格式,备忘用。

 

含义

取值范围

第一段

代表分钟

0—59

第二段

代表小时

0—23

第三段

代表日期

1—31

第四段

代表月份

1—12

第五段

代表星期几,0代表星期日

0—6

 

附几个网上找的例子:


● 0 */2 * * * /sbin/service httpd restart  意思是每两个小时重启一次apache

● 50 7 * * * /sbin/service sshd start  意思是每天7:50开启ssh服务

● 50 22 * * * /sbin/service sshd stop  意思是每天22:50关闭ssh服务

● 0 0 1,15 * * fsck /home  每月1号和15号检查/home 磁盘

● 1 * * * * /home/bruce/backup  每小时的第一分执行 /home/bruce/backup这个文件

● 00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} /;  每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。


● 30 6 */10 * * ls  意思是每月的1、11、21、31日是的6:30执行一次ls命令

分享到:
评论

相关推荐

    mysql定时备份数据库文档及工具

    Percona Xtrabackup是一款开源的热备份工具,支持InnoDB和XtraDB存储引擎。它可以进行无锁备份,即使在数据库运行时也不会影响业务。Xtrabackup同样可以通过`cron`进行定时备份,以确保数据的连续性。 3. **MySQL ...

    定时备份mysql数据库

    3. **InnoDB表空间备份**:如果数据库主要使用InnoDB存储引擎,可以考虑使用`innobackupex`(XtraBackup的一部分)进行热备份,这允许在不关闭数据库的情况下进行完整备份。 4. **复制技术**:如果你有多台MySQL...

    mysql服务器备份.rar

    首先,我们关注的是“xtrabackup”这个文件名,它是Percona XtraBackup的简称,一个开源、无锁的MySQL和InnoDB数据备份工具。它允许在不中断服务的情况下进行热备份,这意味着在备份过程中,数据库仍可正常运行,...

    linux下mysql自动备份

    在Linux环境下,对MySQL数据库进行自动备份是系统管理员日常维护工作的重要组成部分,它能确保数据安全,防止意外丢失。...无论哪种方式,结合cron定时任务都能确保备份的定期执行,为数据库的安全提供保障。

    MySQL 备份和恢复策略

    通过 `crontab -e` 命令添加定时任务,如设定每天凌晨 3:00 执行备份。 在实际应用中,为了应对不同需求,通常还会采用其他备份策略,如: 1. **逻辑备份**:使用 `mysqldump` 工具生成 SQL 脚本来备份数据库,...

    linux mysql自动备份工具

    MySQL提供了多种备份方法,包括mysqldump、mysqlhotcopy(适用于InnoDB和MyISAM表)以及Percona Xtrabackup(适合InnoDB引擎,支持热备份)。在这个场景下,我们主要关注使用mysqldump命令进行逻辑备份,这是一种...

    mysql备份脚本mysql备份脚本

    MySQL本身并不直接支持增量备份,但可以通过第三方工具如Percona XtraBackup或InnoDB Hot Backup实现。 3. 差异备份:差异备份类似于增量备份,但它是相对于最近的全量备份而言,而不是上一次增量备份。 二、`...

    mysql备份工具

    - **自动备份**:可以设置定时任务或脚本来实现定期备份,如Linux的cron job,Windows的任务计划程序,或编写shell脚本配合crontab。 2. **全量备份与增量/差异备份** - **全量备份**:备份数据库的所有内容,...

    数据库备份系统解决方案.pptx

    2. **Xtra(物理)备份**:如InnoDB的xtrabackup,速度快,对线上影响小,恢复速度快,数据一致性好。 3. **Binlog备份**:通过记录数据库的事务日志,实现增量备份,恢复精度高。 **调度方式的对比:** 1. **...

    Mysql数据库增量备份的思路和方法

    为了优化性能,可以考虑调整binlog的大小和位置,或者采用更高效的备份工具,如Percona Xtrabackup,它可以直接处理InnoDB的数据文件和binlog,进一步提高备份效率。 总之,MySQL数据库增量备份是数据库管理中的...

    线上Mysql数据库日常维护与管理

    - `xtrabackup`是一个常用的工具,它可以实现在线备份InnoDB表空间,同时支持流式输出,方便远程传输。 **备份步骤**: - 使用`xtrabackup`工具进行全库备份: ```bash innobackupex --user=backup --password...

Global site tag (gtag.js) - Google Analytics