大家好,我是anyux。本文介绍MySQL批量操作及XBK安装简介。
批量操作
以下语句只能在屏幕显示出拼接后的语句,但是无法导入到文件中
selectconcat("alter table ",table_schema," ",table_name," discard tablespace;")frominformation_schema.tableswheretable_schema='world';
写入拼接语句到文件
需要设置导出数据限制,重启数据库
vim /etc/my.cnf
[mysqld]
secure-file-priv=
selectconcat("alter table ",table_schema," ",table_name," discard tablespace;")frominformation_schema.tableswheretable_schema='world'intooutfile'/tmp/discard.sql';
此时/tmp/discard.sql就是一个sql文件,配置mysql -e命令,与定时任务配置,可以完成自动化操作,节省人力成本
导出数据行到文件
select*fromcityintooutfile'/tmp/city.csv';
cat /tmp/city.csv
导出结果,如下图所示,可以使用Excel打开,使用此种方式,可以用作异构平台数据迁移
Xtrabackup
安装XBK
wget-O/etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum-yinstall perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL libdev
wgethttps://www.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.18/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.18-1.el7.x86_64.rpm
rpm-ivhpercona-xtrabackup-24-2.4.18-1.el7.x86_64.rpm
查看版本
innobackupex--version
备份的过程
1.针对非InnoDB进行锁表备份,copy所有的非innoDB表文件
在恢复时,xbk会调用InnoDB引擎的CSR过程,将数据和redo的LSN号追平,然后进行一致性恢复
恢复过程
模拟了CSR的全过程,在恢复之前,将数据的LSN号和redo LSN号追平,恢复方法是直接复制
XBK的全备和恢复
mkdir -p /tmp/db
备份
innobackupex --defaults-file=/etc/my.cnf --user=root --password='root' -S /data/mysql/mysql.sock --no-timestamp /tmp/db
恢复
innobackupex--apply-log/tmp/db
再复制文件即可
看到下图中completed表示安装成功
备份文件介绍
除正常的数据库文件外,还包含其他文件,如下
xtrabackup_binlog_info 备份过程中二进制信息
记录二进制文件名称,及pos号,gtid号,可以作为二进制日志截取日志的起点
cd/tmp/db
catxtrabackup_binlog_info
xtrabackup_checkpoints 记录当前备份类型,全备是0,增量是上次备份的结束位置。备份前的to_lsn号,备份后的last_lsn号,下次增量备份的起始位置,默认差9个数值,用来做redo维护
catxtrabackup_checkpoints
xtrabackup_info 所有备份信息
catxtrabackup_info
xtrabackup_logfile redo二进制文件 备份过程中的日志文件
strings xtrabackup_logfile
欢迎在评论区一起讨论,质疑。文章都是手打原创,每天最浅显的介绍运维、数据库相关的技术,喜欢我的文章就关注一波吧,可以看到最新更新和之前的文章。
领取专属 10元无门槛券
私享最新 技术干货