首页 > 其他分享 >备份还原-2

备份还原-2

时间:2025-01-17 13:57:10浏览次数:3  
标签:binlog full -- 备份 还原 mysql backup

物理备份-XBK

  • 安装依赖包

yum -y install perl perl-devel perl-Digest libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL libev

  • 安装percona-toolkit和percona-xtrabackup

包下载位置:Software Downloads - Percona

将percona-toolkit-3.3.0-1.el7.x86_64、percona-xtrabackup-24-2.4.12-1.el7.x86_64包拖入

rpm -ivh percona-toolkit-3.3.0-1.el7.x86_64.rpm

rpm -ivh percona-xtrabackup-24-2.4.12-1.el7.x86_64.rpm

  • innobackupex 使用

备份核心理念:

  1. 针对非InnoDB,进行锁表备份,copy所有的非innoDB表文件
  2. 针对InnoDB表,立即触发CKPT,copy所有InnoDB表相关的文件(ibdata1,ibd,frm)
  3. 并且将备份过程中产生新的数据变化的部分redo一起备份走
  4. 在恢复时,xbk会调用InnoDB引擎的CSR过程,将数据和redo的LSN追平,然后进行一致性恢复
  • 备份过程

前提:开启二进制日志和GITD

开启二进制日志

vim /etc/my.cnf

添加:

log_bin=/data/binlog/mysql-bin

创建目录并授权

mkdir -p /data/binlog

chown -R mysql.mysql /data

开启GTID

vim /etc/my.cnf

添加:

gtid-mode=on

enforce-gtid-consistency=true

创建备份目录

mkdir /backup

重启MySQL

systemctl restart mysqld

1)全备

innobackupex --user=root --password=123.com -S /tmp/mysql.sock --no-timestamp /backup/full

查看备份文件

cd /backup/full/

2)关闭MySQL删除数据库文件

systemctl stop mysqld

