当前位置: 首页 > news >正文

【数据库原理及安全实验】实验五 数据库备份与恢复

指导书原文

数据库的备份与恢复SSMS

【实验目的】

1) 熟悉并掌握利用界面操作进行数据库备份和恢复的原理和操作。

【实验原理】

1) 数据库的恢复包括大容量日志恢复模式和简单恢复模式。其中大容量日志恢复模式,简单地说就是要对大容量操作进行最小日志记录,节省日志文件的空间(如导入数据、批量更新、SELECT INTO等操作时)。而在简单恢复模式下,数据库会自动把不活动的日志删除,因此简化了备份的还原,但因为没有事务日志备份,所以不能恢复到失败的时间点。通常,简单恢复模式只用于对数据库数据安全要求不太高的数据库,并且在该模式下,数据库只能做完整和差异备份。

【实验环境】

windows7

SQL SERVER 2008

【实验步骤】

一、建表

1.1 开始→程序→Microsoft SQL Server 2008 R2→SQL Server Management Studio。

1.2 在“连接到服务器”对话框中,选择“Windows 身份验证”,点击“连接”,进 入SQL Server Management Studio操作界面。

1.3 创建student数据库(新建查询 并输入语句“create database student”)。利用如下SQL语句在student数据库中创建表(通过“use databasename;”语句或”展开数据库->右击 databasename->选择新建查询“,选择要操作的数据库,再执行查询、插入等操作命令)。

CREATE TABLE Student (

Sno char ( 7 ) PRIMARY KEY,

Sname char ( 10 ) NOT NULL,

Ssex char (2),

Sage tinyint ,

Sdept char (20)

)

CREATE TABLE Course (

Cno char(10) NOT NULL,

Cname char(20) NOT NULL,

Ccredit tinyint ,

Semester tinyint,

PRIMARY KEY(Cno)

)

CREATE TABLE SC

(

Sno char(7) NOT NULL,

Cno char(10) NOT NULL,

Grade tinyint,

XKLB char(4) ,

PRIMARY KEY ( Sno, Cno ) ,

FOREIGN KEY (Sno) REFERENCES Student (Sno),

FOREIGN KEY (Cno) REFERENCES Course (Cno)

)

二、完整性备份

2.1 单击服务器对象—>备份设备—>新建备份设备。如图1所示

图 1

2.2 创建永久备份设备:backup1,backup2。如图2、图3所示

图 2

图 3

2.3 备份设备backup1、backup2创建成功。如图4所示

图 4

2.4 右键student数据库,选择任务—>备份。如图5所示

图 5

2.5 对student数据库进行一次完整备份,并以追加的方式被分到backup1设备上。如图6所示

图 6

2.6 执行下述语句删除students数据库中的SC表drop table sc。如图7所示

图 7

2.7 删除student数据库。如图8所示

图 8

2.8 右键数据库,选择还原数据库。如图9所示

图 9

2.9 选择源备份,单击浏览按钮。如图10所示

图 10

2.10 选择备份设备,添加backup1。如图11所示

图 11

2.11 利用backup1设备上对student数据库进行的完整备份,恢复出student数据库。如图12所示

图 12

2.12 数据库student还原成功。如图13所示

图 13

三、差异备份

3.1 右键student数据库,选择任务—>备份。如图14所示

图 14

3.2 对student数据库进行一次完整备份并以覆盖的方式备份到backup1设备上,覆盖掉backup1设备上已有的备份内容。如图15所示

图 15

3.3 行下述语句在course表中插入一行新记录:INSERT INTO Course VALUES('C201','离散数学','','')。如图16所示

图 16

3.4 将student数据库以覆盖的方式差异备份到backup2设备上。如图17、图18所示

图17

图 18

3.5 执行语句删除新插入记录: DELETE FROM Course WHERE Cno='C201'。如图19所示

图 19

四、日志备份

4.1 删除student数据库。如图20所示

图 20

4.2 右键数据库,选择还原数据库。如图21所示

 图 21

4.3 选择源设备,单击浏览按钮。如图22所示

图 22

4.4 选择备份设备,添加备份设备backup1。如图23所示

图 23

4.5 将student数据库的恢复模式设置为“完整”并进行还原。如图24所示

图 24

4.6 对student数据库进行一次完整备份,以覆盖的方式备份到backup1上。如图25所示

图 25

4.7 执行下述语句向Course表中插入一行新记录:INSERT INTO Course VALUES('C2002','编译原理','','') 。如图26所示

