mysqldump 备份恢复_sql2003数据库备份恢复

mysqldump 备份恢复_sql2003数据库备份恢复场景一 昨天凌晨2点做过一次完全备份,白天正常使用,该下班的时候,好巧啊!硬盘坏了。不过幸运的是做过备份并且二进制日志和数据库分开存放 1、建立数据库并开启二进制日志 建立用于存放二进制日志的文件夹…

两个场景下Mysqldump数据库备份恢复

    昨天凌晨2点做过一次完全备份,白天正常使用,该下班的时候,好巧啊!硬盘坏了。不过幸运的是做过备份并且二进制日志和数据库分开存放

image.png

1、建立数据库并开启二进制日志

image.png

建立用于存放二进制日志的文件夹,修改文件夹属组属主使mysql用户可以读

image.png

二点钟做完全备份,备份完看下是否备份成功

mysqldump -A -F --single-transaction --master-data=2 > /backup/fullbak`date +%F`.sql

代码100分

 

image.png

less /backup/fullbak2019-07-11.sql    #–master-data选项在备份时自动记录bin-log的位置

image.png

模拟2点到18点的数据修改

image.png

2、存放数据库的硬盘损坏,所有数据库丢失

image.png

3、还原

故障恢复中可以让用户暂停访问数据库

vi /etc/my.cnf  #添加一行

image.png

systemctl restart mariadb

查看当前二进制日志的位置

image.png

从二进制日志中获取2点到18点数据

代码100分[root@swh ~]mysqlbinlog  --start-position=245 /data/logbin/mysql-bin.000003 > /backup/inc.sql
[root@swh ~]#mysqlbinlog /data/logbin/mysql-bin.000004 >> /backup/inc.sql
[root@swh ~]#mysqlbinlog /data/logbin/mysql-bin.000005 >> /backup/inc.sql
[root@swh ~]#mysqlbinlog /data/logbin/mysql-bin.000006 >> /backup/inc.sql
 

 

由于恢复数据库会产生大量的日志,可以临时关闭二进制日志

MariaDB [(none)]> set sql_log_bin=off;
MariaDB [(none)]> source  /backup/fullbak2019-07-11.sql  #导入完全备份
MariaDB [(none)]> source  /backup/inc.sql     #导入增量备份
MariaDB [(none)]> set sql_log_bin=on;
恢复后检查数据库,恢复访问
MariaDB [hellodb]> select * from students;
 

image.png

代码100分vi /etc/my.cnf  #去掉skip-networking
 

场景二

    凌晨2点做过一次完全备份,白天使用过程中,某同事误删除数据库,当时并未发现,直到下班的时候出故障了

image.png

1、数据库完全备份

mysqldump -A -F --single-transaction --master-data=2 > /backup/fullbak`date +%F`.sql
 

image.png

less /backup/fullbak2019-07-11.sql       #–master-data选项在备份时自动记录bin-log的位置

image.png

2、表被删除,但是没有发现,继续使用,在18点发现问题

image.png

3、还原

故障恢复中可以让用户暂停访问数据库

vi /etc/my.cnf  #添加一行

image.png

systemctl restart mariadb

查看当前日志的位置

image.png

根据备份文件中记录的日志位置,从二进制日志获取增量

[root@swh ~]#mysqlbinlog --start-position=245 /data/logbin/mysql-bin.000013 > /backup/inc.sql
[root@swh ~]#cp /backup/inc.sql /backup/inc.sql.bak #修改下备份下
[root@swh ~]#vi /backup/inc.sql #从二进制日志中找出删表语句并删除,剩下的日志就是使用的日志
 

image.png

[root@swh ~]#rm -rf /var/lib/mysql/* #可以选择删除所有数据库恢复,或者直接恢复增量备份
[root@swh ~]#systemctl restart mariadb
MariaDB [(none)]> set sql_log_bin=off;
MariaDB [(none)]> source  /backup/fullbak2019-07-11.sql
MariaDB [(none)]> source /backup/inc.sql
MariaDB [(none)]> set sql_log_bin=on;
 

检查数据

image.png

image.png

vi /etc/my.cnf  #去掉skip-networking
 

虽然可以恢复但是花费的时间成本或许是相当大的,生产环境还需慎重。郑州人流医院:http://jbk.39.net/yiyuanfengcai/tsyl_sysdfkyy/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8333.html

(0)
上一篇 2023-03-03
下一篇 2023-03-03

相关推荐

  • 弱隔离级别 & 事务并发问题[亲测有效]

    弱隔离级别 & 事务并发问题[亲测有效]本篇文章主要介绍了

    1. 各种隔离级别
    2. 事务并发执行时,存在的并发问题
    3. 如何防止并发问题

    2023-06-05
    146
  • Neo4j安装过程详解[通俗易懂]

    Neo4j安装过程详解[通俗易懂]在安装neo4j之前,需要安装Java JRE,并配置Java开发环境,然后安装neo4j服务。 一、CentOS下安装 1.下载Neo4j 去官网下载最新的neo4j,选择社区版。地址:https:

    2022-12-26
    151
  • Hadoop入门之hdfs[通俗易懂]

    Hadoop入门之hdfs[通俗易懂]大数据技术开篇之Hadoop入门【hdfs】 学习都是从了解到熟悉的过程,而学习一项新的技术的时候都是从这个技术是什么?可以干什么?怎么用?如何优化?这几点开始。今天这篇文章分为两个部分。一、hado

    2023-02-14
    143
  • mysql自关联查询语句_MySQL两张表联合查询SQL语句

    mysql自关联查询语句_MySQL两张表联合查询SQL语句假设要设计两张表,一张省份表(provinces),一张城市表(citys) 省份表结构 id ptitle 城市表结构 id ctitle proid(表示城市所属的省,对应着省份表的id值) 观察

    2023-04-22
    155
  • 用PyQt实现进度条

    用PyQt实现进度条PyQt是一款Python的GUI框架,它继承了Qt框架的特点,这个特点就是PyQt具有极强的可扩展性、跨平台性以及代码重用性。PyQt现在也成为了Python常用的GUI库之一,它支持多种操作系统并且可以创建桌面GUI应用、移动应用和Web应用等多种类型的应用。

    2024-07-25
    30
  • 数据库的维护「终于解决」

    数据库的维护「终于解决」事务 数据库并发控制的对象 事务是数据库的逻辑工作单位 序列中的操作要么全做,要么全不做 特性; 原子性 一个事务中的所有操作是不可分割的,要么全部执行,要么 全部不执行,这就是事务的原子性。 一致性

    2023-03-04
    152
  • Python字符串转字典的方法

    Python字符串转字典的方法Python字符串转字典的方法有很多,下面我们将分别从以下几个方面进行详细的介绍。

    2024-06-25
    48
  • docker安装clickhouse集群_安卓 docker

    docker安装clickhouse集群_安卓 dockerclicHouse介绍 Yandex在2016年6月15日开源了一个数据分析的数据库,名字叫做ClickHouse,这对保守俄罗斯人来说是个特大事。更让人惊讶的是,这个列式存储数据库的跑分要超过很多…

    2023-02-10
    191

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注