(四)Mysql 数据库备份恢复全攻略

news/2024/10/3 23:22:07 标签: 数据库, mysql, adb

一、数据库备份

  1. 数据库备份目的和数据库故障类型

    • 目的
      • 当发生故障时,将损失降到最低。
      • 保证能够快速从备份数据中恢复,确保数据稳定运行。
    • 故障类型
      • 程序错误:Mysql 服务器端程序故障无法使用。
      • 人为误操作:权限过大误删除数据。
      • 运算错误:数据增删改查询 sql 语句错误。
      • 磁盘故障:磁盘物理损坏存储数据无法读取。
      • 不可抗力自然灾害:地震、海啸、山洪、台风、火灾等。
  2. 物理逻辑角度备份

    • 物理备份
      • 冷备份:停止数据库服务,对数据存储位置进行备份,如/usr/local/mysql/data/
      • 热备份:两地三中心数据备份,包括主从复制、主主复制、MHA、MGR 等方式。
      • 温和备份:禁止写入数据允许读取,对数据库进行备份,最大限度保证数据的完整性。
    • 数据库备份策略
      • 完整备份:第一次使用备份时间长、速度慢、占用空间大。
      • 差异备份:在做完整备份后,对产生的数据使用差异备份,速度快、占用空间小。
    • 增量备份:针对数据库日志文件进行备份。
  3. 备份常见的方式

    • 冷备份:可以使用tarcp等命令。
    • 专用工具:MysqldumpMysqlhotcopy等。
    • 第三方工具:PXBXtrabackupinnobackupexxbstream等。
    • 二进制日志:方便将数据恢复到指定的日志或者指定时间范围内。

