公司需要对生产环境的数据库进行备份,我接下了这份任务。

1. 首先谷歌了以下大家的备份方法

  许多都使用到了Xtrabackup这个工具,超大型的公司可能有其他的的备份方法,这个工具对于中小型公司,甚至是大公司都可以满足需求。

  xtrabackup中备份通常需要压缩软件来减少磁盘占用容量,同时使用xbstream流。

  注: 在测试还原备份时候,使用compact参数的备份不能还原,就算能还原,mysqld启动之后一会就当机,所以大家不要为了一些容量就使用这个参数。切记!

2. 备份策略

  有人建议中小公司的备份策略为:每天全备+rsync bin-log,大公司周日全备+周一到周六增备+rsync bin-log(增备策略有俩种:每次都基于全备或者每次都基于上一次的增备,如果上一次增备没有则基于全备)

  显然第一种方案比较简单,但占用磁盘比较大;第二种占用磁盘小,但操作比较复杂,还原的时候更是。

  本人在小公司,但有一份大公司的心,所以采用周日全备,周一到周六增备的备份策略,增备备份每次使用全备进行增备,这样可以减少还原时操作的复杂度。

3. 备份语句:

  全备:

MYSQL_CMD=" --host=localhost --user=backup --password=xxxxxxx --port=3306 "
innobackupex --defaults-file=/etc/my.cnf --use-memory=2G $MYSQL_CMD --extra-lsndir=${THIS_FULLBACKUP_DIR} --stream=xbstream ${FULLBACKUP_DIR} 2>> $TMPLOG | \
lbzip2 -kv -n 6 > ${THIS_COMPRESS_FULLBACKUP_FILEPATH} 2>> $TMPLOG

  增备:

$INNOBACKUPEXFULL --defaults-file=$MY_CNF --use-memory=2G $MYSQL_CMD --incremental-basedir=${THIS_INCRBASEDIR} --extra-lsndir=${THIS_INCRBACKUP_DIR} --incremental --stream=xbstream ${INCRBACKUP_DIR} 2>> $TMPLOG | \
lbzip2 -kv -n 6 > ${THIS_COMPRESS_INCRBACKUP_FILEPATH} 2>> $TMPLOG

  

  压缩工具使用的是lbzip2,这需要安装。

4. 还原步骤

  1. 停服

  2. 将服务器原始数据文件先移出来出来,清空数据库的数据目录

  3. 将备份的原始文件拷贝一份,上传到服务器所在的机器

  4. lbzip 解压

  5. xbstream 解压

  6. apply-log: 增备和全备都需要,具体语句不做叙述, 除最后一个备份外,其他备份apply-log时需要加--redo-only参数,此外如果还需还原bin-log日志,在第7步完成之后使用mysqladmin进行操作,操作方法不做叙述

  7. copy-back: 因为增备合并到全备中了,所以我们只需要copy-back全备回数据库的数据目录就好

  8. 更改目录权限: chown -R mysql:mysql /var/lib/mysql

  9. 启动服务器

注: 使用xtrabackup来初始化slave无需删除auto.cnf, 如果你是拷贝数据目录,在启动slave时需要删除,这是数据库实例的唯一标识

【原创】MySQL 生产环境备份还原的更多相关文章

  1. Mariadb/MySQL生产环境的my.cnf配置示例

    Mariadb/MySQL生产环境的my.cnf配置示例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.针对MySQL主程序mysqld定义参数[mysqld]  1>. ...

  2. Mysql 二进制日志备份还原

    Mysql 二进制日志备份还原 一.开启二进制日志 1.进入配置文件[mysqld]下添加配置 方案一 vim /etc/my.cnf log-bin = /usr/local/mysql/logs/ ...

  3. 使用innobackupex进行mysql的差异备份还原和延迟复制

    使用innobackupex进行mysql的差异备份还原和延迟复制 背景: 有同事执行update语句没有添加where条件,导致大量脏数据,需要将这张表恢复到前一天 数据库上有备份,每周一次完整备份 ...

  4. MySQL生产环境下的主从复制启动项

    MySQL的复制参数除了我们之前搭建主从时遇到的那几个之外,还有以下两个: 1.log-slave-updates 这个参数用来配置从库上是否启动了二进制日志的功能,默认是不开启的,如果开启了那么从库 ...

  5. mysqldump工具实现mysql数据库的备份还原

    简介 冷.温.热备份 冷备:读写操作均不可进行 温备:读操作可执行:但写操作不可执行 热备:读写操作均可执行 MyISAM:温备,不支持热备 InnoDB:都支持 不管是热备还原还是冷备还原,还原时都 ...

  6. Mysql数据库之备份还原(mysqldump,LVM快照,select备份,xtrabackup)

    备份类型: 热备份:读写不受影响 温备份:仅可执行读备份 冷备份:离线备份,读写均不能执行,关机备份 物理备份和逻辑备份 物理备份:复制数据文件,速度快. 逻辑备份:将数据导出之文本文件中,必要时候, ...

  7. mysql数据库数据备份还原

    1.直接在命令行里面执行 备份一个数据库:mysqldump -h server -u username -p password db_name > database-sqlbkp_`date ...

  8. C#中MySQL数据库的备份 还原 初始化

    直接在cmd执行如下代码: mysqldump -h localhost -uroot -p123 --default-character-set=utf8 --opt --disable-keys ...

  9. C# MySQL数据库的备份 还原 初始化

    // 执行创建数据库操作 this.GetExecute(G_Con, "create database if not exists NEWDB"); this.sqlAddres ...

随机推荐

  1. 订阅 memcached: error while loading shared libraries: libevent-2.0.so.5: cannot o解决

    memcached: error while loading shared libraries: libevent-2.0.so.5: cannot o解决   memcached基本选项 -p 端口 ...

  2. [转]iCheck表单美化插件使用方法详解(含参数、事件等)

    本文转自:http://www.exp99.com/jswz/f2e/1408696007_34.html iCheck   特色: 1.在不同浏览器(包括ie6+)和设备上都有相同的表现 — 包括 ...

  3. Ionic3 UI组件之 autocomplete

    无论是web开发还是app开发,autocomplete是常用组件之一. 可惜截止到目前,ionic官方并未提供此组件. ionic2-autocomplete是GitHub上的开源的Ionic2组件 ...

  4. sendsms短信验证功能实现代码

    <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <meta name ...

  5. Web服务的调用

    1.创建服务引用 例如:天气预报 2.在代码添加引用空间 TvProgram.ChinaTVprogramWebService tp = new TvProgram.ChinaTVprogramWeb ...

  6. Tuple解决在视图中通过razor获取控制器传递给视图的匿名对象的报错问题

    C#的编译器总是将匿名类型编译成internal的,当在视图中直接使用控制器传递的匿名对象时就会报错错误代码:控制器代码视图代码执行结果: ****************************** ...

  7. 从一个带有http://网络文件中获取文件名

    例如文件网址为: http://a.hiphotos.baidu.com/image/h%3D200/sign=c3da85e50123dd543e73a068e108b3df/80cb39dbb6f ...

  8. 【转】类找不到总结java.lang.ClassNotFoundException

    (1)org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.microsoft.sqls ...

  9. Https之SSL原理

    一.HTTPS和SSL HTTP(Hyper TEXT Transfer Protocol超文本传输协议)是目前互联网上应用最为广泛的一种网络协议,用于在Web浏览器和网站服务器之间传递信息,但是HT ...

  10. p2p手机绑定

    本文工具类     http://www.cnblogs.com/jokerq/p/8590498.html 1.需求分析 2.设计分析 3.前台页面(freemarker) <script t ...