一、了解innobackupex

1、mysqldump

mysql逻辑备份工具,作用于服务器本地,不需要额外安装插件

可以单表备份,备份为sql文件形式、方便,在多个场景通用

可通过shell命令实现定时备份,但备份时如果用户有操作,容易造成脏数据

将数据库备份到服务器本地sql文件,属于逻辑备份,不受数据库引擎限制

只能全量备份,恢复的话只能覆盖原有数据,或者恢复到新的表中,再手动处理

单线程,数据量大时备份耗时较长,且锁表容易引对不支持事务的表造成影响

2、mysqlhotcopy

需要安装perl-DBD-mysql包,只能运行、备份在服务器本地

文件的快速备份,属于物理备份,恢复时只需要复制文件到目录下替换源文件

只支持MyISAM引擎的MySQL数据库备份

3、innobackupex

属于物理备份,需要安装额外的插件,支持全量备份&增量备份

备份、恢复速度快,支持远程、并发、限速备份,支持加密传输到本地

支持 MyISAM (会锁表,似乎不支持增量?)跟 InnoDB

二、安装

注意innobackup版本与mysql版本,innobackup2.2不支持mysql5.7+

image.png

2、开始安装

[root@localhost ~]# yum -y install https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.12/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.12-1.el7.x86_64.rpm

image.png

三、配置远程免密登录

如果要实现远程备份,必须配置远程免密登录,否则备份过程会没有报错,但是一直卡死在‘log scanned up to’,导致无法继续备份

180920 17:15:39 >> log scanned up to (1023762231)

180920 17:15:40 >> log scanned up to (1023762231)

180920 17:15:41 >> log scanned up to (1023762231)

....

但如果log scanned up to后面括号中的数值有变动,则并未卡死,仍在备份中

生成秘钥,如果已经生成过,则跳过这一步

ll ~/.ssh/ //如果已有rsa文件,则是已生成

ssh-keygen -t rsa

一路回车,不需要其他信息

添加公钥到远程主机

ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@主机IP

会提示输入远程主机用户名对应的密码,必须输入不能留空

最后会提示通过‘ssh 用户名@IP’命令确认是否成功开启免密登录

image.png

四、备份

定时备份

定时通过innobackupex备份数据库、scp传送到指定

#!/bin/bash

cd /home

if [ ! -d "crontab" ];then

mkdir crontab

else

echo "文件夹已经存在"

fi

cd crontab

date=`date +%Y%m%d`

echo `date +%Y%m%d-%H%M`:开始备份 >> backup_db.log

echo "------ start backup db ------"

ssh root@39.108.123.165 \ "mkdir /home/backup/database/`date +%Y%m%d`"

echo `date +%Y%m%d-%H%M`:创建目录-$date >> backup_db.log

innobackupex --defaults-file=/etc/my.cnf --no-lock --user 'root' --password 'password123' --stream=tar ./ | ssh root@192.1168.2.100 \ "cat - > /home/backup/database/`date +%Y%m%d`/`date +%H-%M`-backup.tar"

echo `date +%Y%m%d-%H%M`:备份结束 >> backup_db.log

echo "------ end backup db ------"

五、还原

1、全量还原

1)解压tar包到目录/backup/full/05-00-backup中

tar -xvf 05-00-backup.tar -C /backup/full/05-00-backup

2)停止mysql服务,并移除mysql目录下的文件,当然可以先打包备份下以防万一

service mysqld stop

