使用xtrabackup远程备份到及重建数据库
准备工作:
从percona网站下载xtrabackup:
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.3/binary/tarball/percona-xtrabackup-2.3.3-Linux-x86_64.tar.gz
创建数据库备份帐号:GRANT SELECT, RELOAD, PROCESS, SUPER, LOCK TABLES, REPLICATION SLAVE, REPLICATION CLIENT, SHOW VIEW ON *.* TO 'db_user'@'localhost' IDENTIFIED BY 'db_password';
使用percona xtrabackup备份工具,以流备份的方式,直接从本地备份到远程服务器上,当备份数据比较大,而本地磁盘容量又比较小时很有用。
1.备份
#使用tar流备份
/opt/viewer/percona-xtrabackup-2.3.3-Linux-x86_64/bin/innobackupex --defaults-file=$MY_CNF --tmpdir=$TMP_DIR --ibbackup=/opt/viewer/percona-xtrabackup-2.3.3-Linux-x86_64/bin/xtrabackup --user=user --password=password --slave-info --stream tar $DATA_DIR | ssh $REMOTE_HOST "cat - > /vobiledata/tmp/${LOCAL_HOST}.mysqldata.tar.lzma"
#使用xbstream流备份
./innobackupex --defaults-file=/etc/mysql/my.cnf --user=xxx --password=xxx --stream=xbstream /vobiledata/mysqldata/ |ssh root@$REMOTE_HOST
"cd /root/percona-xtrabackup-2.3.3-Linux-x86_64/bin; cat - | ./xbstream -x -C /vobiledata/mysqldata/" > innobackupex.log 2>&1
#备份指定数据库
./innobackupex --defaults-file=/etc/mysql/my.cnf --user=xxx --password=xxx --databases="db1 db2" --stream=xbstream /vobiledata/mysqldata/ |ssh root@$REMOTE_HOST
"cd /root/percona-xtrabackup-2.3.3-Linux-x86_64/bin; cat - | ./xbstream -x -C /vobiledata/mysqldata/" > innobackupex.log 2>&1
-- 注意 --databases参数值要用引号括起来
2.恢复
#解压数据库备份文件
tar -xi --lzma -f ${db_data_package_file}
#还原数据库
innobackupex-1.5.1 --user=root --apply-log --defaults-file={mysql_conf_file} --ibbackup=/usr/bin/xtrabackup_51 --use-memory=2046M ${mysql_data_dir}
#将数据文件拷贝到数据目录,如果解压的时候文件已经在数据库目录下,则可省略此步骤
#innobackupex-1.5.1 --user=root --copy-back --defaults-file=${mysql_conf_file} --use-memory=2046M --no-lock ${mysql_data_dir}
#恢复增量备份示例:
/usr/local/percona-xtrabackup-2.4.4-Linux-x86_64/bin/innobackupex --defaults-file=./my.cnf --apply-log --redo-only ./fullbackup
/usr/local/percona-xtrabackup-2.4.4-Linux-x86_64/bin/innobackupex --defaults-file=./my.cnf --apply-log --redo-only ./fullbackup --incremental-dir=/data/db_recovery/hostip/incr1
/usr/local/percona-xtrabackup-2.4.4-Linux-x86_64/bin/innobackupex --defaults-file=./my.cnf --apply-log --redo-only ./fullbackup --incremental-dir=/data/db_recovery/hostip/incr2
/usr/local/percona-xtrabackup-2.4.4-Linux-x86_64/bin/innobackupex --defaults-file=./my.cnf --apply-log --redo-only ./fullbackup --incremental-dir=/data/db_recovery/hostip/incr3
/usr/local/percona-xtrabackup-2.4.4-Linux-x86_64/bin/innobackupex --defaults-file=./my.cnf --apply-log --redo-only ./fullbackup --incremental-dir=/data/db_recovery/hostip/incr4
/usr/local/percona-xtrabackup-2.4.4-Linux-x86_64/bin/innobackupex --defaults-file=./my.cnf --apply-log --redo-only ./fullbackup --incremental-dir=/data/db_recovery/hostip/incr5
/usr/local/percona-xtrabackup-2.4.4-Linux-x86_64/bin/innobackupex --defaults-file=./my.cnf --apply-log ./fullbackup --incremental-dir=/data/db_recovery/hostip/incr6
/usr/local/percona-xtrabackup-2.4.4-Linux-x86_64/bin/innobackupex --defaults-file=./my.cnf --apply-log ./fullbackup
异常处理:
问题1. XtraBackup备份出现"Can't locate Digest/MD5.pm in @INC"
原因分析:安装Xtrabackup 2.4时,没有安装 perl-Digest-MD5组件
解决方法:安装perl-Digest-MD5后,问题即可解决。
redhat及周边系统:yum install perl-Digest-MD5
debian及周边系统:apt-get install perl-Digest-MD5
参考文档【http://www.cnblogs.com/kerrycode/p/6433075.html】
问题2:
IMPORTANT: Please check that the backup run completes successfully.
At the end of a successful backup run innobackupex
prints "completed OK!".
170511 16:33:48 version_check Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_group=xtrabackup;host=127.0.0.1;mysql_socket=/data/mysql5.6/mysql.sock' as 'db_backup' (using password: YES).
Failed to connect to MySQL server as DBD::mysql module is not installed at - line 1327.
170511 16:33:48 Connecting to MySQL server host: 127.0.0.1, user: db_backup, password: set, port: 0, socket: /data/mysql5.6/mysql.sock
Using server version 5.6.27-log
原因:没有安装perl-DBD-MySQL
解决方法:yum install perl-DBD-MySQL
使用xtrabackup远程备份到及重建数据库相关推荐
- Xtrabackup远程备份+限速
远程备份一个好处是,不占用本地磁盘空间,可以直接备份到远程主机指定的目录.但在数据量很大的情况下要防止网络中断导致的远程备份失败. 方法1:ssh + 密码的方式 innobackupex --hos ...
- 远程备份SQL Server 2005数据库
今天终于把这个问题给解决了: 参考文章:http://blog.csdn.net/long2006sky/archive/2007/04/23/1576583.aspx 实例说明: ...
- 远程备份与还原mysql数据库
mysql的备份还原使用了mysql安装程序中bin目录中的mysqldump.exe 和 mysql.exe,所以我们需要提前设置好环境变量,简化操作 一.环境变量 二.启动cmd并跳转至脚本目录 ...
- mysqldump远程备份mysql数据库方法
为什么80%的码农都做不了架构师?>>> 操作用mysqldump备份数据库的用户需要的权限比较小,只需要select和lock table的权限就足够了.所以可以创建一个备份 ...
- 用mysqldump远程备份mysql数据库
用mysqldump远程备份mysql数据库 mysqldump是备份mysql数据库的一种好工具.它相对于用phpmyadmin等备份工具更加快速,又避免受php.ini等的限制,在windows系 ...
- mysql数据库物理备份_MySQL数据库之xtrabackup物理备份(一)
(1)备份开始时会开启一个后台检测进程,实时检测mysql redo(已提交的事务)的变化,一旦发现redo中有新日志写入,立刻将日志记入后台日志文件xtrabackup_log中, (2)复制Inn ...
- linux 远程备份mysql数据库_使用脚本自动化远程备份MySQL数据库
通常情况下.MySQL都需要备份,备份的方法有很多种.下面是我用脚本配合计划任务完成的自动备份远程的数据库. 一. 确认备份方案: 备份机:ip192.168.8.51 数据库服务器:ip192.16 ...
- udt编写高性能服务器,基于UDT协议的Oracle数据库远程备份的设计和实现
摘要: 数据是企业的生命线,对于高度依赖信息的企业,各种灾难都有可能导致企业信息系统的瘫痪.如何尽量降低灾难给企业带来的负面影响并保证业务的连续性运营是需要高度重视的问题.如今Oracle数据库以其强 ...
- oracle如何exp远程备份,oracle exp远程数据库
通过exp命令对Oracle数据库进行备份操作(提供两种情况的备份:备份本地,备份远程的数据库) 通过exp命令可以对Oracle数据库进行备份操作,其命令含义是:exp 用户名/密码@数据库所在ip ...
最新文章
- TCP/IP详解--学习笔记(11)-TCP交互数据流,成块数据流
- Solaris下调整opt分区的inode结构
- linux通过ftp自动上传文件到服务器,Linux系统通过FTP上传文件到云服务器
- Qt中槽函数触发两次的两种场景分析
- python习题_新手练习:Python练习题目
- 第四届中国软件工程大会征文通知
- vue+three.js开发
- 论文阅读笔记(八)——Ultra-thin MobileNet
- Unity3D内存释放
- 黑色炫酷粒子html网站源码
- python批量删除行_用python批量删除sheet
- 万变不离CHP 天霆“交付”多元化应用
- mysql dcn_Tdsql DCN同步技术原理介绍
- 旧苹果短信导入新苹果手机上,iphone短信迁移
- 普利姆(prim)算法与迪杰斯特拉(dijestella)算法
- Java 如何判断一个字符串中是否包含某一 子字符串
- android edittext 排版,EditText和TextView出现中文、英文等string串的排版问题
- 奇兔recovery卡刷教程_vivo X6(双4G)刷Recovery教程
- hz什么梗_Hz是什么意思?
- java eclipse参考文献_java毕设论文参考文献.doc