广告
返回顶部
首页 > 资讯 > 数据库 >《MySQL数据库》MySQL备份恢复
  • 318
分享到

《MySQL数据库》MySQL备份恢复

摘要

前言 Mysql数据库最重要的部分就是数据,所以保证数据不被损坏尤为重要,大家都知道911事件,当时非常多的数据丢失,导致经济混乱。接下来我们就来讲讲mysql是如何保障数据完整,应对特殊情况,如何恢复等。 备份 备份检查:保证备份没有问题


	《MySQL数据库》MySQL备份恢复
[数据库教程]

前言

Mysql数据库最重要的部分就是数据,所以保证数据不被损坏尤为重要,大家都知道911事件,当时非常多的数据丢失,导致经济混乱。接下来我们就来讲讲mysql是如何保障数据完整,应对特殊情况,如何恢复等。

备份

备份检查:保证备份没有问题,并且定期演练恢复数据。

备份方式:逻辑备份,物理备份。

逻辑备份方式:mysqldump(MDP),replication,mydumper,load data in file。

物理备份方式:MySQL Enterprise Backup(企业版) , percona Xtrabackup (PBK,XBP)

 mysqldump(MDP)

InnoDB 可以使用快照备份,通过建库,建表,插入语句备份数据。

非Innodb 表备份需要表, 非Innodb 表主要是MySQL系统表。

参数说明:

mysqldump  需要连接到数据库,连接方式和mysql 一致。

创建备份目录

mkdir -p backup    -- linux 下执行创建文件夹
chown -R mysql.mysql /usr/local/mysql/backup   -- linux 下执行赋权

备份命令:

mysqldump -uroot -proot -A > /usr/local/mysql/backup/mysqlbackup.sql  -- -A 备份全库的意思

技术图片

备份多库

mysqldump -u cop -p -B cop copdb   > copdb1.sql       -- -B参数导出多个库。

备份某些表

mysqldump -uroot -proot castledata test test1 > /usr/local/mysql/backup/mysqlbackup1.sql -- 导出一张表的结构和数据:castledata 库名;cop_toperator,cop_tsys是表名。

其实这个时候你会发现一个问题,库备份了,但是数据还是会继续操作的,真的出现误删除数据库,如何才能完整的恢复呢。

第一反应就是 备份加binlog ,但是binlog的开始位置点却不好找, 如何才能准确无误的找到这个开始位置点呢?

重点:

--master-data=2    -- 2:表示会再备份文件中加入一句注释,写下binlog文件和开始位置点。 默认是0。
mysqldump -uroot -proot --master-data=2  castledata test test1 > /usr/local/mysql/backup/mysqlbackup2.sql     -- 使用上面的参数备份

技术图片

mysqldump -uroot -proot -F -B castledata > /usr/local/mysql/backup/mysqlbackup3.sql    

-F 参数是备份的时候切一个新的binlog日志

--single-transaction           开启事务,获取快照,对innodb存储引擎有效。

-R                                      备份存储过程及函数

--triggers                            备份触发器

-E                                       备份事件

--max_allowed_packet       客户发数据包到服务端的大小,备份的是表示服务端发到客户端的大小

完整生产备份语句:

mysqldump -uroot -proot -R --triggers -E --single-transaction --master-data=2 --max_allowed_packet=64 -B castledata > /usr/local/mysql/backup/mysqlbackup5.sql

恢复

模拟备份到恢复的过程:

第一步准备原始数据:

create database backup;
use backup
create table t1 (id int);
insert into t1 values(1),(2),(3);
insert into t1 values(11),(22),(33);
insert into t1 values(111),(222),(333);
insert into t1 values(1111),(2222),(3333);
insert into t1 values(11111),(22222),(33333);
commit;

第二步备份数据:

mysqldump -uroot -proot -R --triggers -E --single-transaction --master-data=2 --max_allowed_packet=64 -B backup > /usr/local/mysql/backup/mysqlbackup_`date +%F `.sql

第三步模拟后续数据操作:

