mysqldump备份与恢复 之 黑锅侠

公司这几天数据库有数据丢失,所以找到运维部门要恢复数据库,但是我们的工程师,在执行完恢复命令后,提示语法错误,并没有恢复数据库,坑爹啊~~~

具体原因:由于备份时语法错误 或 指定的目录不存在,但在备份的时候又没报错,所以工程师以为备份成功了,最终酿成大祸;(成为黑锅侠)

公司最终开恩,每人扣除1000元的惩罚,下面来总结并模拟下正常过程。

一、错误备份演示

语法出错,备份失效看似备份成功,但查看备份内容时,出现语法错误的警告

[[email protected] ~]# mysqldump -uroot -poldboy123 -A -B oldboy >/opt/oldboy_bak1.sql
[[email protected] ~]# cat /opt/oldboy_bak1.sql
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help
提示:
1,错误点就是 -A 与-B 不能同时使用,会产生语法错误,看下面解释就明白了,指定的范围有冲突
-A:--all databases 所有数据库备份
-B:指定多个数据库备份
mysql 不能使用kill -9 否则后果自负;

补充强调:我们平时发帖子,都是通过web服务器连接mysql,之后通过insert语句把数据存入数据库

-A全备会出现events—warning,下面是 处理方法:

这是因为mysqldump默认是不备份事件表的,只有加了--events 才会,解决办法: 
加上--events --ignore-table=mysql.events参数即可; 
mysqldump -uroot -poldboy123 -S /data/3307/mysql.sock  --events --ignore-table=mysql.events -A >all.sql

如何拒绝成为黑锅侠:胆大心细,善于总结,吸取经验,脱离黑锅;成为套路男

二,正确备份演示

定期做备份恢复演练 或恢复测试

1,在test数据库中创建student表

mysql> use test;  ##进入test库
create table student(
id int(4) not null,
name char(20) not null,
age tinyint(2) NOT NULL default ‘0‘,
dept varchar(16) default NULL
);
##创建student表 里面是各个字段的设置

2,备份数据库test

mysqldump -uroot -poldboy123 -S /data/3307/mysql.sock  -B test >/opt/test.sql
cat /opt/test.sql  #检测备份是否有效

3,删除test库(模拟真实环境)

mysql> drop database test;
Query OK, 0 rows affected (0.00 sec)
mysql> show databases; #没有test数据了
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| oldboy             |
| performance_schema |
+--------------------

4,恢复test库

[[email protected] ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock  </opt/test.sql
mysql> show databases; #恢复test库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| oldboy             |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)
mysql> desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(4)      | NO   |     | NULL    |       |
| name  | char(20)    | NO   |     | NULL    |       |
| age   | tinyint(2)  | NO   |     | 0       |       |
| dept  | varchar(16) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

到此,模拟数据恢复成功。

时间: 2024-11-07 10:23:43

mysqldump备份与恢复 之 黑锅侠的相关文章

mysql运维管理-mysqldump 备份与恢复数据库20

mysqldump 备份与恢复数据库 备份: 1.备份全部数据库的数据和结构 mysqldump -uroot -pjsb -A > /bk/all.sql -A: 备份所有数据库=--all-databases 2. 备份全部数据库的结构(加 -d 参数) mysqldump -uroot -p123456 -A -d > F:\all_struct.sql -A: 备份所有数据库=--all-databases    --no-data, -d:只导出表结构 4.备份单个数据库的数据和结构

mysqldump 备份与恢复脚本

# Feedback/comment/suggestions : http://www.real-blog.com/ # ---------------------------------------------------------------------- # your mysql login information # db_user is mysql username # db_passwd is mysql password # db_host is mysql host # ---

MYSQL5.6学习——mysqldump备份与恢复

MYSQL备份 冷备份:停止服务进行备份,即停止数据库的写入 热备份:不停止服务进行备份(在线) l  mysql的MyIsam引擎只支持冷备份,InnoDB支持热备份,原因: InnoDB引擎是事务性存储引擎,每一条语句都会写日志,并且每一条语句在日志里面都有时间点,那么在备份的时候,mysql可以根据这个日志来进行redo和undo,将备份的时候没有提交的事务进行回滚,已经提交了的进行重做.但是MyIsam不行,MyIsam是没有日志的,为了保证一致性,只能停机或者锁表进行备份. l  In

【MySQL】mysqldump备份与恢复

简介:mysqldump常用于MySQL数据库逻辑备份. 备份操作: 1.备份所有库: mysqldump -uroot -pyourpass --all-databases > /tmp/all.dump 2.备份单个库: mysqldump -uroot -pyourpass test > test.dump 3.备份单张表: mysqldump -uroot -pyourpass test test_tb > test_tb.sql 4.备份存储过程: mysqldump -uro

MySQL备份与恢复常用方法总结(mysqldump/xtrabackup/lvm快照备份/二进制日志及时点恢复)

MySQL备份与恢复常用方法总结 (mysqldump/xtrabackup/lvm快照备份/逻辑备份与恢复/二进制日志及时点恢复) 自言:学习在于总结,把所了解的类似东西放到一起更能加深记忆 一.了解备份相关知识 1)按服务器备份时状态可分为:     热备份:读.写不受影响:     温备份:仅可以执行读操作:     冷备份:离线备份:读.写操作均中止:2)按服务器备份数据集可分为:     物理备份:复制数据文件:     逻辑备份:将数据导出至文本文件中:3)按服务器备份数据量可分为:

