MySQL数据库全备和增备、增量数据恢复案例以及定时清理 binlog 日志

一、mysql 全量备份以及增量备份
1、全量备份命令:

/application/mysql/bin/mysqldump -uroot -p123456 --lock-all-tables -A -B -F --master-data=2 --single-transaction --events|gzip > /opt/Mysql_Backup/all_backup/all_backup.sql.gz

如上一段代码所示,其功能是将所有数据库全量备份。其中 MySQL 用户名为:root ,密码为:123456。备份的文件路径为:/opt/Mysql_Backup/all_backup,当然这个路径是按照个人意愿修改的。备份的文件压缩包名为 all_backup.sql.gz

参数 --lock-all-tables:锁定所有数据库;
参数 -A:备份所有库;
参数 -B:指定多个库,增加建库语句和 use 语句;
参数 -F:刷新 binlog 日志;
参数 --master-data=0|1|2:
        0: 不记录
        1:记录为CHANGE MASTER语句
        2:记录为注释的CHANGE MASTER语句;
参数 --single-transaction:适合 innodb 事务数据库备份;
参数 --events:导出事件;
参数 gzip:备份压缩文件。

2、全量备份脚本:
> #!/bin/bash
> . /etc/init.d/functions
> user=root
> password="123456"
> Backup_Tools=/application/mysql/bin/mysqldump
> BackupDir=/opt/Mysql_Backup
> All_Backup=$BackupDir/all_backup
> mkdir -p $All_Backup
> echo ‘==========‘$(date +"%Y-%m-%d %H:%M:%S")‘==========‘ “备份开始” >>$All_Backup/all_backup.log
> $Backup_Tools -u$user -p$password -A -B -F --master-data=2 --single-transaction --events|gzip >$All_Backup/all_backup_$(date +%Y%m%d).sql.gz
> if [ $? -eq 0 ]
> then
>   echo ‘==========‘$(date +"%Y-%m-%d %H:%M:%S")‘==========‘ "备份完成" >>$All_Backup/all_backup.log
>   action "Mysql full backup is ok" /bin/true
> else
>   action "Mysql full backup is not ok" /bin/false
> fi

    3   、恢复全量备份命令:
cd /opt/Mysql_Backup/all_backup
gzip -d all_backup.sql.gz
mysql -uroot -p123456 < all_backup.sql

    或者:

    mysql> source /opt/Mysql_Backup/all_backup/all_backup.sql  

原文地址:http://blog.51cto.com/13688462/2171371

时间: 2024-10-31 11:46:19

MySQL数据库全备和增备、增量数据恢复案例以及定时清理 binlog 日志的相关文章

使用shell实现mysql自动全备、增备&日志备份

数据库热备脚本: vim backup.sh #!/bin/sh time=`date "+%Y%m%d_%H%M%S"` host=`hostname` week=`date +%w` monitor="/home/mysql/monitor/mysql_hotbackup_status.txt" ##zabbix监控文件 time_start=`date +%s` n=0 ###要周几做全备,周日是0,周一到周六依次为1~6 function check_sta

MySQL 之数据库增量数据恢复案例

MySQL 数据库增量数据恢复案例 一.场景概述 MySQL数据库每日零点自动全备 某天上午10点,小明莫名其妙地drop了一个数据库 我们需要通过全备的数据文件,以及增量的binlog文件进行数据恢复 二.主要思想 利用全备的sql文件中记录的CHANGE MASTER语句,binlog文件及其位置点信息,找出binlog文件增量的部分 用mysqlbinlog命令将上述的binlog文件导出为sql文件,并剔除其中的drop语句 通过全备文件和增量binlog文件的导出sql文件,就可以恢复

mysql数据库自动化完整备份和增量备份

mysql数据库自动化完整备份和增量备份     增量备份,为了增强mysql数据库的安全性和完整性,需要对数据进行备份.这里我们采用的策略是每周五下午5:30进行一次完整备份:每天的6:00.12:10.17:00进行增量备份. 1.完整备份脚本如下:(备份之后并打包存储) 2.增量备份脚本如下:(将生成的二进制文件内容读取出来并导入一个新的sql文件中) 增量备份的前提时,要在mysql的配置文件里打开二进制功能: log-bin=mysql 3.将这两个加进计划任务里 4.执行结果: 数据

MySQL数据库InnoDB引擎下服务器断电数据恢复

说明: 线上的一台MySQL数据库服务器突然断电,造成系统故障无法启动,重新安装系统后,找到之前的MySQL数据库文件夹. 问题: 通过复制文件的方式对之前的MySQL数据库进行恢复,发现在程序调用时找不到数据库中的表,造成网站无法正常访问. 分析: 1.MySQL数据库,使用拷贝文件方式来恢复数据库,只支持MyISAM引擎: 2.如果有数据库或数据表使用了InnoDB引擎,恢复的时候,必须连同MySQL数据库目录下的ibdata1文件一起拷贝过来. 解决办法: 1.停止MySQL服务 serv

mysql定时清理binlog

一.没有主从同步的情况下清理日志 mysql -uroot -p123456 -e 'PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ),INTERVAL 5 DAY)'; #mysql 定时清理5天前的binlog mysql -u root -p #进入mysql 控制台 reset master; #重置binlog 二.MySQL主从同步下安全清理binlog日志 1.mysql -u root -p #进入从服务器mysql控制台 show slave

Innobackupex MySQL 全备、增备及恢复

简介: 在这之前都是通过 mysqldump 来备份数据库的,由于是逻辑备份,所以采用这种备份方式数据是很安全的,跨平台.版本都很容易. 凡事有利必有弊,逻辑备份在你数据库比较大时,备份.恢复数据所耗费的时间也是蛮长的,所以要不断改进,使用物理备份. 由于线上数据库表使用的是混合引擎 MyISAM 跟 Innodb ,所以也不能使用 mysqlhotcopy ,这个工具还是蛮好用的,可惜只能备份 MyISAM. Percona XtraBackup 是 Percona 公司开发的一个用于 MyS

MySQL 数据库增量数据恢复案例

一.场景概述 MySQL数据库每日零点自动全备 某天上午10点,小明莫名其妙地drop了一个数据库 我们需要通过全备的数据文件,以及增量的binlog文件进行数据恢复 二.主要思想 利用全备的sql文件中记录的CHANGE MASTER语句,binlog文件及其位置点信息,找出binlog文件增量的部分 用mysqlbinlog命令将上述的binlog文件导出为sql文件,并剔除其中的drop语句 通过全备文件和增量binlog文件的导出sql文件,就可以恢复到完整的数据 三.过程示意图 四.操

对MySQL数据库执行非热备操作的要点

mysql备份恢复的场景一: 数据库数据比较小的情况下,使用mysqldump做完全备份,使用mysqlbinlog做增量备份. 完全备份,示例: # mysqldump -A --lock-all-tables --routines --triggers --master-data=2 > /backup/all-`date +%F`.sql 增量备份,示例: # mysqlbinlog /mydata/data/mysql-bin.0000## > /backup/incre-`date 

MySQL数据库备份:完全备份+增量备份

MySQL数据库备份:完全备份+增量备份 ************************************************************************************** 计划任务: crontab -e  -u root 00 6  * * 1  /shell/mysqlbak.sh &> /dev/null 00 23  * * 2-7  /shell/mysqladd.sh &> /dev/null **************