XtraBackup

使用Xtrabackup对MySQL做主从复制

最后都变了- 提交于 2019-12-01 04:02:18
使用Xtrabackup对MySQL做主从复制 说明 xtrabackup mysqldump对于导出10G以下的数据库或几个表,还是适用的,而且更快捷。一旦数据量达到100-500G,无论是对原库的压力还是导出的性能,mysqldump就力不从心了。Percona-Xtrabackup备份工具,是实现MySQL在线热备工作的不二选择,可进行全量、增量、单表备份和还原。(但当数据量更大时,可能需要考虑分库分表,或使用 LVM 快照来加快备份速度了)。 2.2版本xtrabackup能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份,innobackupex通过perl封装了一层xtrabackup,对MyISAM的备份通过加表读锁的方式实现。2.3版本xtrabackup命令直接支持MyISAM引擎。 Xtrabackup优势: 无需停止数据库进行InnoDB热备 增量备份MySQL 流压缩到传输到其它服务器 能比较容易地创建主从同步 备份MySQL时不会增大服务器负载 replication 为什么要做主从复制? 我想这是要在实施以前要想清楚的问题。是为了实现读写分离,减轻主库负载或数据分析? 为了数据安全,做备份恢复?主从切换做高可用? 大部分场景下,以上三个问号一主一从都能够解决,而且任何生产环境都建议你至少要有一个从库,假如你的读操作压力特别大,甚至要做一主多从

教你使用mysqldump & xtrabackup 备份数据库的简单方法

旧时模样 提交于 2019-11-30 12:50:43
数据备份是数据库的数据保护措施之一,数据备份可以使用工具轻松实现,结合定时任务也能一定程度上保证我们数据的安全。下面教你用mysqldump & xtrabackup 备份数据库的简陋方法 mysqldump的简单用法 #备份(导出)所有数据库的数据和结构(注意:这种方式备份,还原时,无需先创建数据库,可直接导入) mysqldump -u root -p 'password' --all-databases > all.sql #备份指定数据库(db1和db2) mysqldump -u root -p 'password' ---databases db1 db2 > db1-db2.sql #恢复(导入)所有库 mysql -u root -p 'password' < all.sql #导入某个库(只导入db1这个数据库,db2不导入) mysql -u root -p 'password' db1 < db1-db2.sql xtrabackup工具(不支持mysql5.7) 介绍,能对InnoDB引擎进行增量备份(备份是不加锁),对MyISAM引擎全量备份(备份时会锁写) 第一:安装xtrabackup wget https://www.percona.com/redir/downloads/percona-release/redhat/percona-release

innobackupex在线备份及恢复

时光怂恿深爱的人放手 提交于 2019-11-30 12:25:20
#一、安装 ###1.下载源码: wget https://www.percona.com/downloads/XtraBackup/XtraBackup-2.1.5/source/percona-xtrabackup-2.1.5.tar.gz ###2.安装依赖包: yum install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bzr bison libtool ncurses-devel zlib-devel ###3.解压源码包: tar -zxvf percona-xtrabackup-2.1.5.tar.gz cd percona-xtrabackup-2.1.5 ###4.编译安装 目录中的./utils/build.sh脚本会根据指定的引擎版本,自动解压缩适当的MySQL源码包并进行编译,这是最简单的安装方式。 直接执行: ./utils/build.sh 出现如下提示: [root@test1 percona-xtrabackup-2.1.5]# ./utils/build.sh Build an xtrabackup binary against the specified InnoDB flavor. Usage: build.sh CODEBASE where CODEBASE can

Linux Shell DAY30

北城以北 提交于 2019-11-30 10:11:19
96.并发备份数据库 97.打印三角形 98.截取字符串 99.修改文本格式 100.自定义rm 并发备份数据库 题目要求 需求背景: 领导要求小明备份数据库服务器里面的100个库(数据量在几十到几百G),需要以最快的时间完成(5小时内),并且不能影响服务器性能。 核心要点 通过命名管道FIFO来实现 exec 100<>test.fifo #把100描述符和test.fifo绑定在一起 代码 #!/bin/bash #这个脚本用来并发备份数据库 ##假设100个库的库名、host、port以及配置文件路径存到了一个文件里,文件名字为/tmp/databases.list ##格式:db1 10.10.10.2 3308 /data/mysql/db1/my.cnf ##备份数据库使用xtrabackup(由于涉及到myisam,命令为inoobackupex) exec &> /tmp/mysql_bak.log if ! which innobackupex &>/dev/nll then echo "安装xtrabackup工具" rpm -ivh http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm && \ yum install -y

xtrabackup8安装和使用

纵然是瞬间 提交于 2019-11-30 07:55:14
----------centos 7安装xtrabackup8.0.4--------------------------- 1.下载 #8.0版本 $ wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-8.0.4/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.4-1.el7.x86_64.rpm 2.安装 yum localinstall percona-xtrabackup-80-8.0.4-1.el7.x86_64.rpm 卸载命令如下: yum remove percona-xtrabackup 3.使用备份 rpm的安装方式默认安装路径为:/usr/bin/xtrabackup /usr/bin/xtrabackup --defaults-file=/opt/mha/mysql8/conf/my.cnf --host=localhost --user=root --password=mysql --port=13306 --socket=/opt/mha/mysql8/mysql.sock --backup --target-dir=/opt/mha/xbackup/ -------------异地恢复----------------

innobackupex备份过程(有图有真相)