图 26

4.8 对student数据库进行差异备份,并以追加的方式备份到backup1上。如图27所示

图 27

4.9 执行语句: DELETE FROM Course WHERE Cno='C202' 。如图28所示

图 28

4.10 对student数据库进行一次日志备份,并以覆盖的方式备份到backup2。如图29所示

图29

图 29

实验报告

删除Warning

采用drop database student命令,我这边是根本删不掉数据库的。他的报错是:
消息 3702,级别 16,状态 3,第 1 行 无法删除数据库 "student",因为该数据库当前正在使用。

对此,首先我跳出了这个数据库,use另外的数据库,但是删不了

然后,采用手动删除,结果如下:

于是我破防了,这个实验在我这里实现不了,希望做成功的同志们评论区见,造福后人。

我只能把除了删除的操作做完,下面就是结果图。

日志备份warning

日志备份,在现在的SQLserver里面也没有,我同学问了老师。。。说不用做。

五、实验过程原始记录(数据、图表、计算等)

①完整性备份结果

②差异备份的结果

 

③日志备份结果

 

六、实验结果及分析

问题描述:利用backup1backup2备份设备对students数据库的备份,恢复数据库。完全恢复后,在Course表中有新插入的记录吗?为什么?

答:没有,这是因为:

在实验的完整性备份部分,backup1 设备上存储的是 student 数据库的完整备份。这个备份是在执行 INSERT INTO Course 插入新记录之前创建的。因此,恢复 backup1 设备上的完整备份时,数据库的状态会回到备份时的状态,即 Course 表中不会有后续插入的新记录。

在实验的差异备份和日志备份部分,虽然进行了差异备份和日志备份,但在恢复时只使用了 backup1 设备上的完整备份。差异备份和日志备份记录了备份之后对数据库的修改(例如插入记录的操作),但这些备份需要在恢复完整备份之后依次应用,才能恢复数据库到最新的状态。由于实验中没有提到应用差异备份和日志备份,因此恢复后的数据库状态不会包含这些后续的修改。

在实验的 2.11 步骤中,仅使用 backup1 设备上的完整备份恢复了数据库。这种恢复方式只能还原到完整备份的时间点,而无法还原后续的更改,如插入记录的操作。

因此,完全恢复后,Course 表中不会有新插入的记录,因为恢复操作仅使用了完整备份,而没有应用后续的差异备份或日志备份。

http://www.xdnf.cn/news/230527.html

相关文章:

  • 短视频矩阵系统贴牌开发实战:批量剪辑文件夹功能设计与实现
  • mybatis-plus 枚举实现模版,导入,导出
  • JVM——Java的基本类型的实现
  • 【ArcGISPro学习笔记】布局输出时图例总是有省略号怎么办?
  • 大连理工大学选修课——机器学习笔记(1):概述
  • 【c++】【STL】list详解
  • Laravel + Vue 3 (Vite、TypeScript) SPA 设置全攻略
  • 在Windows系统上如何用Manifest管理嵌入式项目
  • SVTAV1 编码函数 svt_aom_is_pic_skipped
  • 逻辑回归在信用卡欺诈检测中的实战应用
  • 解决GoLand无法Debug的问题
  • GCC-C语言“自定义段”
  • 2025东三省B题深圳杯B题数学建模挑战赛数模思路代码文章教学
  • AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建
  • 2024睿抗CAIP-编程技能赛-本科组(省赛)题解
  • 软考:硬件中的CPU架构、存储系统(Cache、虚拟内存)、I/O设备与接口
  • iview内存泄漏
  • Copilot重磅更新:引用文件夹创建Word文档
  • OpenCV 4.7企业级开发实战:从图像处理到目标检测的全方位指南
  • 二进制如何与三生原理实现统一?
  • LVGL -按键介绍 下
  • C# 高效操作excel文件
  • JavaWeb学习打卡-Day6-SpringBean管理、SpringBoot自动装配、Maven高级
  • JConsole监控centos服务器中的springboot的服务
  • AbMole小百科:OK432如何为肿瘤和免疫研究开辟新路径?
  • huggingface下载数据和模型,部分下载,本地缓存等常见问题踩坑
  • 计算机视觉综合实训室解决方案
  • Java 未来技术栈:从云原生到 AI 融合的企业级技术演进路线
  • 正向代理、反向代理机制与 Windows和Linux系统代理设置
  • 插入到word里面的用origin画的图,怎么获取图片细节?