博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
xtrabackup备份还原(十一)
阅读量:6038 次
发布时间:2019-06-20

本文共 3190 字,大约阅读时间需要 10 分钟。

  hot3.png

innodb_support_xa={TRUE|FLASE}

存储引擎事务在存储引擎内部被赋予了ACID属性,分布式(XA)事务是一种高层次的事务,它利用“准备”然后“提交”(prepare-then-commit)两段式的方式将ACID属性扩展到存储引擎外部,甚至是数据库外部。然而,“准备”阶段会导致额外的磁盘刷写操作。XA需要事务协调员,它会通知所有的参与者准备提交事务(阶段1)。当协调员从所有参与者那里收到“就绪”信息时,它会指示所有参与者进行真正的“提交”操作。
此变量正是用于定义InnoDB是否支持两段式提交的分布式事务,默认为启用。事实上,所有启用了二进制日志的并支持多个线程同时向二进制日志写入数据的MySQL服务器都需要启用分布式事务,否则,多个线程对二进制日志的写入操作可能会以与原始次序不同的方式完成,这将会在基于二进制日志的恢复操作中或者是从服务器上创建出不同原始数据的结果。因此,除了仅有一个线程可以改变数据以外的其它应用场景都不应该禁用此功能。而在仅有一个线程可以修改数据的应用中,禁用此功能是安全的并可以提升InnoDB表的性能。作用范围为全局和会话级别,可用于选项文件,属动态变量。
sync_binlog = 1
mysql> LOCK TABLES mydb.tb1 READ, mydb.tb2 READ, ...
mysql> FLUSH TABLES mydb.tb1, mydb.tb2, ...
mysq> SET SQL_LOG_BIN=0;
mysql> SOURCE somefile.sql;

mysql> SET SQL_LOG_BIN=1;

percona:

    ibbackup: InnoDB online physical backup
        full
        incremental
    MyISAM: warm backup, full
    $5000
mysqldump
LVM --> mylvmbackup(perl scripts)
percona:
    xtrabackup
        xtradb: innodb的增强版
        innodb
xtrabackup+二进制日志;
mysql:

安装xtrabackup  下载地址http://www.percona.com/software/percona-xtrabackup

可以下载源码也可以下载rpm我这里使用rpm

yum install percona-xtrabackup-2.2.4-5004.el6.x86_64.rpm有依赖所以yum装[root@localhost ~]# rpm -ql percona-xtrabackup/usr/bin/innobackupex/usr/bin/xbcrypt/usr/bin/xbstream/usr/bin/xtrabackup/usr/share/doc/percona-xtrabackup-2.2.4/usr/share/doc/percona-xtrabackup-2.2.4/COPYING

安装完成

[root@localhost ~]# innobackupex --user=root /backup/发现报错了 可能版本太高换了个低版本可以[root@localhost ~]# rpm -e percona-xtrabackup[root@localhost ~]# rpm -ivh percona-xtrabackup-2.1.9-744.rhel6.x86_64.rpm warning: percona-xtrabackup-2.1.9-744.rhel6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEYPreparing...                ########################################### [100%]   1:percona-xtrabackup     ########################################### [100%][root@localhost backup]# innobackupex --user=root  --password= --host=localhost /backup/140919 16:16:51  innobackupex: Connection to database server closed140919 16:16:51  innobackupex: completed OK!

xtrabackup 从一个完全备份还原 

但是一般情况下,这个备份是不能用于恢复的,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件处于不一致的状态,我们现在就是要通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。

 innobackupex --apply-log /backup/2014-09-19_16-29-10/

删除数据库目录内容、初始化数据库内容

然后用命令

innobackupex --copy-back /backup/2014-09-19_16-29-10/ 恢复,注意恢复后的文件属主,组

启动mysql

差异备份

[root@localhost backup]# innobackupex --incremental /backup/ --incremental-basedir=/backup/2014-09-19_17-47-03/140919 17:49:20  innobackupex: Connection to database server closed140919 17:49:20  innobackupex: completed OK!

在次增量备份要指定第一次增量备份那个目录或者完全备份路径

[root@localhost backup]# innobackupex --incremental /backup/ --incremental-basedir=/backup/2014-09-19_17-42014-09-19_17-47-03/ 2014-09-19_17-49-14/ [root@localhost backup]# innobackupex --incremental /backup/ --incremental-basedir=/backup/2014-09-19_17-49-14/

准备还原操作

停掉数据库,删除数据目录所有内容(实际环境当中应该备份二进制)

innobackupex --apply-log --redo-only /backup/2014-09-19_17-47-03/innobackupex --apply-log --redo-only /backup/2014-09-19_17-47-03/ --incremental-dir=/backup/2014-09-19_17-49-14/innobackupex --apply-log --redo-only /backup/2014-09-19_17-47-03/ --incremental-dir=/backup/2014-09-19_17-53-49/chown  -R mysql.mysql ./*/etc/init.d/mysqld start

OK数据回来了!

转载于:https://my.oschina.net/kcw/blog/316365

你可能感兴趣的文章
Spring基于XML方式配置事务
查看>>
T-MBA学习营 | 寒窗十数载,我们原来并不会学习?
查看>>
log4j.properties模板
查看>>
Linux:信号(上)
查看>>
vmware虚拟化无法迁移虚拟机
查看>>
SQL UPDATE实现多表更新
查看>>
最近有个需求,就是把某个网址跳转到另外一个网址
查看>>
innobackupex 在增量的基础上增量备份
查看>>
Windows Server 2012 R2 DirectAccess功能测试(2)App1服务器安装及配置
查看>>
基于清单的启动器的实现
查看>>
外网用户通过citrix打印慢的解决方法
查看>>
STL容器的使用
查看>>
关于std::map
查看>>
JXL导出Excel文件兼容性问题
查看>>
VBoot1.0发布,Vue & SpringBoot 综合开发入门
查看>>
centos7 安装wps 后 演示无法启动
查看>>
git简单命令
查看>>
LAMP编译部署
查看>>
XenDesktop7.6安装部署入门教程
查看>>
HashMap的工作原理及HashMap和Hashtable的区别
查看>>