IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 【mysql】E7 数据库备份和恢复 -> 正文阅读

[大数据]【mysql】E7 数据库备份和恢复


E7 数据库备份和恢复

一、实验目的

在Mysql上,学习如何备份数据库和恢复的各种方法。

二、实验要求:

1、基本硬件配置:英特尔Pentium III 以上,大于4G内存;
2、软件要求:Mysql;
3、时间:1小时;
4、撰写实验报告并按时提交。

三、实验内容:

Problem 1 查看状态

show master status;

在这里插入图片描述

show variables like '%secure%';

my.ini中的secure-file-priv改为“”
在这里插入图片描述
在这里插入图片描述

Problem 2 表格数据备份和恢复

select * into OUTFILE "e:\\databases\\data\\test.sql" fields terminated by ',' lines terminated by ' ' from example.emp;

在这里插入图片描述

SET FOREIGN_KEY_CHECKS=0;
delete from emp;

在这里插入图片描述

load data infile "e:\\databases\\data\\test.sql" into table example.emp fields terminated by ',' lines terminated by ' ';

在这里插入图片描述

Problem 3 使用mysqldump进行数据备份

1、备份整个Mysql所有数据库

mysqldump -u root -p --all-databases --lock-all-tables > e:\temp\mysqldbs.sql

在这里插入图片描述

show master status;
create database test;

在这里插入图片描述

切换到e:

source e:/temp/mysqldbs.sql;

错误问题:
ERROR:
ASCII ‘\0’ appeared in the statement, but this is not allowed unless option --binary-mode is enabled and mysql is run in non-interactive mode. Set --binary-mode to 1 if ASCII ‘\0’ is expected. Query: ‘?t-’.
错误解决:
我是用powershell做的,出现了这个问题,我使用cmd就解决了这个问题,至于原因?不晓得hh
在这里插入图片描述

show master logs;

在这里插入图片描述

reset master;

在这里插入图片描述

flush logs;

在这里插入图片描述

show master logs;

在这里插入图片描述

show binlog events in 'binlog.000002';

在这里插入图片描述

2、备份某个数据库

mysqldump -u root -p --databases example --lock-all-tables > e:\\temp\\example.sql

在这里插入图片描述

mysqldump -u root -p --databases example > e:\\databases\\data\\example_1.sql.gz

在这里插入图片描述

3、备份某些table

mysqldump -u root -p --databases example --tables emp > e:\\temp\\example_emp.sql

在这里插入图片描述

mysqldump -u root -p --databases example --tables emp dept > e:\\temp\\example_emp_dept.sql

在这里插入图片描述

4、导出表及结构

mysqldump -u root -p -d --databases example --tables emp dept > e:\\temp\\example_struct.sql

请添加图片描述

5、某些表除外其余表都需导出(只是导出结构)

mysqldump example -u root -p --tables dept > e:\\temp\\db_script.sql

在这里插入图片描述

mysqldump -u root -p --databases example --ignore-table=example.dept > e:\\temp\\example_1.sql

在这里插入图片描述

6、恢复数据库或者表格数据

Source e:/temp/example_emp.sql;

在这里插入图片描述

source e:/temp/example_struct.sql;

在这里插入图片描述

flush logs;

在这里插入图片描述

7、备份与恢复

mysqldump -u root -p --databases example --lock-all-tables > e:\\temp\\example.sql

在这里插入图片描述

show master logs;

在这里插入图片描述

改变数据

update emp set sal = 9999 where empno = 1;

在这里插入图片描述

flush logs;

在这里插入图片描述

改变数据

恢复:

source e:/temp/example.sql;

在这里插入图片描述

mysqlbinlog --no-defaults D:\\MySQL\\mysql-8.0.25-winx64\\data\\binlog.000002 | mysql -u root -p

在这里插入图片描述

Problem 4 使用二进制日志进行备份和恢复

mysqldump -u root -p --databases example --lock-all-tables > e:\\temp\\example.sql

在这里插入图片描述

flush logs;

在这里插入图片描述

更新数据

insert into emp(empno) values(33);

在这里插入图片描述

show binlog events in 'binlog.000005'\G;

在这里插入图片描述

flush logs;

在这里插入图片描述

更新数据

insert into emp(empno) values(34);

在这里插入图片描述

flush logs;(变为'binlog.000007'

在这里插入图片描述

show binlog events in 'binlog.000007'\G;

在这里插入图片描述

source e:/temp/example.sql;

在这里插入图片描述

mysqlbinlog --no-defaults D:\MySQL\mysql-8.0.25-winx64\data\binlog.000006 | mysql -u root –p

在这里插入图片描述

mysqlbinlog --no-defaults D:\MySQL\mysql-8.0.25-winx64\data\binlog.000007 | mysql -u root –p

在这里插入图片描述

mysqlbinlog --no-defaults --stop-position=23425 D:\MySQL\mysql-8.0.25-winx64\data\binlog.000007 | mysql -u root -p

在这里插入图片描述

mysqlbinlog --no-defaults --start-position=23425 --stop-position=23456    D:\MySQL\mysql-8.0.25-winx64\data\binlog.000007 | mysql -u root -p

在这里插入图片描述

Problem 5 请设计一个数据库恢复的综合实验

按次序完成以下功能:

1、数据库example做一次完全备份;

mysqldump -u root -p --databases example --lock-all-tables > e:\\temp\\exampledb.sql

在这里插入图片描述

2、 至少两个操作修改、insert或删除emp数据,然后做一次增量备份x;

insert into emp(empno) values(40);

在这里插入图片描述

delete from emp where empno = 23;

在这里插入图片描述

Flush logs;
Show master status;

在这里插入图片描述

3、 至少三个操作:修改某些数据op1、删除emp表格6号部门的所有数据op2、insert数据op3,然后再做一次增量备份x+1;

SET FOREIGN_KEY_CHECKS=0;
delete from emp where deptno = 6;

在这里插入图片描述

insert into emp(empno) values(44);

在这里插入图片描述

Flush logs;

show master status;

在这里插入图片描述

4、 现在假设操作3中的删除emp表格6号部门的所有数据op2是属于误操作,请设计备份和恢复方案并实现之。

show binlog events in 'binlog.000010'\G;

在这里插入图片描述

在这里插入图片描述

可以看到删除的部分是从448到1656所以我们跳过这一段就可以了

mysqlbinlog --no-defaults D:\MySQL\mysql-8.0.25-winx64\data\binlog.000009 | mysql -u root -p

tips:这里为什么是9是因为之前误操作了一下,导致多+1了,不过问题不大,大家能理解就行.QAQ
在这里插入图片描述

mysqlbinlog --no-defaults --start-position=4 --stop-position=448 D:\MySQL\mysql-8.0.25-winx64\data\binlog.000010 | mysql -u root -p

在这里插入图片描述

mysqlbinlog --no-defaults --start-position=1656 --stop-position=2094 D:\MySQL\mysql-8.0.25-winx64\data\binlog.000010 | mysql -u root -p

在这里插入图片描述

use example;
select * from emp;

在这里插入图片描述

可见成功将误操作的删除给还原了.

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-30 08:47:05  更:2022-04-30 08:49:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:59:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码