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

备份还原-1

时间:2025-01-16 14:56:55浏览次数:3  
标签:-- data 备份 sql 还原 mysql backup

在备份恢复中的职责

  • 备份策略的设计

1)备份周期

根据数据量(数据量小,每天全备一次)

2)备份工具

mysqldump (MDP):逻辑备份(库、表)

XBK (PBK) percona Xtrabackup:适合大数据量    物理备份(数据文件、日志文件)

MEB(MySQL Enterprise BACKUP  MEB):oracle公司的收费版本

mysqlbinlog:二进制备份(用于没有通过MDP和XBK备份的数据)

3)备份方式

逻辑备份:

全备 mysqldump   建议每周一次

增量 binlog (flush logs ,cp)   每天增量

物理备份:

全备:XBK

增量:XBK

  • 检查备份可用性

crontab -l ----->

备份脚本  ----->

备份路径  ----->   备份到RAID5

看备份日志,检查备份文件(大小,内容)

  • 定期的恢复演练

开启测试环境,还原数据库,连接前台业务。

  • 数据恢复

只要备份和日志是完整的,恢复到故障之前的时间点(快速)

  • 数据迁移

操作系统不同的迁移

mysql   ->  mysql

其他    ->  mysql

mysql   ->   其他(mango)非关系型

备份的介绍

  • 备份的策略

按数据量(50-80G),小数据量每天全备;大数据量(1T以上),周日全备,其余增备。

  • 备份的工具

mysqldump、xtrabackup

  • 备份类型

热备:对于业务影响最小   InnoDB(备份快照,不会锁表,业务正常进行)

温备:长时间锁表备份     MyISAM(业务正在使用表的时候,就会锁表,不能备份,等业务完成才能备份)

冷备:业务关闭情况下备份 (物理备份)

mysqldump

  • 连接数据库

-u用户

-p 密码

-S 安全套接字

-h 主机

-P 端口号

  • 基础备份参数

导入world.sql数据库

mkdir /backup

-A 全库(等于 --all-databases)

mysqldump -uroot -p123.com -A > /backup/full.sql

-B 单库或多个单库

mysqldump -uroot -p123.com -B world > /backup/world.sql

库  表

mysqldump -uroot -p123.com world city > /backup/city.sql

  • 特殊备份参数

-R 存储过程和函数

-E 事件

--triggers 触发器

--master-data=2

(值为1:change master to 语句可以被slave直接执行;值为2:change master会被注释)

--single-transaction

对于InnoDB的表,进行一致性快照备份,不锁表;不加本参数,执行温备份

  • 扩展参数

在构建主从时,使用AUTO/ON(保证一致性)

--set-gtid-purged=AUTO/ON

仅是做普通的本机备份恢复时,可以添加

--set-gtid-purged=OFF 

SET @@GLOBAL.GTID_PURGED='aa648280-a6a6-11e9-949f-000c294a1b3b:1-11';

--max_allowed_packet=128M  控制的是备份时传输数据包的大小.(默认max_allowed_packet变量为16MB)

mysqldump -uroot -p123 -A  -R  --max_allowed_packet=128M --triggers --set-gtid-purged=OFF --master-data=2  --single-transaction|gzip > /backup/full_$(date +%F).sql.gz

恢复案例

  • 背景环境

正在运行的网站系统,mysql-5.7.20 数据库,数据量50G,日业务增量3-10M。(中小库)

  • 备份策略

每天23:00点,计划任务调用mysqldump执行全备脚本

  • 故障时间点

年底故障演练,模拟周三上午10点误删除数据库

  • 思路
  1. 停业务,挂维护页(网站维护中......),避免数据的二次伤害
  2. 找一个临时库,恢复周二23:00全备
  3. 截取周二23:00 --- 周三10点误删除之间的binlog,恢复到临时库
  4. 测试可用性和完整性
  5. 方法

方法一:直接使用临时库顶替原生产库,前端应用割接到新库

方法二:将误删除的表导出,导入到原生产库

     6.开启业务

处理结果:经过20分钟的处理,最终业务恢复正常

  • 故障模拟演练

1)准备环境

开启二进制日志

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

重启MySQL

systemctl restart mysqld

确认二进制日志开启

show master status;

创建数据库和表并写入数据

create database backup;

use backup;

create table t1 (id int);

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

2)周二23:00全备

mysqldump -uroot -p123.com -A -R --triggers --set-gtid-purged=OFF --master-data=2 --single-transaction > /backup/full_$(date +%F).sql

3)模拟周二 23:00到周三 10点之间数据变化

use backup;

insert into t1 values(11),(22),(33);

create table t2 (id int);

insert into t2 values(11),(22),(33);

查看二进制日志

show master status;

4)模拟故障,删除表(只是模拟,不代表生产操作)

drop database backup;

show master status;

show binlog events in 'mysql-bin.000001';

  • 恢复过程

1)准备临时数据库(多实例3307)

mkdir -p /data/3307/data

cat > /data/3307/my.cnf <<EOF

[mysqld]

basedir=/usr/local/mysql

datadir=/data/3307/data

socket=/data/3307/mysql.sock

log_error=/data/3307/mysql.log

port=3307

server_id=7

log_bin=/data/3307/mysql-bin

EOF

mysqld --initialize-insecure  --user=mysql --datadir=/data/3307/data --basedir=/usr/local/mysql

cd /etc/systemd/system/

cp mysqld.service mysqld3307.service

vim mysqld3307.service

修改:

chown -R mysql.mysql /data/*

systemctl start mysqld3307

netstat -anpt | grep mysql

mysql -S /data/3307/mysql.sock

select @@server_id;

mysql -uroot -p123.com

select @@server_id;

2)准备备份

准备全备

cd /backup

截取增量数据的二进制日志

show binlog events in 'mysql-bin.000001';

mysqlbinlog --skip-gtids --include-gtids='b28c2383-b476-11ef-9640-000c2900ee94:4-6' /data/binlog/mysql-bin.000001 > /tmp/a.sql

3)恢复备份到临时库

复制当前会话

会话2:

mysql -S /data/3307/mysql.sock

set sql_log_bin=0;

恢复全备

source /backup/full_2024-12-09.sql

恢复二进制日志

source /tmp/a.sql

set sql_log_bin=1;

4)将临时库导出并恢复到生产

会话2:

mysqldump -S /data/3307/mysql.sock -B backup > /backup/bak.sql

会话1:

set sql_log_bin=0;

source /backup/bak.sql

set sql_log_bin=1;

查看数据是否恢复

use backup;

select * from t1;

select * from t2;

标签:--,data,备份,sql,还原,mysql,backup
From: https://blog.csdn.net/2402_88627342/article/details/145055862

相关文章

  • 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......
  • 如何高效地将网站文件从服务器下载到本地进行备份
    当您需要将网站文件从服务器下载到本地进行备份时,可以采取以下几种方法来提高效率和便捷性:使用压缩打包工具:通过服务器控制面板或命令行工具(如tar、zip等),将网站的www目录进行压缩打包。压缩后的文件可以通过FTP或其他传输方式一次性下载到本地,减少多次传输的时间消耗。示例......