今天,我将和大家谈谈如何在mysql备份中使用xtrabackup。很多人可能不太了解。为了让大家更好的了解,边肖为大家总结了以下内容。希望你能从这篇文章中有所收获。
mysql的备份方法
1.mysqldump
效率低,备份和恢复速度慢,任何数据插入和更新操作都将暂停。
2.mysqlhotcopy
Mysqlhotcopy专用于备份myisam数据表。在备份过程中,任何数据插入和更新操作都将暂停。
3.为备份准备从属服务器(主从模式)
4.xtrabackup是percona的开源项目,可以热备份innodb、XtraDB、MyISAM(可以锁表)
Xtrabackup有两个主要工具:Xtrabackup和innobackupex。
Xtrabackup只能备份InnoDB和XtraDB数据表,不能备份MyISAM数据表。
Innobackupex-1.5.1封装了xtrabackup,这是一个脚本包,因此可以同时备份和处理innodb和myisam,但在处理myisam时需要添加读锁。
相比之下,xtrabackup备份更可靠。
下载xtra backup-1.6-245 . rhel 5 . x86 _ 64 . rpm。
安装rpm-IVH Xtra备份-1.6-245
Backup (xtrabackup只备份数据文件,不备份数据表结构(。frm))
xtra backup-defaults-file=/etc/my . CNF-backup-target-dir=/bak/
恢复(两次)
xtra backup-defaults-file=/etc/my . CNF-prepare-target-dir=/bak/
xtra backup-defaults-file=/etc/my . CNF-prepare-target-dir=/bak/
第二,增量备份
与innobackupex和xtrabackup相比,innobackupex操作更方便,但innobackupex会有一个短锁表。xtrabackup备份还有另一个重要功能:增量备份。
1.完全备份
xtra backup-defaults-file=/etc/my . CNF-backup-target-dir=/bak/
2.增量备份
xtra backup-defaults-file=/etc/my . CNF-backup-target-dir=/bak/-increment-basedir=/bak/increm/
在增量备份的目录中,所有数据文件都以。德尔塔。增量备份仅备份自上次完全备份以来修改过的页面,因此增量备份通常只是暂时占用较少的空间。
3.增量备份恢复
分别准备一次完整备份和增量备份。
xtra backup-defaults-file=/etc/my . CNF-prepare-target-dir=/bak/
xtra backup-prepare-target-dir=/bak/-increment-dir=/bak/increm/
/bak/可以直接放入你的MySQL数据目录中恢复数据。
一般备份,如不改变到全新的环境,可以用xtrabackup完成。
在不停止生产的情况下将数据备份到从机。
首先,确保在/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
将bak_mysql.tar.gz解压到/bak
焦油一号
xvf 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 见
我看了看/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 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 d 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 来同步数据再做主从同步
看完上述内容,你们对如何mysql的备份中的xtrabackup有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/113347.html