二、Mysql 数据库备份恢复

  1. Mysql 数据库冷备份

    • 停止数据库服务,使用命令[root@centos01 ~]# systemctl stop mysqld
    • 备份数据,使用命令[root@centos01 ~]# tar zcf /opt/2024_09_12_mysql_data.tar.gz /usr/local/mysql/data
    • 模拟误删除数据,使用命令[root@centos01 ~]# rm -rf /usr/local/mysql/data/*
    • 解压恢复数据,使用命令[root@centos01 ~]# tar zxf /opt/2024_09_12_mysql_data.tar.gz -C /opt/
    • 恢复数据,使用命令[root@centos01 ~]# cp -r /opt/usr/local/mysql/data/* /usr/local/mysql/data/将备份的数据恢复到 Mysql 数据根目录,然后使用[root@centos01 ~]# ls /usr/local/mysql/data/查看数据目录,最后使用[root@centos01 ~]# chown -R mysql:mysql /usr/local/mysql/data/修改数据所有者。
    • 启动服务,使用命令[root@centos01 ~]# systemctl start mysql
    • 查询恢复数据,使用命令[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'select * from hb3066.student;';
  2. mysqldump 备份

    • mysqldump选项:
    • 备份指定的 hb3066 数据库的 student 表,使用命令[root@centos01 ~]# mysqldump -uroot -ppwd@123 hb3066 student >./student.sql,然后使用[root@centos01 ~]# less./student.sql查看备份文件。
    • 将 student 表恢复到 benet 数据库中,使用命令[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'create database benet;';创建数据库 benet,使用[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'show databases;';查看创建的 benet 数据库,然后使用[root@centos01 ~]# mysql -uroot -ppwd@123 benet <./student.sql恢复数据到 benet 数据库,最后使用[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'select * from benet.student;';查询恢复到 benet 数据库的 student 表。
    • 数据库进行备份和恢复,使用命令[root@centos01 ~]# mysqldump -uroot -ppwd@123 --databases benet >./benet.sql备份 benet 数据库,使用[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'drop database benet;';模拟删除 benet 数据库,使用[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'show databases;';确认删除 benet 数据库,最后使用[root@centos01 ~]# mysql -uroot -ppwd@123 <./benet.sql恢复误删除的数据库 benet,并使用[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'select * from benet.student;';查询 benet 数据库的 student 表。
    • 备份所有数据库,使用命令[root@centos01 ~]# mysqldump -uroot -ppwd@123 --all-databases >./all_database.sql,然后使用[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'drop database benet;';模拟删除 benet 数据库,使用[root@centos01 ~]# mysql -uroot -ppwd@123 -e 'show databases;';确认删除,最后使用[root@centos01 ~]# mysql -uroot -ppwd@123 <./all_database.sql恢复数据库
  3. 增量备份恢复作用和特点

    • 作用:对 Mysql 的数据库日志进行备份,发生误操作时通过日志实现数据恢复。
    • 特点:灵活性强,恢复简单方便。
    • 配置注意事项开启二进制日志:使用命令[root@centos01 ~]# vim /etc/my.cnf,在文件中添加[mysqld]log-bin=mysql-bin设置二进制日志文件名字。
    • 阅读二进制日志,使用命令[root@centos01 ~]# mysqlbinlog /usr/local/mysql/data/mysql-bin.000004
    • 切割日志生成新的二进制日志,使用命令[root@centos01 ~]# mysqladmin -uroot -ppwd@123 flush-logs
    • 插入最新数据,使用命令[root@centos01 ~]# mysql -uroot -ppwd@123进入 Mysql 命令行,然后使用mysql> insert into benet.student values ('张三','男',16,'333333333333333333');mysql> insert into benet.student values ('张四','男',16,'335555533333333333');mysql> insert into benet.student values ('张五','男',19,'335999999333355555');插入数据。
    • 备份二进制日志,使用命令[root@centos01 ~]# cp /usr/local/mysql/data/mysql-bin.000005./
  4. 增量恢二进制日志恢复

    • 模拟删除数据,使用命令[root@centos01 ~]# mysql -uroot -ppwd@123 benet <./student.sql
    • 根据二进制日志文件恢复数据,使用命令[root@centos01 ~]# mysqlbinlog --no-defaults./mysql-bin.000005 | mysql -uroot -ppwd@123
  5. 增量二进制日志基于位置恢复数据

    • 位置选项
      • --stop-position:结束位置往前恢复。
      • --start-position:从前往后恢复。
    • 模拟删除数据,使用命令[root@centos01 ~]# mysql -uroot -ppwd@123 benet <./student.sql
    • 模拟从前往后恢复数据,使用命令[root@centos01 ~]# mysqlbinlog./mysql-bin.000005 | more读取二进制日志,然后使用[root@centos01 ~]# mysqlbinlog --start-position 4./mysql-bin.000005 | mysql -uroot -ppwd@123从前往后恢复。
    • 模拟从后往前恢复数据,再次模拟删除数据后,使用命令[root@centos01 ~]# mysqlbinlog --stop-position 620./mysql-bin.000005 | mysql -uroot -ppwd@123
  6. 增量二进制日志基于时间恢复数据

    • 时间选项
      • --start-datetime:起始时间往后恢复。
      • --stop-datetime:结束时间往前恢复。
    • 起始时间往后恢复数据,模拟删除数据后,使用命令[root@centos01 ~]# mysqlbinlog --start-datetime='2024-09-12 19:22:01'./mysql-bin.000005 | mysql -uroot -ppwd@123
    • 结束时间往前恢复数据,模拟删除数据后,使用命令[root@centos01 ~]# mysqlbinlog --stop-datetime='2024-09-12 19:29:07'./mysql-bin.000005 | mysql -uroot -ppwd@123

通过以上各种备份恢复方式,我们可以在不同的情况下有效地保护和恢复 Mysql 数据库中的数据,确保数据的安全性和可用性。


http://www.niftyadmin.cn/n/5689109.html

相关文章

AI在线免费声音工具2:语音转录asr

语音转录asr whisper https://huggingface.co/spaces/hf-audio/whisper-large-v3-turbo SenseVoice https://www.modelscope.cn/studios/iic/SenseVoice

数据库软题5-SQL语言

一、DDL数据定义语言 题 1-创建视图 建立视图属于DDL的知识 建立视图要用到CREATE AS CREATE View Computer-BOOK ASSELECT 图书编号、图书名称、作者、出版社、出版日期FROM 图书WHERE 图书类型计算机 WITH CHEEK OPTION&#xff1b;二、DQL数据查询语言 题1-交 查询平均…

【前沿 热点 顶会】NIPS/NeurIPS 2024中与医学图像有关的论文

标签噪音下医学图像分类 Vision Foundation 模型的课程微调 深度神经网络在各种视觉任务中表现出了显著的性能&#xff0c;但其性能在很大程度上依赖于训练数据的质量。噪声标签是医学数据集中的一个关键问题&#xff0c;会显著降低模型的性能。以往的清洁样本选择方法没有利用…

深度学习-19-深入理解并训练自己的Tokenizer分词器

文章目录 1 tokenization是什么2 Tokenization方法简介2.1 单词级的Tokenization2.2 子词Tokenization技术2.3 举例说明2.3.1 字符级别2.3.2 词语级别2.3.3 子词级别3 训练自己的Tokenizer3.1 下载数据集3.2 huggingface的Tokenizer实现3.3 my-tokenizer.json字段说明3.4 验证一…

dOOv:Java 数据验证与映射库(简化业务逻辑)

dOOv 是一个为 Java 开发人员设计的轻量化库&#xff0c;专注于数据验证和对象间的映射。与传统的验证框架不同&#xff0c;dOOv 通过提供简洁、声明式的 API&#xff0c;使得开发者可以轻松地编写、扩展和维护验证和映射规则。其设计灵感源自领域驱动设计&#xff08;DDD&…

IP6537_C_30W20V--移动设备快充的得力助手,集成 14 种快充协议的降压 SoC

IP6537_C_30W20V是一款集成同步开关的降压转换器、支 持 14 种输出快充协议、支持 Type-C 输出和 USB PD2.0/PD3.0(PPS)协议的 SoC&#xff0c;为车载充电器、 快充适配器、智能排插提供完整的解决方案。 IP6537_C_30W20V支持 USB Type-C 或者 USB A 输出&#xff0c; 5V 输出功…

每日OJ题_牛客_DP13[NOIP2002 普及组]过河卒_路径dp_C++_Java

目录 牛客_DP13[NOIP2002 普及组]过河卒_路径dp 题目解析 C代码1 C代码2 Java代码 牛客_DP13[NOIP2002 普及组]过河卒_路径dp [NOIP2002 普及组] 过河卒_牛客题霸_牛客网 (nowcoder.com) 描述&#xff1a; 棋盘上 A点有一个过河卒&#xff0c;需要走到目标 B点。卒行走的…

【ADC】噪声(1)噪声分类

概述 本文学习于TI 高精度实验室课程&#xff0c;总结 ADC 的噪声分类&#xff0c;并简要介绍量化噪声和热噪声。 文章目录 概述一、ADC 中的噪声类型二、量化噪声三、热噪声四、量化噪声与热噪声对比 一、ADC 中的噪声类型 ADC 固有噪声由两部分组成&#xff1a;第一部分是量…