使用xtrabackup实现mysql定时热备份

打印 上一主题 下一主题

主题 831|帖子 831|积分 2493

1、原理:方案选型mysqldump是逻辑备份解决方案,备份恢复速度慢,工具获取方便,数据量少推荐重要用途是导出数据xtrababckup是物理热备份,速度快,适合大数据量xtrababckup支持innodb和MyISAM存储引擎,支持集成shell脚本,支持管道传输InnoDB支持完整和增量备份,不上只读锁MyISAM只有全量备份,会上只读锁,备份期间不可写xtrababckup版本号:percona-xtrabackup-24对应5.*版本;percona-xtrabackup-80对应8.*版本 增量备份原理:使用page的lsn号,如图7,8是lsn变化的page
 
 xtrabackup备份原理-时序图表示

 
结论:高效热备份使用xtrabackup 2、安装xtrabackup方式一:在线安装安装包管理器yum install https://repo.percona.com/yum/percona-release-1.0-20.noarch.rpmyum install percona-xtrabackup-24yum install -y percona-xtrabackup-24.x86_64方式二:编译安装从https://www.percona.com/downloads下载二进制安装包percona-xtrabackup-2.4.29-Linux-x86_64.glibc2.17.tar.gz,龙蜥操作系统选择generic

 
创建目录 /home/xtrabackup 二进制安装包上传此目录2.1 解压缩tar -zxvf percona-xtrabackup-2.4.29-Linux-x86_64.glibc2.17.tar.gz2.2 移动目录mv percona-xtrabackup-2.4.29-Linux-x86_64.glibc2.17 /usr/local/xtrabackup-2.4.292.3 设置软链接ln -sf /usr/local/xtrabackup-2.4.29/bin/* /usr/bin/2.4 查看版本号xtrabackup -v 3、xtrabackup命令说明
备份命令:xbstream :流式压缩,节省IO,tar压缩要先创建文件,流式压缩可以边生成边压缩innobackupex :总命令,包含其它命令,对MYISAM存储引擎,只能全量备份;对innodb引擎可以做增量备份,只存在于2.4版本,8版本已取消 4、xtrabackup做全量热备份#平凡热备份innobackupex --defaults-file=/etc/my.cnf --host=*.*.*.* --user=* --password=* --port=3306 /home/mysqlbackup#流式备份(打开流式IO)innobackupex --defaults-file=/etc/my.cnf --host=*.*.*.* --user=* --password=* --port=3306 --no-timestamp --stream=xbstream -> /home/mysqlbackup/backup.xbstream#带压缩流式备份innobackupex --defaults-file=/etc/my.cnf --host=*.*.*.* --user=* --password=* --port=3306 --compress --compress-threads=10 --no-timestamp --stream=xbstream -> /home/mysqlbackup/backup.xbstream 5、使用corn表达式+shell定时备份5.1 创建shell脚本cd /home/mysqlbackuptouch shell/bkmysql.sh#添加shell语句#mysql用户名与暗码BACKUP_NAME=*BACKUP_PW=*#数据库服务器ipBACKUP_HOST=*#设置备份文件地点的目录BACKUP_DIR=/home/mysqlbackup#mysql设置文件路径MYSQL_CNF=/etc/my.cnf#备份scp远程保存ipremote_host=*.*.*.*#备份文件集团侧保存路径remote_path=/home/mysql/backupfile #全量热备,约莫10秒time=$(date "+%Y-%m-%d %H:%M:%S")echo "执行全量热备份" ${time}filename="backup-$(date +%Y%m%d).xbstream"innobackupex --defaults-file=$MYSQL_CNF --host=$BACKUP_HOST --user=$BACKUP_NAME --password=$BACKUP_PW --port=3306 --compress --compress-threads=10 --no-timestamp --stream=xbstream -> $BACKUP_DIR/$filename#备份文件传输到文件服务器scp -r /home/mysqlbackup/$filename root@$remote_hostremote_pathecho "文件传输完毕"#保存最近三天的文件,别的的将被删除find $BACKUP_DIR -type f -name "*.xbstream" -mtime +3 -exec rm -f {} ;echo "汗青数据清算完毕" 5.2 #提升权限,授权文件可执行chmod -R 777 bkmysql.sh5.3 创建日志目录mkdir /home/mysqlbackup/log5.3 编辑crontab表达式crontab -e#添加定时任务,天天2点十分执行shell脚本10 2 * * * /home/mysqlbackup/shell/bkmysql.sh > /home/mysqlbackup/log/backup.log 2>&1 6、SSH免秘登录设置ssh localhost --产生.ssh的隐藏目录在每台机器上执行:ssh-keygen -t rsa --产生密钥对(一路回车)ssh-copy-id -i ~/.ssh/id_rsa.pub 远程机器ip免秘登录测试通过 7、恢复测试(mysql只能冷还原)7.1 制止mysql数据服务,清空数据目录包括表分区目录systemctl stop mysqldrm -rf /home/cnbm/mysql/data7.2 将流式备份的压缩文件还原到临时目录mkdir /home/temp#还原流式文件xbstream -x < /home/mysql/backupfile/backup-20241212.xbstream --decompress -C /home/temp(xbstream -x < /home/cnbm/mysqlbackup/backup-20241212.xbstream -C /home/temp)#解压缩还原文件innobackupex --decompress /home/temp7.3 清算redo日志并恢复innobackupex --apply-log /home/backup/2018-09-12_10-53-51#恢复数据库innobackupex --copy-back --defaults-file=/etc/my.cnf /home/temp7.4 数据目录修改全部者后重启mysqlchown -R mysql:mysql /home/cnbm/mysql/datasysteml start mysqld 8.binglog设置(在备份竣事至恢复数据这段时间,可使用binlog日志恢复)8.1.创建binglog日志目录,必须修改全部者权限,否则mysql启动会报错mkdir /home/cnbm/mysql/binlog/chown -R mysql.mysql /home/cnbm/mysql/binlog/8.2./etc/my.cnf文件添加binlog参数,打开binlog开关,指定binglog文件存储路径,修改默认存储格式binlog_format=MIXEDlog_bin=mysql-binserver-id=18.3 相关sql#显示全部binlog日志名称和大小(索引文件信息)show binary logs#是否启用binlogSHOW VARIABLES LIKE 'log_bin';#binlog日志格式show global variables like '%binlog_format%';#查询binlog文件位置SHOW VARIABLES LIKE 'log_bin_basename';#查询binlog文件内容show BINLOG EVENTS in 'mysql-bin.000001'   
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

吴旭华

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表