最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

xtrabackup简介_MySQL

来源:动视网 责编:小采 时间:2020-11-09 18:07:57
文档

xtrabackup简介_MySQL

xtrabackup简介_MySQL:bitsCN.com mysql的备份方式 1.mysqldump 效率比较低,备份和还原的速度都很慢,任何数据插入和更新操作都会被挂起 2.mysqlhotcopy mysqlhotcopy 是专门针对myisam 数据表进行备份,备份的过程中,任何数据插入和更新操作都会被挂起 3.准备一台从服务
推荐度:
导读xtrabackup简介_MySQL:bitsCN.com mysql的备份方式 1.mysqldump 效率比较低,备份和还原的速度都很慢,任何数据插入和更新操作都会被挂起 2.mysqlhotcopy mysqlhotcopy 是专门针对myisam 数据表进行备份,备份的过程中,任何数据插入和更新操作都会被挂起 3.准备一台从服务


bitsCN.com

mysql的备份方式


1.mysqldump
效率比较低,备份和还原的速度都很慢,任何数据插入和更新操作都会被挂起

2.mysqlhotcopy
mysqlhotcopy 是专门针对myisam 数据表进行备份,备份的过程中,任何数据插入和更新操作都会被挂起

3.准备一台从服务器,专门做备份(master-slave方式)

4.xtrabackup 是 percona 的一个开源项目,可热备份innodb ,XtraDB,MyISAM(会锁表)

Xtrabackup有两个主要的工具:xtrabackup、innobackupex
xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表
innobackupex-1.5.1则封装了xtrabackup,是一个脚本封装,所以能同时备份处理innodb和myisam,但在处理myisam时需要加一个读锁

相比之下 xtrabackup 备份比较靠谱

下载 xtrabackup-1.6-245.rhel5.x86_.rpm
安装 rpm -ivh xtrabackup-1.6-245.rhel5.x86_.rpm

备份(xtrabackup只备份数据文件,并不备份数据表结构(.frm))
xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/bak/
恢复(执行两次)
xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/bak/
xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/bak/

二、 增量备份

对比innobackupex和xtrabackup,innobackupex操作起来更方便,但是innobackupex会有短暂的锁表.xtrabackup备份还有另一个重要特性:增量备份.

1. 全量备份
xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/bak/

2. 增量备份
xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/bak/ --incremental-basedir=/bak/increm/

在增量备份的目录下,数据文件都是以.delta结尾的。增量备份只备份上一次全量备份之后被修改过的page,所以增量备份一般只暂用较少的空间。

3. 增量备份恢复
分别对全量、增量备份各做一次prepare操作。
xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/bak/
xtrabackup --prepare --target-dir=/bak/ --incremental-dir=/bak/increm/

/bak/下的数据文件就可以直接放到你的MySQL数据目录下,恢复数据了。

一般的备份 比如不会换全新的环境 用xtrabackup 就可以了

在不停生产的情况下备份数据给slave

首先确保两边的/etc/my.cnf 文件里边都指定了datadir

接着备份数据:
innobackupex-1.5.1 --defaults-file=/etc/my.cnf --stream=tar --user=root --password=**** --port=3306 --slave-info /bak | gzip>/bak/bak_mysql.tar.gz

将bak_mysql.tar.gz cp 到另一台机器上
scp /bak/bak_mysql.tar.gz root@host:/home/bak_mysql.tar.gz

解压bak_mysql.tar.gz到/bak
tar -ixvf mysqlbak.tar(一定要加i 参数 我也不知道为什么)

恢复先 --apply-log 再 --copy-back
innobackupex-1.5.1 --defaults-file=/etc/my.cnf --user=root --password=XXXX --port=3306 --apply-log /bak

--copy-back这里容易报错
(innobackupex-1.5.1: Copying directory '/bak/tech_soft_drp_ywmy'
innobackupex-1.5.1: Copying directory '/bak/mysql'
mkdir: 无法创建目录 “arb/mysql/mysql”: 文件已存在
innobackupex-1.5.1: Error: Failed to create directory 'arb/mysql/mysql' : 没有那个文件或目录 at /usr/bin/innobackupex-1.5.1 line 336.)
我也不知道咋整。好像是官方1bug 见https://bugs.launchpad.net/percona-xtrabackup/+bug/737569

我看了看/bak目录 决定把mysql test 等自带的一些库直接rm 了。执行已下命令成功

innobackupex-1.5.1 --defaults-file=/etc/my.cnf --user=root --password=XXXX --port=3306 --copy-back /bak

重启数据库服务又有问题
(110719 19:30:16 mysqld_safe Starting mysqld daemon with databases from arb/mysql
110719 19:30:16 [Note] Plugin 'FEDERATED' is disabled.
110719 19:30:16 InnoDB: The InnoDB memory heap is disabled
110719 19:30:16 InnoDB: Mutexes and rw_locks use GCC atomic builtins
110719 19:30:16 InnoDB: Compressed tables use zlib 1.2.3
110719 19:30:16 InnoDB: Using Linux native AIO
110719 19:30:16 InnoDB: Initializing buffer pool, size = 2.0G
110719 19:30:16 InnoDB: Completed initialization of buffer pool
110719 19:30:16 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ib_logfile0
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
110719 19:30:16 mysqld_safe mysqld from pid file arb/mysql/r410.pid ended)


不知道啥情况。网上搜搜好像是权限问题 直接将mysql 目录 chmod 777 -R mysql 重启服务好了

菩萨保佑 问题好了

将my.cnf 配置成server-id=2 主从配置在这里不多提了
CHANGE MASTER TO MASTER_HOST='xxxx',MASTER_USER='xx',MASTER_PASSWORD='xxx',MASTER_LOG_FILE='mysql-bin.000047',MASTER_LOG_POS=43446639

MASTER_LOG_FILE这个值去/bak 下面的 xtrabackup_binlog_info 找

大功告成

省了以前通宵用mysqldump 来同步数据再做主从同步

这东东是个神器

bitsCN.com

文档

xtrabackup简介_MySQL

xtrabackup简介_MySQL:bitsCN.com mysql的备份方式 1.mysqldump 效率比较低,备份和还原的速度都很慢,任何数据插入和更新操作都会被挂起 2.mysqlhotcopy mysqlhotcopy 是专门针对myisam 数据表进行备份,备份的过程中,任何数据插入和更新操作都会被挂起 3.准备一台从服务
推荐度:
标签: 介绍 mysql 数据表
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top