《数据库运维》 郭文明 实验4 数据库备份与恢复实验核心操作与思路解析

1. 实验目的

练习数据库备份与恢复的操作方法。说明:实验过程中可以使用MySQL官网提供实例employees数据库,下载地址为https://launchpad.net/test-db/employees-db-1/1.0.6,也可以自己创建数据库进行备份恢复实验。

2. 实验内容

【实验4-1】使用select...into...outfile语句对数据库employees的表departments进行数据导出。

【实验4-2】使用select...into...outfile语句对数据库employees的表salaries进行数据导出,并使用fields字句指定字段值之间的符号分隔符为",",字段的包裹符号为"""。

【实验4-3】使用mysqldump命令备份数据库中的某个表,对数据库employees的表deparments导出SQL语句。

【实验4-4】使用mysqldump命令备份单个数据库,对数据库employees的导出SQL语句,并忽略数据表departments。

【实验4-5】使用mysqldump命令备份多个数据库,对数据库employees、test两个数据库导出SQL语句。

【实验4-6】使用mysqldump命令导出界定格式文件数据,对数据库employees进行CSV文件数据的导出。

【实验4-7】使用图形化工具MySQL Workbench导出数据库employees的表departments的CSV格式数据。

【实验4-8】使用图形化工具MySQL Workbench导出数据库employees的表departments的SQL文件。

【实验4-9】使用DELETE语句删除employees数据库的表departments的表格数据,使用LOAD DATA INFILE语句,通过【实验5-1】导出的文件,对删除的数据进行恢复,并使用SELECT语句对恢复的数据进行检查。

【实验4-10】使用DELETE语句删除employees数据的表salaries的表格数据,使用LOAD DATA INFILE语句以及FIELDS子句,通过【实验5-2】导出的文件,对删除的数据进行恢复,即字段值之间的符号分隔符为",",字段的包裹符号为"""。