create table t2 (id int);
insert into t2 values(1),(2),(3);
insert into t2 values(11),(22),(33);
insert into t2 values(111),(222),(333);
insert into t2 values(1111),(2222),(3333);
insert into t2 values(11111),(22222),(33333);
commit;

第四步逻辑操作出错:

drop database backup;

第五步恢复数据:

获取最近一次备份文件中的binlog 起点信息:

技术图片

binlog 日志原理:https://www.cnblogs.com/jssj/p/13472394.html

恢复备份数据

set sql_log_bin = 0;
source /usr/local/mysql/backup/mysqlbackup_2020-08-18.sql;
set sql_log_bin = 1;

截取binlog

起点:在第一步中已经获取, 终点:使用命令 " show binlog events in ‘mysql-bin.000005‘ ; "  查询

技术图片

取 3362 即可。  执行一下命令截取

mysqlbinlog --start-position=1861 --stop-position=3362 /usr/local/mysql/binlog/mysql-bin.000005 > /usr/local/mysql/backup_binlog.sql

恢复binlog 日志

set sql_log_bin = 0;
source /usr/local/mysql/backup_binlog.sql;
set sql_log_bin = 1;

ok 恢复失败。binlog的恢复。原因为我们开启了GTID 所以截取命令需要加入 参数  --skip-gtids   。 不校验GTID号。

重新截取binlog:

mysqlbinlog --skip-gtids --start-position=1861 --stop-position=3362 /usr/local/mysql/binlog/mysql-bin.000005 > /usr/local/mysql/backup_binlog.sql
set sql_log_bin = 0;
source /usr/local/mysql/backup_binlog.sql;
set sql_log_bin = 1;

ok 恢复成功。验证数据。

技术图片

 

额外扩展:从全备中获取单库,创建表,插入数据

1、获得表结构
# sed -e/./{H;$!d;} -e x;/CREATE TABLE `city`/!d;q  full.sql>createtable.sql
2、获得INSERT INTO 语句,用于数据的恢复
# grep -i INSERT INTO `city`  full.sqll >data.sql &
3.获取单库的备份
# sed -n /^-- Current Database: `world`/,/^-- Current Database: `/p all.sql >world.sql

 

总结

上面讲的都是逻辑备份,MySQL还可以支持物理备份,可以使用工具Percona-XtraBackup 来实现。

《MySQL数据库》MySQL备份恢复

原文地址:Https://www.cnblogs.com/jssj/p/13514597.html

您可能感兴趣的文档:

--结束END--

本文标题: 《MySQL数据库》MySQL备份恢复

