文档章节

mysql数据库热备份

ifeixiang
 ifeixiang
发布于 2014/10/31 17:48
字数 580
阅读 13
收藏 0

使用Percona XtraBackup

先安装依赖包

yum install -y perl-DBD-MySQL perl-DBI  perl-Time-HiRes libaio*

到Percona官网下载Percona XtraBackup,安装

然后执行热备份,官网有详细教程:http://www.percona.com/doc/percona-xtrabackup/2.1/howtos/setting_up_replication.html

最后面的参数是备份的目录;

#使用默认的 /etc/my.cnf 配置文件

innobackupex --user=xxx --password=xxx  /home/data/bak_mysql/  

由于我们使用的是单机多实例,所以配置文件里面修改了[mysqld]项,xtrabackup无法正确识别datadir,所以复制了一份,使用原来单数据库的格式,将默认的数据库datadir改为我们的主数据库datadir

#自定义配置文件

innobackupex --user=xxx --password=xxx --defaults-file=/home/data/xtrabackup.my.cnf /home/data/bak_mysql/  

innobackupex备份速度非常快,完成后会显示:innobackupex: completed OK!

--apply-log操作

innobackupex --user=yourDBuser --password=xxx --apply-log /path/to/backupdir/$TIMESTAMP/

这一步会将ibdata1与ib_logfile0,ib_logfile1的log sequence number对应起来,否则可能会出现表空间和事务日志不一致的情况,

InnoDB: Error: page xxx log sequence number xxx InnoDB: is in the future! Current system log sequence number xxx.

虽然数据库有重建innodb日志的功能,但是,还是避免的好...

 

下面可以直接用这个备份来做一个Mysql_multi的单机多实例,并且,不需要关闭原来的mysql;

将备份的目录$DATETIME目录改名为mysql2,

mv /home/data/bak_mysql/xxx /home/data/mysql2

chown -R mysql.mysql /home/data/mysql2

cp /etc/my.cnf /home/data/my.cnf

vim /home/data/my.cnf

#修改my.cnf,改为 多实例,参考mysqld_multi --example输出的例子; 

启动新增的实例; 

mysqld_multi --defaults-file=/home/data/my.cnf start 2

 

附上一些代码:

#!/bin/bash

DB_CONFIG=/data2/data/xtrabackup.my.cnf
DB_USER=xxx
DB_PASS_FILE='/etc/db/'$DB_USER
BACKUP_HOME=/data2/data

# get database password
function getDbPass()
{
    RET=`cat $DB_PASS_FILE`
    echo $RET
}
DB_PASS=$(getDbPass)

cd $BACKUP_HOME
# partial backup 
function partial_backup(){
    innobackupex --defaults-file=$DB_CONFIG \
                                 --user=$DB_USER --password=$DB_PASS \
                                 --databases=/xxx/dump.tables \
                                 $BACKUP_HOME
    YEAR=`date +"%Y"`
    timestamp=`ls |grep 2014 |head -n 1`  #得到时间戳名字
    
    innobackupex --user=$DB_USER -password=$DB_PASS --apply-log --export $BACKUP_HOME/$timestamp/
    chown -R mysql.mysql $BACKUP_HOME/$timestamp/
}

#full backup , can be used as a slave , or base backup
function full_backup(){
    innobackupex --defaults-file=$DB_CONFIG \
                                 --user=$DB_USER --password=$DB_PASS \
                                 $BACKUP_HOME
    timestamp=`ls |grep 2014 |head -n 1`  #得到时间戳名字
    innobackupex --defaults-file=$DB_CONFIG --user=$DB_USER --password=$DB_PASS --apply-log $BACKUP_HOME/$timestamp/
    chown -R mysql.mysql $BACKUP_HOME/$timestamp/
}

#incremental backup , can be used as a slave , or base backup
function incremental_backup(){
    timestamp=`ls |grep 2014 |head -n 1`  #得到时间戳名字
    INCREMENTAL_BASE_DIR=/data2/data/mysql3/
    BACKUP_DIR=/data2/data/backups/
    innobackupex --user=$DB_USER --password=$DB_PASS \
                        --incremental $BACKUP_DIR \
                        --incremental-basedir=$INCREMENTAL_BASE_DIR
    #同样可以使用LSN来进行增量备份
    #innobackupex --incremental $BACKUP_DIR --incremental-lsn=XXX
}

full_backup

 

 

 

 

 

 

© 著作权归作者所有

ifeixiang
粉丝 16
博文 270
码字总数 99506
作品 0
广州
程序员
私信 提问
数据库备份与恢复

数据的备份与恢复 数据的备份分为逻辑备份与物理备份, 逻辑备份是指备份对数据库进行操作改变数据库结构的语句,如insert create 等,以文本形式存储,比较占用磁盘空间,不过可对其进行压缩...

刘水鹏
2012/04/14
0
0
Mysql 数据库备份与恢复

今天有点时间,自己总结下mysql备份的几种方法以备查阅! 生产环境中数据无疑是一个公司的命脉,作为一个运维工程师无法保证企业数据的安全,那么是一个不合格的工程师。我们如何保证数据不丢...

飞来的翅膀
2017/06/15
0
0
Mysql 数据库双机热备的配置方法

Mysql 数据库双机热备的配置方法 mysql数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题。还好mysql数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时...

文弱书生_罗剑
2015/08/18
0
0
mysql之备份恢复

一、为什么要备份? 灾难恢复 需求改变 测试 二、事先考虑的问题 可以容忍丢失多长时间的数据? 恢复要在多长时间内完成? 是否需要持续提供服务? 需要恢复什么,整个数据库服务器?单个数据...

水善几于道
2014/08/26
0
0
使用innobackupex在线增量备份及恢复mysql数据库

这几天一直在研究mysql备份这一块,前几天由于手误对线上生产数据库造成误操作,虽然没有太大影响,但是为了把风险度降到最低,因此最近一直在倒腾mysql的在线热备份,在线热备份有免费开源的,也...

devilangel
2014/03/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Guava RateLimiter + AOP注解实现单机限流、统计QPS

1、基于springboot项目pom.xml添加如下依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency><d......

铁骨铮铮
今天
3
0
龙芯版办公软件下载

金山wps office   rpm包:http://ftp.loongnix.org/os/loongnix/1.0/os/Packages/w/wps-office-10.8.0.6472-1.a20p1.mips64el.rpm   deb包:http://packages.deepin.com/loongson/pool/......

gugudu
今天
3
0
BI报表分析和数据可视化,推荐这三个开源工具!

开源篇 一、Superset 1、技术架构:Python + Flask + React + Redux + SQLAlchemy 2、使用人群: (1)开发/分析人员做好看板,业务人员浏览看板数据 (2)业务人员可自行编辑图表,查看满足...

飓风2000
今天
4
0
CountDownLatch

CountDownLatch的概念 CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。 CountDownLatch能够使一个线程在等待另外一些线程...

少年已不再年少
今天
2
0
centos7 新手阿里云服务器安装mongodb

简介 MongoDB 是一个基于分布式 文件存储的NoSQL数据库 由C++语言编写,运行稳定,性能高 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案 MongoDB特点 模式自由 :可以把不同结构的文档存...

醉雨
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部