rm -rf /var/lib/mysql/*

mysql目录并不一定是/var/lib/mysql/,可以运行innobackupex看下目录所在

[root@localhost ~]# innobackupex

xtrabackup: recognized server arguments: --datadir=/var/lib/mysql

190116 16:37:40 innobackupex: Missing argument

可以看到--datadir=/var/lib/mysql

3)开始恢复(apply-log),应用备份文件,回滚未提交的事务

innobackupex --defaults-file=/etc/my.cnf --user=root --password=hello12345 --use-memory=1G --apply-log /backup/full/05-00-backup

--use-memory=1G是为了加快速度,apply-log之后目标文件下的文件已经准备就绪

innobackupex --defaults-file=/etc/my.cnf --user=root --password=hello12345 --copy-back /backup/full/05-00-backup

4)重新设定mysql文件夹及子文件用户群组为mysql

chown -R mysql:mysql /var/lib/mysql/

5)启动MySQL

service mysqld start

mysql远程备份工具_innobackupex实现MySQL远程备份相关推荐

  1. mysql的常用的备份工具_39、mysql常用备份工具

    备份和恢复的作用 1.做灾难恢复 2.做审计 3.测试(备份数据做恢复测试) 备份类型: 根据备份时,数据库服务器是否在线 冷备:cold backup 服务器处于离线状态 温备:warm backu ...

  2. 【linux系统编程】远程登录工具ssh | 跨主机远程拷贝scp

    远程登录工具ssh && 跨主机远程拷贝scp 正文开始@Assassin 目录: 远程登录工具ssh && 跨主机远程拷贝scp 1. ssh简介: 2. ssh基本 ...

  3. GoodSync 数据自动同步备份工具VS傲梅轻松备份系统数据备份工具 哪款更好?

    备份和同步软件的使用越来越广泛,因为在这个数据驱动的时代,数据的备份和恢复非常重要.在这里我想向大家推荐两款备份和同步软件--GoodSync和傲梅轻松备份. GoodSync是一款备份和同步软件,它 ...

  4. 使用mysql备份工具innobackupex进行本地数据备份、恢复操作实例

    innobackupex 支持所有mysql引擎数据备份恢复安装配置方法及原理介绍,访问下面链接 http://michaelkang.blog.51cto.com/1553154/1216826 1 ...

  5. linux mysql异地备份工具,Linux中MySQL的异地自动备份

    Linux中MySQL的异地自动备份 文/李来祥 [摘要]@@ 随着校园网应用的日益丰富,Linux系统下MySQL数据库的应用也越来越广泛.然而数据的意外丢失对于校园网应用来说是很大的损失,业务数据 ...

  6. mysql免费管理工具2017_15个MySql(其他数据库)管理工具

    工欲善其事,必先利其器.几乎每个开发人员都有最钟爱的 MySQL 管理工具,它帮助开发人员在许多方面支持包括 PostgreSQL,MySQL,SQLite,Redis,MongoDB 等在内的多种数 ...

  7. MySQL - 使用trace工具来窥探MySQL是如何选择执行计划的

    文章目录 生猛干货 Pre 演示Demo trace工具使用 Trace分析 Trace解读 搞定MySQL 生猛干货 带你搞定MySQL实战,轻松对应海量业务处理及高并发需求,从容应对大场面试 Pr ...

  8. mysql数据恢复工具_mysql文件恢复软件|Mysql数据库修复工具(Recovery for MySQL)下载 V2.7.22255.1 官方版 - 比克尔下载...

    Recovery for MySQL是一款Mysql数据库修复工具,也可以用来恢复mysql文件,支持3.x.4.x.5.x等多个版本,支持myd和myi文件,它可以将检索到的数据保存至SQL脚本中, ...

  9. 如何选择MySQL的备份工具

    数据库备份的重要性毋庸置疑,可以说,它是数据安全的最后一道防线.鉴于此,对于备份,我们通常会做以下要求: 多地部署对于核心数据库,我们通常有两地三中心的部署要求.对于备份来说,也是如此.一个备份应该有 ...

最新文章

  1. 全面升级!星环科技基础软件再升级,赋能数字中国建设
  2. 使用PlantText画时序图分析业务流程
  3. 深入剖析Java即时编译器(上)
  4. 计算机技术综合应用,浅谈计算机技术综合应用能力培养.pdf
  5. CSDN博客代码块代码没有高亮颜色解决办法
  6. Exchange2003的设定及安全管理
  7. mysql 默认sql mode_MySQL的sql_mode模式说明及设置
  8. 苹果暗黑模式_【蜜茶原创】微信最终妥协苹果,暗黑模式正式上线!
  9. graphql java demo_GraphQL学习,Java简单实现
  10. c语言编程实现二叉树的镜像,C/C++知识点之C++实现利用(前序和中序生成二叉树)以及(二叉树的镜像)...
  11. Jenkins 使用slave管理进行持续集成测试说明
  12. ImportError: No module named cv2问题的解决方法(修改python默认版本)
  13. CIO思考:混合云为行业注入了哪些活力?
  14. paip.提升用户体验----记住用户名与自动登录
  15. iOS 应用内付费(IAP)开发步骤
  16. 证券交易所的运作系统
  17. 纯前端实现验证码功能
  18. 微信小程序-slot插槽
  19. fir1截止频率计算_如果给定通带截止频率和阻带截止频率以及阻带最小衰减,如何用窗函数法设计线性相位低通滤波器?请写出设计...
  20. vue-devtools工具点击open in editor 自动跳转到对应的组件页面

热门文章

  1. vue点击按钮上传图片_关于javascript:Vue-点击按钮提交表单
  2. mysql数据结构_mysql的底层数据结构
  3. 超实用!18 个开箱即用的 Shell 脚本,拿好了~
  4. 数学和物理的共同演化
  5. 文本显示变量_【RPA课堂】UiPath中的变量、数据类型和组件
  6. Wordpress不同页面显示不同小工具
  7. 论文翻译——FingerSound:Recognizing unistroke thumb gestures using a ring
  8. html 中 标签里面的id 和 name 有什么区别?
  9. strlen() Bug
  10. 简单、有效、全面的Kubernetes监控方案