MySQL5.7.20数据库备份与恢复

MySQL数据库备份与恢复·####造成数据丢失的原因####程序错误人为操作错误运算错误磁盘故障灾难(如火灾.地震)和盗窃· ####物理与逻辑的角度####1.物理备份:冷备份:在数据关闭的状态下运行热备份:在数据库运行的状态时进行备份操作,该备份方法依赖数据库日志文件.温备份:数据局锁定表格(可以读不可以写)的状态年备份数据库2.逻辑备份:逻辑备份是对数据库逻辑组件(如表等数据库对象)的备份,表示为逻辑数据结构(create database.create tabale)和内容(inser

企业Shell面试题14:开发脚本入侵检测与报警案例

面试及实战考试题:监控web站点目录(/var/html/www)下所有文件是否被恶意篡改(文件内容被改了),如果有就打印改动的文件名(发邮件),定时任务每3分钟执行一次. 1.1问题分析 1)首先要说明的是,思考过程的积累比实际代码开发的能力积累更重要. 2)什么是恶意篡改,只要是未经过许可的改动都是篡改. 3)文件内容被改动了会有如下特征. ◎ 大小可能会变化 ◎ 修改时间会变化 ◎ 文件内容会变化,利用md5sum指纹校验 ◎ 增加或删除文件,比对每次检测前后的文件数量. 1.2参考解答

老男孩:做运维比做开发岗位有哪些特殊好处,你知道么?

现实中很多网友,包括大学生对编程开发了解很多,但对运维了解较少,有经验的部分人员(包括一些从事运维的)也会觉得开发更牛逼,运维就是背黑锅(如何不背黑锅,看老男孩的以后文章)的,运维==黑锅侠. 那么,老男孩就给大家讲讲老男孩眼中运维的好处,让大家重新认识下运维岗位的魅力吧. 1.做运维可以认识更多人脉,同时也被更多人认识. 相对开发来讲,运维岗位主要以服务为主,因此,做运维可以比开发认识更多的人,同时也被更多的人认识. 你的成功不在于你认识多少人,而在于有多少人认识你!--老男孩思想 当有非常多

Percona Xtrabackup 备份MySQL 实例(转)

老规矩,开场白,刚开始用mysqldump,备份100G+的数据库,再加上服务器繁忙,备份速度像蜗牛似的,于是寻找更高效的备份方法.网上都说用xtrabackup比较适合备份大的数据库,而且备份效率也高,就尝试使用一次,结果明显感觉比mysqldump备份与恢复速度就是快不少,那以后就用它了.大礼拜日的在家也没事,结合生产环境,写了这篇文档,刚接触的朋友,可以参考下,不多说,入正题! 1.初次备份前准备工作 1.1 了解备份方式 热备份:读写不受影响(mysqldump-->innodb) 温备