rm -rf /usr/local/mysql/data/*

3)1

innobackupex --apply-log /backup/full/

4)将备份数据拷贝的MySQL的数据目录

cp -a /backup/full/* /usr/local/mysql/data/

5)更改数据文件文件属主和属组

chown -R mysql.mysql /usr/local/mysql/data/*

6)重启MySQL

systemctl restart mysqld

netstat -anpt | grep mysqld

  • 备份产生的文件介绍

1)xtrabackup_binlog_info

cat /backup/full/xtrabackup_binlog_info

记录备份时刻的二进制日志信息. 可以作为binlog截取的起点.

2)xtrabackup_checkpoints

cat /backup/full/xtrabackup_checkpoints

from:备份中包含的LSN号的起点,全备:0, 增量:上次备份的结束位置

to:ckpt时的LSN

last-9:备份结束时的LSN,下次增量备份的起始位置

增量备份

1)清空备份文件和日志

rm -rf /backup/*

reset master;

show master status;

rm -rf /usr/local/mysql/data/xtrabackup_*

2)创建数据

create database full charset utf8mb4;

use full;

create table t1 (id int);

insert into t1 values(1),(2),(3);

3)进行周日的全备

innobackupex --user=root --password=123.com --socket=/tmp/mysql.sock --no-timestamp /backup/full

cat /backup/full/xtrabackup_binlog_info

4)模拟周一的数据变化

create database inc1 charset utf8mb4;

use inc1;

create table t1 (id int);

insert into t1 values(1),(2),(3);

5)进行周一的增量备份

innobackupex --user=root --password=123.com --no-timestamp --incremental --socket=/tmp/mysql.sock --incremental-basedir=/backup/full /backup/inc1

说明:

--incremental    开启增量备份

--incremental-basedir=/backup/full 基于哪个备份进行增量

/backup/inc1     增量备份的目录

6)检查备份的LSN

全备文件:

cat /backup/full/xtrabackup_checkpoints

增备文件:

cat /backup/inc1/xtrabackup_checkpoints

7)模拟周二数据变化

create database inc2 charset utf8mb4;

use inc2;

create table t1 (id int);

insert into t1 values(1),(2),(3);

8)进行周二的增量备份(对比周一的做增量)

innobackupex --user=root --password=123.com --no-timestamp --incremental --socket=/tmp/mysql.sock --incremental-basedir=/backup/inc1 /backup/inc2

查看备份的LSN

cat /backup/inc2/xtrabackup_binlog_info

cat /backup/inc2/xtrabackup_checkpoints

9)模拟周三的数据变化

create database inc3 charset utf8mb4;

use inc3;

create table t1 (id int);

insert into t1 values(1),(2),(3);

10)模拟没有备份,数据库发生崩溃

systemctl stop mysqld

rm -rf /usr/local/mysql/data/*

11)恢复思路

停业务,挂维护页

查找可用备份并处理备份:full+inc1+inc2

binlog:inc2到故障时间点的binlog

恢复全备+增量+binlog

验证数据

开启业务,撤维护页

12)恢复前的准备

整理full

innobackupex --apply-log --redo-only /backup/full

合并inc1到full,并整理备份

innobackupex --apply-log --redo-only --incremental-dir=/backup/inc1 /backup/full

合并inc2到full,并整理备份

innobackupex --apply-log --incremental-dir=/backup/inc2 /backup/full

最后一次整理full

innobackupex --apply-log /backup/full

13)截取二进制日志

起点:

cat /backup/inc2/xtrabackup_binlog_info

终点:

mysqlbinlog /data/binlog/mysql-bin.000001 | grep 'SET'

截取:

mysqlbinlog --skip-gtids --include-gtids='0862fe11-b6d1-11ef-865d-000c2900ee94:10-12' /data/binlog/mysql-bin.000001 > /backup/binlog.sql

14)恢复备份数据

cp -a /backup/full/* /usr/local/mysql/data/

chown -R mysql.mysql /usr/local/mysql/

systemctl restart mysqld

set sql_log_bin=0;

source /backup/binlog.sql

set sql_log_bin=1;

15)验证数据

show databases;

select * from full.t1;

select * from inc1.t1;

select * from inc2.t1;

select * from inc3.t1;

标签:binlog,full,--,备份,还原,mysql,backup
From: https://blog.csdn.net/2402_88627342/article/details/145080411

相关文章

  • 备份还原-1
    在备份恢复中的职责备份策略的设计1)备份周期根据数据量(数据量小,每天全备一次)2)备份工具mysqldump(MDP):逻辑备份(库、表)XBK(PBK)perconaXtrabackup:适合大数据量   物理备份(数据文件、日志文件)MEB(MySQLEnterpriseBACKUP MEB):oracle公司的收费版本mysqlbinlog:......
  • EPLAN的格式 ----ZW1 【ELK备份成ZW1,ZW1恢复成ELK】
    “ 本篇文章主要讲解一下EPLANP8软件如何将项目源文件保存与打开。一共我分了三篇文章来说明,每一篇文章说的格式都不相同,不同格式我们按需所取即可。这篇是zw1格式备份与恢复的说明(zw1)。”1.源文件与打包后大小对比源文件的文件数为248个,占用空间为68Mzw1的文件数为1个,占用......
  • 全网唯一的工具 苹果手机备忘录全自动导出备份
    因为最近从苹果手机换成了小米,需要把里面的资料迁移过来,但是找了一圈,目前市面上没有比较好用的工具可以帮助我备份苹果手机上的备忘录文档,所以我做了一个小工具,可以完全自动的把苹果手机的备忘录复制到电脑上的文档里面。对于有几百条备忘录需要迁移的人来说,比较有用,如果你只......
  • Mysql--运维篇--备份和恢复(逻辑备份,mysqldump,物理备份,热备份,温备份,冷备份,二进制文件备
    MySQL提供了多种备份方式,每种方式适用于不同的场景和需求。根据备份的粒度、速度、恢复时间和对数据库的影响,可以选择合适的备份策略。主要备份方式有三大类:逻辑备份(mysqldump),物理备份和二进制文件备份。一、逻辑备份(LogicalBackup)逻辑备份是通过导出SQL语句或表结构和......
  • FreeFileSync:开源文件夹同步备份神器
    在工作中我们常遇到U盘丢失或损坏。或者文件由于备份不及时,导致文件异常。同时备份的资料越多,人工手动复制就越容易出错或遗漏,最终的备份又乱又不可靠。怎样解决此问题呢?FreeFileSync是一款功能强大的文件同步和备份软件,适用于Windows操作系统。它支持多种语言,界面直观易用,能够......
  • 江科大STM32入门——读写备份寄存器(BKP)&实时时钟(RTC)笔记整理
    wx:嵌入式工程师成长日记https://mp.weixin.qq.com/s/hDk7QaXP8yfYIj1gUhtMrw?token=1051786482&lang=zh_CNhttps://mp.weixin.qq.com/s/hDk7QaXP8yfYIj1gUhtMrw?token=1051786482&lang=zh_CNRTC是一个独立的定时器,BKP并不能完全掉电不丢失,其可以完成一些主电源掉电时,保存少......
  • Oracle数据库手动备份数据
    切记先不要执行第一句drop,先执行第二句select(可以先不加条件,因为目录名称可能不是DATA_BACKUP),看看DATA_BACKUP有没有,如果没有,按第三句sqlcreate创建一个存放文件的目录,然后按后续的sql授权这个目录:注:要在sys账号下使用如下sql(可在sqlplus下执行)。--前提directory=DATA_BACKUP创......
  • Xtrabackup备份与恢复
    Xtrabackup是一个对Mysql做数据备份的工具,支持在线热备份(备份时不影响数据读写),Xtrabackup有两个主要的工具:xtrabackup、innobackupex,其中innobackupex已经逐渐被xtrabackup取代 特点: (1)备份过程快速、可靠; (2)备份过程不会打断正在执行的事务; (3)能够基于压缩等功能节约磁......
  • B@se-还原错误字母表转码的base64编码
    题目:密文:MyLkTaP3FaA7KOWjTmKkVjWjVzKjdeNvTnAjoH9iZOIvTeHbvD==JASGBWcQPRXEFLbCDIlmnHUVKTYZdMovwipatNOefghq56rs****kxyz012789+/ohholyshit,somethingismissing...第一行是密文,有明显的Base64编码特征(等号结尾)第二行是大小写字母、数字、+、/,有明显的Base64编码表......
  • MySQL备份工具mydumper下载(RPM方式)安装以及详细使用教程
    1、mydumper工具介绍        mydumper是一款社区开源的,用于MySQL数据库的高性能多线程备份工具。与传统的mysqldump相比,mydumper提供了更快的备份和恢复速度,特别是在处理大型数据库时。它包含两个主要工具:•mydumper:负责导出一致的MySQL数据库备份。•myl......