mysqldump数据库备份与恢复(mysqlpump备份与恢复)

mysqldump备份与恢复(mysqlpump备份与恢复)

公司这几天数据库丢失数据,于是找运维部恢复数据库,结果我们工程师执行恢复命令后,提示语法错误,没有恢复数据库,

具体原因:备份时由于语法错误或指定目录不存在,但备份时没有报错,工程师认为备份成功,最终酿成大祸; (成为替罪羊)

公司终于手下留情,扣掉了每人1000元的罚款。下面总结一下,模拟一下正常的流程。

 

 

一、错误备份演示

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

[root@db02 ~]# mysqldump -uroot -poldboy123 -A -B oldboy >/opt/oldboy_bak1.sql
[root@db02 ~]# 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:指定多个数据库备份 增加建库语句及use语句 
#mysql 不能使用kill -9 否则后果自负;

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

二、mysqldump的参数说明,总结常用的几个:

-A:--all databases 所有数据库备份
-B:指定多个数据库备份 增加建库语句及use语句
--compact 减少无用输出---去掉备份文件中注释的SQL语句,适合调试,生产中不建议使用
-F 刷新binlog日志,生产新文件,将来增量从这个新文件开始(完整恢复=全备+临界点binlog)
--master-data 增加binlog日志文件名及对应的位置点(有锁表功能)(即CHANGE MASTER 语句)
--master-data=1 不注释可执行 
--master-data=2 注释信息(
-x 是锁表,为什么要锁表?主要是确保备份数据的完整性,不要出现“锯齿状”数据,尽量在业务低谷时备份或内部专门用于备份的从数据库 在锁表
-l 对所有表加读锁。(默认是打开的,用--skip-lock-tables来关闭,上面的选项会把关闭-l选项)
-d 只备份库表结构无数据
-t 只备份数据无表结构 SQL语句形式
-T 库表,数据分离不同文件,数据是文本形式、
--single-transaction  适合InnoDB数据数据库备份,它有Acid 特性,隔离性:执行dump后,只能看到之前的数据,之后插入的被隔离
-q, --quick 直接导出不写入内存        Don't buffer query, dump directly to stdout.
##快速               (Defaults to on; use --skip-quick to disable.)
--single-transaction 备份期间不锁表,又能保证数据一致性(基于innodb引擎),例如给每个人照相,“快照”
-S 多实例指定socket
出现events—warning,下面是 处理方法:
这是因为mysqldump默认是不备份事件表的,只有加了--events 才会,解决办法: 
加上--events  或 --ignore-table=mysql.events 参数即可; 
   #导出事件      #忽略某个表的意思,可以mysqldump --help 查看
mysqldump -uroot -poldboy123 -S /data/3307/mysql.sock  --events  -A >all.sql
-B的“增加建库语句”作用
如果没有-B这个参数 备份文件中就不会有如下内容,在恢复的时候不会有建库的动作
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysql` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `mysql`;

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

三,正确备份演示

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

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库

[root@db02 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock  </opt/test.sql
mysql> show databases; #恢复test库,因为之前使用-B备份的,所以现在不用指定库,直接恢复
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)

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

 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/114234.html<

(0)
运维的头像运维
上一篇2025-02-17 19:23
下一篇 2025-02-17 19:24

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

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