本文链接: https://www.lsjlt.com/news/7878.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 《MySQL数据库》MySQL备份恢复
    前言 MySQL数据库最重要的部分就是数据,所以保证数据不被损坏尤为重要,大家都知道911事件,当时非常多的数据丢失,导致经济混乱。接下来我们就来讲讲MySQL是如何保障数据完整,应对特殊情况,如何恢复等。 备份 备份检查:保证备份没有问题...
    99+
    2016-12-27
    《MySQL数据库》MySQL备份恢复 数据库入门 数据库基础教程 数据库 mysql
  • MySQL数据库备份和恢复
    目录 MySQL数据库备份和恢复 备份恢复概述 为什么要备份 备份注意要点 还原要点 备份类型: 备...
    99+
    2015-03-06
    MySQL数据库备份和恢复
  • xtrabackup备份恢复MySQL数据库
    1. 全量备份恢复: 查看原表内容: MariaDB [(none)]> select * from testdb.students; +----+------------+------...
    99+
    2022-10-18
  • Mysql数据库备份与恢复
    1 数据备份与恢复2 使用第三方软件进行备份1 数据备份与恢复1.1 数据备份方式物理备份:直接拷贝库或者表对应的文件。cp,tar, ...具有局限性,前提是表的存储引擎为myisam,跨平台性...
    99+
    2022-10-18
  • Mysql数据库之备份和恢复
     一、为什么要数据备份?   备份的主要目的是灾难恢复。 在生产环境中,数据的安全性至关重要。 任何数据的丢失都可能产生严重的后果。 造成数据丢失的原因: 程序错误人为,操作错误,运算错误,磁盘故障灾难(如火灾、地震)和盗窃. 二、...
    99+
    2023-09-15
    数据库 mysql
  • MySQL数据库的备份与恢复
    一、数据备份的重要性 备份的主要目的是灾难恢复。 在生产环境中,数据的安全性至关重要。 任何数据的丢失都可能产生严重的后果。 造成数据丢失的原因: 程序错误人为操作错误运算错误磁盘故障灾难(如火灾、地震)和盗窃 二、数据库备份...
    99+
    2023-10-27
    数据库
  • 使用XtraBackup恢复|备份 Mysql数据库 -- 数据恢复篇
                                 ...
    99+
    2022-10-18
  • MySQL数据备份与恢复
        一、简介    数据在当今的互联网行业中非常重要,掌握了数据能够从中发现价值,所以数据对于公司来书再重要不过了,当我们...
    99+
    2022-10-18
  • mysql数据备份及恢复
    这篇文章主要介绍“mysql数据备份及恢复”,在日常操作中,相信很多人在mysql数据备份及恢复问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql数据备份及恢复”的疑惑...
    99+
    2022-10-18
  • mysql数据库备份与恢复脚本
    #!/bin/bash#mysql database backup and restore the script# define config variablehost=localhostuser=root...
    99+
    2022-10-18
  • MySQL数据库备份恢复的方法
    不懂MySQL数据库备份恢复的方法?其实想解决这个问题也不难,下面让小编带着大家一起学习怎么去解决,希望大家阅读完这篇文章后大所收获。数据库的备份#语法: # mysqldump -h 服务器 -u用户名 ...
    99+
    2022-10-18
  • MySQL数据库如何备份与恢复
    这篇“MySQL数据库如何备份与恢复”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQ...
    99+
    2022-10-19
  • 怎么备份和恢复MySQL数据库
    这篇文章主要介绍“怎么备份和恢复MySQL数据库”,在日常操作中,相信很多人在怎么备份和恢复MySQL数据库问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么备份和恢复MyS...
    99+
    2022-10-18
  • MySQL 数据备份和数据恢复
    目录 一、数据备份 1、概述 2、MySQLdump命令备份 1)备份单个数据库中的所有表 2) 备份数据中某个或多个表 3) 备份所有数据库 4)备份多个库 5) 只备份一个表或多个表结构 二、数据恢复 三、数据备份与恢复应用 一、数...
    99+
    2023-09-01
    mysql 数据库
  • MySQL数据库备份恢复实现代码
    数据库的备份 #语法: # mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql #示例: #单库备份 mysqldump -uroot -p123 db1 > d...
    99+
    2022-05-26
    MySQL 数据库 备份 恢复
  • MySQL数据库的灾难备份与恢复
         http://xiaorenwutest.blog.51cto.com         &nbs...
    99+
    2022-10-18
  • Mysql数据库的备份与恢复方法
    这篇文章主要介绍“Mysql数据库的备份与恢复方法”,在日常操作中,相信很多人在Mysql数据库的备份与恢复方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mysql数据库...
    99+
    2022-10-18
  • MySQL数据备份与恢复(二) -
     上一篇介绍了逻辑备份工具mysqldump,本文将通过应用更为普遍的物理备份工具xtrabackup来演示数据备份及恢复的第二篇内容。 1.  xtrabackup 工具的安装  1.1  安装依赖包 yum install...
    99+
    2018-12-27
    MySQL数据备份与恢复(二) -
  • XtraBackup MySql 数据备份和恢复
    wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.12/binary/redhat/6/x86_64/percona-xtrabackup-24...
    99+
    2017-01-22
    XtraBackup MySql 数据备份和恢复
  • Mysql的数据备份和恢复
    这篇文章主要介绍“Mysql的数据备份和恢复”,在日常操作中,相信很多人在Mysql的数据备份和恢复问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mysql的数据备份和恢复”...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作