【实验4-11】使用DELETE语句删除employees数据的表salaries的表格数据,使用mysqlimport命令,通过【实验5-2】导出的文件,对删除的数据进行恢复,即字段值之间的符号分隔符为",",字段的包裹符号为"""。

【实验4-12】使用DROP命令删除employees数据库下的除departments的所有数据表及其数据,使用mysql命令行工具,通过【实验5-4】导出的SQL文件恢复删除的数据。

【实验4-13】使用DROP命令删除数据库employees和数据库test,使用SOURCE语句,通过【实验5-5】导出的SQL文件恢复删除的数据。

【实验4-14】删除数据库employees的表departments中的数据,使用图形化工具MySQL Workbench,通过【实验5-7】恢复删除的数据。

【实验4-15】删除数据库employees的表departments及其数据,使用图形化工具MySQL Workbench,通过【实验5-8】恢复删除的数据。

【实验4-16】在时间点A使用mysqldump命令对数据库employees导出SQL文件,进行逻辑备份,备份完成,创建一个表test,并插入数据,在时间点B删除创建的表test,在时间点C再次创建一个表test2,并插入一条数据。在这个操作过程中在时间点B删除表test是误操作。使用mysqlbinlog进行基于时间点的恢复操作,即经过恢复之后employees数据库中会同时存在数据表test2和数据表test。

3. 实验要求

(1)所有操作均在命令行或者MySQL Workbench中完成。

(2)将操作过程以屏幕抓图的方式复制,形成实验文档,并对照本章内容写出分析报告。

4. 分析报告

通过本次试验的学习,掌握了:

1、数据的导出和导入有利于我们快速把数据输入到数据库中和获得数据库中的数据。

2、数据的导入和导出时要注意数据源和目的的选择。

3、导入数据的时候要数据的格式和分隔符,还要注意表的约束条件和参照完整性。

4、数据库的及备份也注意目标文件的选择以便在还原时找到目标文件。

5、掌握了mysql的数据备份和恢复方法。

为以后的数据库学习,打下了良好的基础。

sql 复制代码
【实验4-1】使用select...into...outfile语句对数据库employees的表departments进行数据导出。
select * from departments into outfile "departments.txt";
【实验4-2】使用select...into...outfile语句对数据库employees的表salaries进行数据导出,并使用fields字句指定字段值之间的符号分隔符为",",字段的包裹符号为"""。
select * from salaries into outfile "salaries.txe" fields terminated by ',' enclosed by "'";
【实验4-3】使用mysqldump命令备份数据库中的某个表,对数据库employees的表deparments导出SQL语句。
mysqldump -uroot -p employees departments>d:backup\departments_20240511.sql
【实验4-4】使用mysqldump命令备份单个数据库,对数据库employees的导出SQL语句,并忽略数据表departments。
mysqldump -uroot -p employees --ignore-table departments.departments > d:\backup\employees_without_departments.sql
【实验4-5】使用mysqldump命令备份多个数据库,对数据库employees、test两个数据库导出SQL语句。
mysqldump -uroot -p --databases employees test > d:\backup\employees_and_test.sql
【实验4-6】使用mysqldump命令导出界定格式文件数据,对数据库employees进行CSV文件数据的导出。
mysqldump -uroot -p --tab=d:\backup\data employees --fields-terminated-by ','
【实验4-9】使用DELETE语句删除employees数据库的表departments的表格数据,使用LOAD DATA INFILE语句,通过【实验4-1】导出的文件,对删除的数据进行恢复,并使用SELECT语句对恢复的数据进行检查。
delete from departments;
load data infile 'departments.txt' into table departments;
select - from departments;
【实验4-10】使用DELETE语句删除employees数据的表salaries的表格数据,使用LOAD DATA INFILE语句以及FIELDS子句,通过【实验4-2】导出的文件,对删除的数据进行恢复,即字段值之间的符号分隔符为",",字段的包裹符号为"""。
delete from salaries;
load data infile 'salaries.txt' into table salaries fields terminated by ',' enclosed by "'";
select * from salaries;
【实验4-11】使用DELETE语句删除employees数据的表salaries的表格数据,使用mysqlimport命令,通过【实验4-2】导出的文件,对删除的数据进行恢复,即字段值之间的符号分隔符为",",字段的包裹符号为"""。
delete from salaries;
mysqlimport -uroot -p employees salaries.txt --fields-terminated-by "," --fields-enclosed-by ","
【实验4-12】使用DROP命令删除employees数据库下的除departments的所有数据表及其数据,使用mysql命令行工具,通过【实验4-4】导出的SQL文件恢复删除的数据。
drop table dept_emp,dept_manager,employees,salaries,titles;
mysql -uroot -p employees<"d:\backup\employees_without_departments.sql"
【实验4-13】使用DROP命令删除数据库employees和数据库test,使用SOURCE语句,通过【实验4-5】导出的SQL文件恢复删除的数据。
drop database employees;
drop database test;
source d:\backup\employees_and_test.sql;
【实验4-14】删除数据库employees的表departments中的数据,使用图形化工具MySQL Workbench,通过【实验4-7】恢复删除的数据。
delete from departments;
【实验4-15】删除数据库employees的表departments及其数据,使用图形化工具MySQL Workbench,通过【实验4-8】恢复删除的数据。
drop table departments;
【实验4-16】在时间点A使用mysqldump命令对数据库employees导出SQL文件,进行逻辑备份,备份完成,创建一个表test,并插入数据,在时间点B删除创建的表test,在时间点C再次创建一个表test2,并插入一条数据。在这个操作过程中在时间点B删除表test是误操作。使用mysqlbinlog进行基于时间点的恢复操作,即经过恢复之后employees数据库中会同时存在数据表test2和数据表test。
mysqldump -uroot -p employees>d:\backup\employees.sql
create table test(name varchar(10),age int);
insert into test values("LinMing",20);
drop table test;
create table test2(name varchar(10));
insert into test2 values("李明");
mysqlbinlog d:\mysql-8.0.27-winx64\data\mysql.000001
mysqlbinlog --stop-datetime="24-05-12 9:30:17" d:\mysql-8.0.27-winx64\data\mysql.000001
use employees;
source d:\backup\employees.sql;
select * from test;
select * from test2;

本文为个人学习笔记与经验总结,仅供学习交流参考

相关推荐
马克学长5 小时前
SSM物流信息管理系统35wzn(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·数字化管理·ssm 框架·物流信息管理
IndulgeCui5 小时前
KingbaseES 三权分立原则
数据库
JIngJaneIL5 小时前
基于Java饮食营养管理信息平台系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot
德彪稳坐倒骑驴5 小时前
SQL之前不懂,后来又学会的东西
数据库·sql
hssfscv5 小时前
Mysql学习笔记——多表查询
笔记·学习·mysql
Maiko Star5 小时前
基于Redis ZSet实现多维度题目贡献度排行榜
数据库·redis·缓存
郝学胜-神的一滴5 小时前
Linux系统调用中断机制深度解析
linux·运维·服务器·开发语言·c++·程序人生
老华带你飞5 小时前
垃圾分类|基于springboot 垃圾分类系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring
普马萨特5 小时前
新型基础设施运维(Infratech + GIS):一场被低估的结构性变革
运维·人工智能