貌似很强的mysql备份策略分享

每日凌晨2:00进行dump对相应数据库进行备份,同时对相应数据库进行binlog日志文件更新。
如果发现数据库错误,只需要先恢复上一个dump的备份,然后再还原当天的binlog日志文件。

举例:
每日12:00执行:

代码如下:

mysqldump database --flush-logs -uroot -p --opt > database_20020601.sql

按照日期规则执行。

如果想恢复到今早10点的数据库,那么:

1、完整备份整个当前数据库


代码如下:

cd /var/lib/mysql
mysqldump -uroot -p123456  mydata > mydata.bak

2、删除当前备份好的数据库


代码如下:

rm -rf mydata

3、先用dump恢复


代码如下:

mysql -uroot -p123456
mysql database -uroot -p123456 < database_20020601.sql

4、再用binlog按时间恢复


代码如下:

mysqlbinlog --stop-date="2011-07-28 10:18:49" /var/lib/mysql/mysql-bin.000006 | mysql -uroot -p123456

备注:
1、最好要把dump备份和binlog备份保存在异地--异地备份。
2、mysql主从复制。

(0)

相关推荐

  • linux中mysql备份shell脚本代码

    第一步:在你的linux服务器中定义备份目录: 复制代码 代码如下: mkdir /var/lib/mysqlbackup cd /var/lib/mysqlbackup 第二步:下面是最重要的一步了,就是写定时备份脚本. 复制代码 代码如下: vi dbbackup.sh 代码文件如下 复制代码 代码如下: #!/bin/sh# mysql data backup script## use mysqldump --help,get more detail.#BakDir=/root/back/

  • 在Win下mysql备份恢复命令

    在d:盘根目录下面存放备份数据库,备份数据库名字为backup20070713.sql(20070713.sql为备份日期) 备份数据库: mysqldump -uroot -p123456 database_name>d:/backup20070713.sql 恢复数据库: 删除原有数据库,建立数据库,把备份数据库导入. mysqladmin -uroot -p123456 drop database_name mysqladmin -uroot -p123456 create databas

  • mysql备份恢复mysqldump.exe几个常用用例

    1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名  mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql 2.导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql 3.导出一个数据库结构 mysqldump -u wcnc -p -d --add-drop-ta

  • mysql备份的三种方式详解

    一.备份的目的 做灾难恢复:对损坏的数据进行恢复和还原需求改变:因需求改变而需要把数据还原到改变以前测试:测试新功能是否可用 二.备份需要考虑的问题 可以容忍丢失多长时间的数据:恢复数据要在多长时间内完: 恢复的时候是否需要持续提供服务:恢复的对象,是整个库,多个表,还是单个库,单个表. 三.备份的类型 1.根据是否需要数据库离线 冷备(cold backup):需要关mysql服务,读写请求均不允许状态下进行:温备(warm backup): 服务在线,但仅支持读请求,不允许写请求:热备(ho

  • 解析Mysql备份与恢复简单总结与tee命令的使用介绍

    备份数据方法:一:sql语句.LOCKS TABLES tablename READ;//读锁定尝试锁定表之前,LOCK TABLES不是事务安全型的,会隐含地提交所有活性事务,同时,会隐含地开始一项事务(例如,使用START TRANSACTION),所以,对事务表(如InnoDB)使用LOCK TABLES的正确方法是,设置AUTOCOMMIT=0FLUSH TABLES,SELECT * INTO OUTFILE 'data_bck.sql' FIELDS TERMINATED BY ',

  • mysql备份与恢复详解

    MYSQL的备份有多少种,请简要的描述:数据库分逻辑备份\物理备份物理备份又分冷备和热备 A.直接拷贝数据文件到安全地方进行保存B.使用MYSQLHOSTCOPY备分数据C.使用MYSQLDUMP备份数据D.使用MYSQL的同步复制,实现数据实时数据同步备份 常用的逻辑备份主要就是两种:一种是将数据生成为可以完全重现当前数据库中的数据的insert语句,另一种是将数据通过逻辑备份软件,将数据库表的数据以特定分隔符进行分割后记录在文本中. 对于第一种生成insert语句来说我们可以直接使用mysq

  • 史上最全的MySQL备份方法

    本人曾经 用过的备份方式有:mysqldump.mysqlhotcopy.BACKUP TABLE .SELECT INTO OUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据文件和相关的配置文件.MyISAM 表是保存成文件的形式,因此相对比较容易备份,上面提到的几种方法都可以使用.Innodb 所有的表都保存在同一个数据文件 ibdata1 中(也可能是多个文件,或者是独立的表空间文件),相对来说比较不好备份,免费的方案可以是拷贝数据文件.备份 binlog,或者用

  • 貌似很强的mysql备份策略分享

    每日凌晨2:00进行dump对相应数据库进行备份,同时对相应数据库进行binlog日志文件更新.如果发现数据库错误,只需要先恢复上一个dump的备份,然后再还原当天的binlog日志文件. 举例:每日12:00执行: 复制代码 代码如下: mysqldump database --flush-logs -uroot -p --opt > database_20020601.sql 按照日期规则执行. 如果想恢复到今早10点的数据库,那么: 1.完整备份整个当前数据库 复制代码 代码如下: cd

  • 小型Drupal数据库备份以及大型站点MySQL备份策略分享

    中小站点简单备份策略 基于drupal的中小行网站,我们可以使用backup_migrate模块,该模块提供了定期备份的功能,备份的时间.保留多少个备份等等设置,设置好之后,定期执行cron即可备份成功. 一般的Drupal小站,我们只需使用svn即可,在服务器端,我们把备份好的数据提交到svn,就可以达到备份的目的.由于Drupal的备份模块可以设置备份保留的文件份数,因此不会造成太多的备份文件,从而导致svn很大. 下面是一个简单的备份脚本,放置到站点根目录,然后加到crontab每天执行即

  • mysql备份策略的实现(全量备份+增量备份)

    目录 设计场景 技术点 服务器信息 准备工作 编写全量备份脚本(Mysql-FullyBak.sh) 编写增量备份脚本 设置定时任务crontab 恢复操作 最近项目需要对数据库数据进行备份,通过查阅各种资料,设计了一套数据库备份策略,通过调试运行一周后,目前已经处于平稳运行状态.现在将思路分享出来,同时感谢gredn大佬. 设计场景 1)增量备份在周一到周六凌晨3点,复制mysql-bin.00000*到指定目录: 2)全量备份则使用mysqldump将整个数据库导出,每周日凌晨3点执行,并会

  • Mysql主从同步备份策略分享

    环境:主从服务器上的MySQL数据库版本同为5.1.34主机IP:192.168.0.1从机IP:192.168.0.2一. MySQL主服务器配置1.编辑配置文件/etc/my.cnf# 确保有如下行server-id = 1log-bin=mysql-binbinlog-do-db=mysql  #需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可binlog-ignore-db=mysql  #不需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可log-slave-up

  • MySQL选择合适的备份策略和备份工具

    目录 一.多地部署 二.备份的常见分类 1.物理备份 VS 逻辑备份 1)物理备份 2)逻辑备份 2.离线备份 VS 在线备份 3.全量备份 VS 增量备份 三.MySQL中的备份工具 1.物理备份 2.逻辑备份 四.mysqlbackup VS mysqldump 五.如何检测备份的有效性 六.RTO 和 RPO 1.RTO 2.RPO 七.总结 前言: 在确定备份策略和选择备份工具时,应从业务的RTO和RPO出发,结合存储成本综合考虑.数据库备份的重要性毋庸置疑,可以说,它是数据安全的最后一

  • 简单的MySQL备份与还原方法分享

    为了安全起见,需要经常对数据库作备份,或者还原.对于 MySQL 而言,最方便的方法可能就是用 phpMyAdmin 的导出.导入功能了,但如果你的数据库体积比较大,作为 Web 应用的 phpMyAdmin 可能会遭遇"超时"而操作失败.所以,学会在命令行模式下备份.还原数据库,还是很有必要的. Linux系统下 备份数据库 在 Linux 命令行模式下备份 MySQL 数据库,用的是 mysqldump 命令: mysqldump -u mysqluser -p test_db 对

  • Mysql数据库定时备份脚本分享

    BackUpMysql.sh脚本 #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin export PATH #数据库ip DBHOST='' #数据库用户名 DBUSER='' #数据库用密码 DBPASSWD='' #需要备份的数据库,多个数据库用空格分开 DBNAME='' #备份时间 backtime=`date +%Y-%m-%d_%H%M%S` #备份路径(当前目录) BACKPA

  • mysql常用备份命令和shell备份脚本分享

    备份多个数据库可以使用如下命令: mysqldump -uroot -p123456 --databases test1 test2 test3 > /home/test/dump.sql; 恢复备份: source dump.sql --在mysql命令行中输入该命令即可恢复 备份整个数据库: mysqldump -uroot -123456 -A > all.sql 备份整个数据库结构: mysqldump -uroot -p123456 -P3306 -A -d > all_002

  • PHP数据库编程之MySQL优化策略概述

    本文简单讲述了PHP数据库编程之MySQL优化策略.分享给大家供大家参考,具体如下: 前些天看到一篇文章说到PHP的瓶颈很多情况下不在PHP自身,而在于数据库.我们都知道,PHP开发中,数据的增删改查是核心.为了提升PHP的运行效率,程序员不光需要写出逻辑清晰,效率很高的代码,还要能对query语句进行优化.虽然我们对数据库的读取写入速度上却是无能为力,但在一些数据库类扩展像memcache.mongodb.redis这样的数据存储服务器的帮助下,PHP也能达到更快的存取速度,所以了解学习这些扩

  • 超详细MySQL使用规范分享

    最近涉及数据库相关操作较多,公司现有规范也不是太全面,就根据网上各路大神的相关规范,整理了一些自用的规范用法,万望指正. 数据库环境 dev: 开发环境 开发可读写,可修改表结构.开发人员可以修改表结构,可以随意修改其中的数据但是需要保证不影响其他开发同事. test: 测试环境 开发可读写,开发人员可以通过工具修改表结构. online: 线上环境 开发人员不允许直接在线上环境进行数据库操作,如果需要操作必须找DBA进行操作并进行相应记录,禁止进行压力测试. 重点的问题,各个环境的mysql服

随机推荐