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

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

相关推荐
麦壳饼14 小时前
SonnetDB:PID 调参实战:阶跃响应分析与参数解读
数据库·sonnetdb
神仙别闹15 小时前
基于Python+MySQL实现(Web)个人博客系统
python·mysql·php
猿究院--Cu-Sn合金15 小时前
Spring Boot + DeepSeek 求职 Agent 实践:工具注册、多轮调用与简历 JD 对比
数据库·人工智能·spring boot·后端·deepseek
IvorySQL15 小时前
PostgreSQL 日报|Anonymizer 3.3 修复高危漏洞(10 月 29 日)
数据库·postgresql
无足鸟ICT15 小时前
【RHCA+】影响Linux系统性能的因素
linux·运维·服务器
geovindu15 小时前
SQL Data Sampling and Approximation Techniques using postgreSQL 18
大数据·数据库·数据仓库·sql·postgresql·数据库开发·数据库架构
zyseo815 小时前
谷歌SEO 关键词研究完整方法论:从种子词到优先级矩阵
数据库·人工智能·矩阵
沫璃染墨15 小时前
从零入门计算机网络系列(十):HTTP协议进阶——从资源路径解析到状态码与请求头详解
linux·运维·服务器·网络·c++·http
oioihoii15 小时前
Windows部署MySpeed自建测速服务:Docker运行后直接测速,再配置固定公网地址远程查看
运维·docker·容器
Sayai15 小时前
Ubuntu 开发环境搭建避坑(一):网卡 EEE 致 60% 周期性丢包,Realtek RTL8125 网络黑洞排查与修复
linux·运维·网络·ubuntu·性能优化