懵懂的女人 提交于 2019-11-29 21:38:11
innobackupex命令构成: 1. Innobackupex内部封装了xtrabackup和mysqldump命令; 2. Xtrabackup是用来备份innoDB表的,内部实现对innoDB的热备份; 3. Mysqldump负责完成非innoDB表的备份; innobackupex备份过程: 过程说明: 1. Innobackupex启动之后,首先启动xtrabackup进程,innobackupex进入等待状态; 2. Xtrabackup启动两个线程:redo log复制线程和ibd复制线程,redo log线程从最近的检查点开始复制,ibd线程开始复制innodb表的ibd文件。Ibd文件复制完成后,通过创建xtrabackup_suspended_2文件,唤醒innobackupex进程开始工作。Redo log线程继续工作。 3. Innobackupex进程检测到xtrabackup_suspended_2文件存在后,执行备份锁,取的一致性位点,开始复制非innoDB文件。非innoDB文件复制完后,innobackupex开始执行LOCK BINLOG FOR BACKUP,获取binlog的位置,并记录到xtrabackup_binlog_info文件中。 4. Innobackupex进程完成上述操作后,通过删除xtrabackup_suspended

MySQL 5.7使用xtabackup报错解决

馋奶兔 提交于 2019-11-29 19:22:29
报错信息: InnoDB: An optimized (without redo logging) DDLoperation has been performed. All modified pages may not have been flushed to the disk yet. 为了解决这个错误,percona新加了三个参数xtrabackup --lock-ddl, xtrabackup --lock-ddl-timeout, xtrabackup --lock-ddl-per-table。 MySQL5.7在记录redo log时会跳过某些DDL。在MySQL5.7当中,创建索引分为三个阶段 1:扫描clustered index,生成索引项到sort buffer当中,当sort buffer满了的时候,会写入到临时文件当中。 2:多个线程对临时文件或者sort buffer中的索引项进行排序 3:排序完成后插入到 B-tree当中。 在此之前,MySQL创建索引的时候会调用insert APIs逐条进行 B-tree的插入,这种插入方式会打开 B-tree游标,找到位置,乐观插入。如果要插入的 B-tree节点page页满了,就会拆分或者合并 B-tree的page页,我们称之为悲观插入。这样创建索引就会引起不断分裂和合并,并且还有查找插入位置,代价会比较昂贵。

专职DBA-Xtrabackup物理备份恢复

不问归期 提交于 2019-11-29 12:19:22
专职DBA-Xtrabackup物理备份恢复 Xtrabackup是Percona公司专门针对MySQL数据库开发的一款开源免费的物理热备工具。 可以对InnoDB和XtraDB事物引擎的数据库实现非阻塞(即不锁表)方式备份。 可以对MyISAM非事物引擎实现锁表方式备份。 1.Xtrabackup的主要特点: 直接复制物理文件,备份恢复数据速度快,安全可靠。 备份期间执行的事物不会间断,备份InnoDB数据不会影响业务。 备份期间不会增加太多数据库的性能压力。 支持对备份的数据进行自动校验。 支持全量、增量、压缩备份及流备份。 支持在线迁移表以及快速创建新的从库。 支持几乎所有版本的MySQL分支。 2.首先你要理解数据库里面的几个数据文件: .idb文件 以独立表空间存储的InnoDB引擎类型的数据文件。 .ibdata文件 以共享表空间存储的InnoDB引擎类型的数据文件。 .frm文件 存放与表相关的元数据(meta)信息以及表结构的定义信息。 .MYD文件 存放MyISAM引擎表的数据文件。 .MYI文件 存放MyISAM引擎的索引信息文件。 3.事务型引擎的ACID特性 MySQL的InnoDB是事务型引擎。 MariaDB的XtraDB是事务型引擎。 事务型引擎的共同特性:4个 原子性:事务的所有SQL语句操作,要么全部成功,要么全部失败。 一致性

mysql .xb 数据库备份恢复

我的梦境 提交于 2019-11-29 09:06:00
mysql .xb数据库备份恢复 https://cloud.tencent.com/document/product/236/33362 备份文件先经过 qpress 压缩,后经过 xbstream 打包 1, 安装 xbstream yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm yum install percona-xtrabackup-24 报错: https://blog.csdn.net/xinjing2015/article/details/88178789 The GPG keys listed for the "Percona-Release YUM repository - x86_64" repository are already installed but they are not correct for this package. Check that the correct key URLs are configured for this repository. Failing package is: Percona-Server-client-56-5.6.43-rel84.3.el7

《入门MySQL—备份与恢复》

与世无争的帅哥 提交于 2019-11-29 08:02:39
本篇文章将主要讲解 MySQL 数据库数据备份与恢复相关知识,主要聚焦于逻辑备份,介绍mysqldump工具的使用以及恢复方法。 这里简单讲下物理备份和逻辑备份的概念: 物理备份:备份数据文件,转储数据库物理文件到某一目录。物理备份恢复速度比较快,但占用空间比较大,MySQL中可以用 xtrabackup 工具来进行物理备份。 逻辑备份:对数据库对象利用工具进行导出工作,汇总入备份文件内。逻辑备份恢复速度慢,但占用空间小,更灵活。MySQL 中常用的逻辑备份工具为mysqldump。 1.备份全部数据库 若想用mysqldump备份整个实例,可以使用 --all-databases 或 -A 参数: mysqldump -uroot -pxxxxxx --all-databases > /tmp/all_database.sql mysqldump -uroot -pxxxxxx -A > /tmp/all_database.sql 2.备份部分数据库 有的时候我们会遇到只需要备份某些库的需求,这个时候我们就可以使用 --databases 或 -B参数了,该参数后面跟数据库名称,多个数据库间用空格隔开。 mysqldump -uroot -pxxxxxx --databases testdb1 testdb2 > /tmp/testdb.sql mysqldump -uroot