【原创】MySQL 生产环境备份还原
公司需要对生产环境的数据库进行备份,我接下了这份任务。
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 生产环境备份还原的更多相关文章
- Mariadb/MySQL生产环境的my.cnf配置示例
Mariadb/MySQL生产环境的my.cnf配置示例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.针对MySQL主程序mysqld定义参数[mysqld] 1>. ...
- Mysql 二进制日志备份还原
Mysql 二进制日志备份还原 一.开启二进制日志 1.进入配置文件[mysqld]下添加配置 方案一 vim /etc/my.cnf log-bin = /usr/local/mysql/logs/ ...
- 使用innobackupex进行mysql的差异备份还原和延迟复制
使用innobackupex进行mysql的差异备份还原和延迟复制 背景: 有同事执行update语句没有添加where条件,导致大量脏数据,需要将这张表恢复到前一天 数据库上有备份,每周一次完整备份 ...
- MySQL生产环境下的主从复制启动项
MySQL的复制参数除了我们之前搭建主从时遇到的那几个之外,还有以下两个: 1.log-slave-updates 这个参数用来配置从库上是否启动了二进制日志的功能,默认是不开启的,如果开启了那么从库 ...
- mysqldump工具实现mysql数据库的备份还原
简介 冷.温.热备份 冷备:读写操作均不可进行 温备:读操作可执行:但写操作不可执行 热备:读写操作均可执行 MyISAM:温备,不支持热备 InnoDB:都支持 不管是热备还原还是冷备还原,还原时都 ...
- Mysql数据库之备份还原(mysqldump,LVM快照,select备份,xtrabackup)
备份类型: 热备份:读写不受影响 温备份:仅可执行读备份 冷备份:离线备份,读写均不能执行,关机备份 物理备份和逻辑备份 物理备份:复制数据文件,速度快. 逻辑备份:将数据导出之文本文件中,必要时候, ...
- mysql数据库数据备份还原
1.直接在命令行里面执行 备份一个数据库:mysqldump -h server -u username -p password db_name > database-sqlbkp_`date ...
- C#中MySQL数据库的备份 还原 初始化
直接在cmd执行如下代码: mysqldump -h localhost -uroot -p123 --default-character-set=utf8 --opt --disable-keys ...
- C# MySQL数据库的备份 还原 初始化
// 执行创建数据库操作 this.GetExecute(G_Con, "create database if not exists NEWDB"); this.sqlAddres ...
随机推荐
- 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联
浅析人脸检测之Haar分类器方法 一.Haar分类器的前世今生 人脸检测属于计算机视觉的范畴,早期人们的主要研究方向是人脸识别,即根据人脸来识别人物的身份,后来在复杂背景下的人脸检测需求越来越大,人脸 ...
- Day7:掌握APICloud应用管理相关服务的配置使用和相关API,包括:应用发布、版本管理、云修复、闪屏广告等。理解APICloud APP优化策略和编码规范;了解APICloud多Widget管理机制和SuperWebview的使用
主要内容: 1. 应用发布 1.1 云编译 1.2 全包加密 网页全包加密:对网页中全包的html,css,javascript代码进行加密,加密后的网友代码都是不可读的,并且不能通过常用的格式化工具 ...
- C# Mysql Dapper和原生sql 插入和查询速度比较
1.表中有三个字段,已经有100多万条数据,每次插入10万条数据 时间单位:秒 秒 Dapper批量Model插入时间:40.6165513,Dapper单条Model插入时间:95.9492972, ...
- 一分钟配置jdk
一.下载jdk 直接进入网站:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ...
- hdu 2030 统计汉字个数
汉字统计 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- redis 批量删除key
redis-cli -h -p keys -p del s
- springMVC 简单应用
一,controller FileController package com.dkt.controller; import java.io.File; import java.io.FileInpu ...
- JavaScript-点击表格的表头进行排序
HTML如下: <table class="heroinfo"> <thead title="点击排序"> <tr> < ...
- (项目积累的)SQL数据库点滴
最近的的系统用的数据库是mssql,软件mssql 2008 r2 1.存储过程:后勤的综合管理系统(后端内网访问)三层架构配套用的是存储过程,里面列表展示的都是用存储过程,如下: 1)数据库脚本 U ...
- 朴素贝叶斯文本分类实现 python cherry分类器
贝叶斯模型在机器学习以及人工智能中都有出现,cherry分类器使用了朴素贝叶斯模型算法,经过简单的优化,使用1000个训练数据就能得到97.5%的准确率.虽然现在主流的框架都带有朴素贝叶斯模型算法,大 ...