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

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

相关推荐
LN花开富贵11 小时前
Ubuntu aarch64 架构安装 NoMachine 远程控制 避坑与实战
linux·运维·笔记·学习·ubuntu·嵌入式
Yushan Bai11 小时前
ORACLE Enterprise Manager Cloud Control 系列测试2- 日常管理和SQL优化
数据库·oracle
-To be number.wan11 小时前
数据库单表查询全攻略
数据库·学习
文心快码BaiduComate11 小时前
520,Comate Mission模式跨越界限,和你达成最「深」联动
前端·数据库·后端
杨云龙UP11 小时前
Oracle RAC/ODA环境下如何准确查询PDB表空间已分配大小?一次说清Oracle表空间逻辑大小和ASM三副本实际占用_2026-05-19
linux·运维·数据库·sql·oracle·ffmpeg
@nengdoudou11 小时前
KingbaseES数据库MySQL模式使用 “GROUP BY“
数据库·mysql
晨曦中的暮雨11 小时前
3.20字节云部门一面|面经
数据库·oracle
万邦科技Lafite11 小时前
实战演练:利用京东API一键抓取商品详情
数据库·redis·python·缓存·开放api·淘宝开放平台
LIUAWEIO11 小时前
接口 data 满屏反斜杠,怎么展开?
java·开发语言·数据库·json在线解析·data是字符串·json转义·二次json
码点滴11 小时前
K8s配置与存储运维自动化:从隐形杀手到 AI Agent 安全闭环
运维·人工智能·自动化