Xtrabackup介绍
Xtrabackup是由percona开源的免费数据库热备份软件,它能对InnoDB数据库和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁);
mysqldump备份方式是采用的逻辑备份,其最大的缺陷是备份和恢复速度较慢,如果数据库大于50G,mysqldump备份就不太适合。 安装:
用默认的yum安装的版本较低,不支持mysql5.7,需要如下操作方能安装较新的版本
yum install https://www.percona.com/downloads/percona-release/redhat/latest/percona-release-0.1-4.noarch.rpm yum install percona-xtrabackup-24
这种方式简单粗暴。其他方法经常会出现缺少依赖的情况,处理起来很耗时间,如下面方法:

下载官网https://www.percona.com/downloads/XtraBackup/

下载XtraBackup rpm包
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm

安装依赖包:
yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL perl-Digest-MD5
rpm -ivh ftp://rpmfind.net/linux/dag/redhat/el6/en/x86_64/dag/RPMS/libev-4.15-1.el6.rf.x86_64.rpm
rpm -ivh http://mirror.centos.org/centos/6/os/x86_64/Packages/numactl-2.0.9-2.el6.x86_64.rpm

安装XtraBackup
rpm -ivh percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm

备份:

将备份的数据存在本地

innobackupex --defaults-file=/etc/my.cnf --user=root --password=64704b  /www/219bake

将备份的数据压缩后存在本地

innobackupex -p057ab  --stream=tar /tmp | gzip > /usr/local/src/xtraback/backup/241bake.tar.gz

将备份的数据压缩后以流的方式传输到存储服务器

innobackupex -p64704bf  --stream=tar /tmp | ssh root@192.168.6.250 \ "gzip > /www/bake/250/20180426.tar.gz"

还原:

将事物日志应用到备份的数据中

innobackupex --apply-log --redo-only --use-memory=1G ./

将mysql停止,并删除mysql的所有数据

service mysqld stop

rm -rf /home/www/server/data/*

将备份数据拷贝回/home/www/server/data
innobackupex --datadir=/home/www/server/data --copy-back ./

设置mysql访问权限

chown -R mysql.mysql /home/www/server/data/*

重启mysql

service mysqld restart

登录mysql,设置从主服务器同步数据

set global server_id=111;

从xtrabackup_binlog_pos_innodb获取log file name和位置

cat xtrabackup_binlog_pos_innodb

设置从主库同步

change master to  master_host='192.168.7.*',master_user='liaogs',master_password='adfadfasdf',master_log_file='mysql-bin.000893',master_log_pos=1008633;

start slave;

show slave status \G;

重置slave

reset slave;

另外

数据库恢复MySQL [ERROR] Table 'mysql.user' doesn't exist
删除了数据库文件后,需要重新初始化mysql:
/www/server/mysql/bin/mysql_install_db --user=mysql --basedir=/www/server/mysql --datadir=/www/server/mysql/data
在5.6.8之后的版本,用此种方式初始化后,root密码将会存放在 /root/.mysql_secret中,需要用alert重置密码
ALTER USER 'root'@'%' IDENTIFIED BY 'c3ea96bbd5bf0a94a87a57efd417807d';

最新文章

  1. 使用JDBC访问SQLServer 2008
  2. [转]oracle中使用set transaction设置事务属性
  3. Peer-to-Peer 综述
  4. 拼写纠正 Artificial Intelligence: A Modern Approach
  5. Selenium2学习-026-WebUI自动化实战实例-024-获取页面元素
  6. lintcode:完美平方
  7. ArcGIS Engine中的8种数据访问
  8. poj 3181 Dollar Dayz
  9. Java新手入门的30个基本概念
  10. 基于C++的顺序表的实现
  11. 201521123086《JAVA程序设计》第二周学习总结
  12. 六:在线工具网站,让你PC上要装的软件少一半!
  13. day4 liaoxuefeng---函数式编程
  14. silverlight 基本信息学习随笔
  15. 动态记忆网络(DMN)
  16. [转帖]Loading Data into HAWQ
  17. 步步为营-54-DOM
  18. C#_添加xml文件
  19. hdu 4548 初始化+二分 *
  20. C语言-二进制技巧

热门文章

  1. [bzoj3033]太鼓达人 题解(搜索)
  2. RN 真机roload
  3. tomcat8.5在centos部署阿里云免费证书
  4. 炼数成金数据分析课程---14、Logistic回归
  5. python sort 和sorted排序
  6. 修改 Chrome浏览器主页被劫持 chrome 主页被篡改成hao.qquu8.com的解决方案
  7. Valgrind学习
  8. Install .NET Core Runtime on Linux Ubuntu 16.04 x64
  9. unicode_start - 将控制台设为Unicode模式.
  10. loop find column