《数据库运维》 郭文明 实验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;

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

相关推荐
Hgfdsaqwr3 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
绾樘3 小时前
RHCE--基于Nginx的Web服务器配置
运维·服务器·nginx
charlotte102410244 小时前
数据库概述
数据库
打工的小王4 小时前
docker(三)具体项目的部署
运维·docker·容器
清平乐的技术专栏5 小时前
HBase集群连接方式
大数据·数据库·hbase
ʚB҉L҉A҉C҉K҉.҉基҉德҉^҉大6 小时前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
哈__6 小时前
多模融合 一体替代:金仓数据库 KingbaseES 重构企业级统一数据基座
数据库·重构
老邓计算机毕设6 小时前
SSM医院病人信息管理系统e7f6b(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·医院信息化·ssm 框架·病人信息管理
一叶星殇7 小时前
.NET WebAPI:用 Nginx 还是 IIS 更好
运维·nginx·.net
2601_949613027 小时前
flutter_for_openharmony家庭药箱管理app实战+药品分类实现
大数据·数据库·flutter