暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL批量操作及XBK安装简介

anyux 2020-03-16
571

大家好,我是anyux。本文介绍MySQL批量操作及XBK安装简介。


批量操作

以下语句只能在屏幕显示出拼接后的语句,但是无法导入到文件中

 select concat("alter table ",table_schema," ",table_name," discard tablespace;") from information_schema.tables where table_schema='world';
复制

写入拼接语句到文件

需要设置导出数据限制,重启数据库

 vim /etc/my.cnf
 [mysqld]
 secure-file-priv=
复制
 select concat("alter table ",table_schema," ",table_name," discard tablespace;") from information_schema.tables where table_schema='world' into outfile '/tmp/discard.sql';
复制

此时/tmp/discard.sql就是一个sql文件,配置mysql -e命令,与定时任务配置,可以完成自动化操作,节省人力成本

导出数据行到文件

 select * from city into outfile  '/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 -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL libdev
 wget https://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 -ivh percona-xtrabackup-24-2.4.18-1.el7.x86_64.rpm
 
 查看版本
 innobackupex --version
复制

备份的过程

1.针对非InnoDB进行锁表备份,copy所有的非innoDB表文件

2.针对InnoDB表,立即触发checkpoint,立即记录一个LSN号,copy所有InnoDB表相关的文件(iddata2,ibd,frm),并将备份过程中产生新的数据变化的部分的redo一并备走

在恢复时,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
 cat xtrabackup_binlog_info
复制

xtrabackup_checkpoints 记录当前备份类型,全备是0,增量是上次备份的结束位置。备份前的to_lsn号,备份后的last_lsn号,下次增量备份的起始位置,默认差9个数值,用来做redo维护

 cat xtrabackup_checkpoints
复制

xtrabackup_info 所有备份信息

 cat xtrabackup_info
复制

xtrabackup_logfile redo二进制文件 备份过程中的日志文件

 strings xtrabackup_logfile
复制


欢迎在评论区一起讨论,质疑。文章都是手打原创,每天最浅显的介绍运维、数据库相关的技术,喜欢我的文章就关注一波吧,可以看到最新更新和之前的文章。



文章转载自anyux,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论