前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >xtrabackup实现热备

xtrabackup实现热备

原创
作者头像
风起--追风
发布2023-07-13 15:56:54
2210
发布2023-07-13 15:56:54
举报
文章被收录于专栏:sql与spec性能sql与spec性能

备份:

  • 物理备份:需要拷贝原库的配置文件(my.cnf),数据文件,日志,系统数据库(/var/lib/mysql/mysql)到新的目标环境,修改相应目录的权限,启动新数据库即可
  • xtrabackup:可以实现mysql增量热备,通过全备的基础上去对改动的数据进行备份来提高备份效率

1. 进行全量备份

innobackupex --user=root --password /fullback

2.第一次增量

innobackupex --user=root --password --incremental-dir=/increment_1 /fullback

3.第二次增量

innobackupex --user=root --password --incremental-dir=/increment_2 /fullback

4.合并增量

xtrabackup --prepare --target-dir=/fullback --incremental-dir=/increment_1

xtrabackup --prepare --target-dir=/fullback --incremental-dir=/increment_2

  • binlog恢复

binlog有三种format,statement,row,mixed

statement是对实际的sql语句进行记录

row是记录每行所做的修改,更新语句会写入日志

mixed是在statement的基础上看需要切换row格式

  1. 查询binlog格式

show variables like 'binlog_format'

2. 设置binlog格式(临时修改,重启后失效,要永久生效可以再my.cnf中设置并重启服务生效)

set @@global.binlog_format = row;

3. 启用二进制日志

在cnf配置文件中添加 [mysqld]

log_bin = /var/lib/mysql/binlog

server_id = 200

重启服务,systemctl restart mysqld

4.显示服务器所有的二进制日志

show master logs; 或者 show binary logs;

5.删除、刷新日志

reset master;删除所有

purge binary logs to <二进制日志名>删除这之前的日志,仅保留方括号

flush logs 重新启用新的binlog文件

6. 读取二进制日志,并恢复数据库

mysqlbinlog binlog.000001 > mysql_extra

cat mysql_extra | mysql -f -hlocalhost -uroot -p

补充:可以利用二进制日志,进行时间点和从偏移量中提取所需要的binlog进行恢复

mysqlbinlog xxx --start-datetime="stamp1" --stop-datetime="stamp2" >mysql_extra

mysqlbinlog xxx --start-position=100 --stop-position=179 > mysql_extra

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 备份:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档