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

指导书原文

数据库的备份与恢复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.mzph.cn/bicheng/79097.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 基础IO(上)--文件与文件描述符fd

前言: 在生活里,我们常和各种文件打交道,像用 Word 写文档、用播放器看视频,这些操作背后都离不开文件的输入输出(I/O)。在 Linux 系统中,文件 I/O 操作更是复杂且关键。 接下来我们将深入探讨…

快速了解Go+rpc

更多个人笔记:(仅供参考,非盈利) gitee: https://gitee.com/harryhack/it_note github: https://github.com/ZHLOVEYY/IT_note 文章目录 rpc基础概念GO的rpc应用简单编写json编写rpc rpc基础概念 电商系统…

基于大模型的膀胱肿瘤全周期诊疗方案研究报告

目录 一、引言 1.1 研究背景与意义 1.2 研究目的与方法 1.3 国内外研究现状 二、大模型预测膀胱肿瘤的原理与技术基础 2.1 大模型介绍 2.2 预测原理 2.3 技术支撑 三、术前风险预测与准备方案 3.1 肿瘤分期与恶性程度预测 3.2 患者身体状况评估 3.3 术前准备工作 …

2025年4月个人工作生活总结

本文为 2025年4月工作生活总结。 研发编码 一个项目的临时记录 自2月份领导让我牵头负责一个项目起,在本月算是有较多时间投入——但也是与之前的相比。 月初,清明节前一晚上,因某事务被叫上参加临时紧急远程会议,几方领导都在…

Python爬虫实战:获取软科网最新特定专业大学排名数据并做分析,为高考填报志愿做参考

一、引言 在高考升学的重要阶段,志愿填报成为考生和家长关注的核心问题。准确、全面且具有权威性的大学专业排名数据,是考生做出科学志愿决策的关键依据。软科网作为专业的大学排名信息发布平台,其发布的计算机科学与技术专业排名数据,因具有较高的公信力和参考价值,备受…

自学S32k144(18)————芯片锁死问题及成功解锁流程

1.锁死原因 温度过高flash异常操作静电等电压异常问题。。。。 本人出现情况:之前开发板不知什么原因,发生短路,重新置换芯片后,发现芯片在S32DS中无法正常烧录 判断可能是由于焊接时温度过高导致锁死。需解锁芯片。 2.解决方法…

ISIS的由于L1产生的一系列问题

如果有些名词不清晰可以查看之前文章 L1访问其他区域使用缺省路由会引发次优路径问题,但次优路径leak路由又会引发路由环路问题,下面将会从去缺省路由到路由环路一一解决 Level 1的缺省路由 L1访问其他区域使用缺省路由 --> 引发次优路径 --> 引…

C++继承(下)

目录 一、继承与友元 二、继承与静态成员 三、菱形继承及菱形虚拟继承 1. 继承的方式 2. 菱形继承的问题 3. 菱形虚拟继承 4. 虚拟继承解决数据冗余和二义性的原理 4.1 普通菱形继承的内存布局 4.2 虚拟继承的内存布局 四、继承的总结和反思 1. 多继承的复杂性 2.…

【漫话机器学习系列】233.激活阈(Threshold Activation)

深度学习入门:了解“阈值激活函数”(Threshold Activation Function) 激活函数是神经网络中至关重要的一环。今天,我们通过一幅简单直观的手绘图,一起理解最早期也最基础的激活函数之一 —— 阈值激活函数(…

(4)python中jupyter lab使用python虚拟环境

1. 先了解IPython和IPyKernel简介 IPython 是一个功能强大的交互式 Python 解释器和开发环境。它提供了一种增强的 Python Shell,使得用户能够以交互的方式探索、分析和可视化数据。IPython 的名称来源于 "Interactive Python",体现了其交互式的特性。 IPyKernel 是…

nginx 配置要领

你提出的问题非常好!确实在配置 WebSocket 代理时,proxy_pass 的 URL 处理需要特别注意。以下是关键解释和修正建议: 1. 原配置的问题分析 location /ws/ {proxy_pass http://fastapi-container:8000; # 会保留 /ws/ 前缀传递给后端 }这种配…

【AI】DeepSeek 流程图 / 时序图制作,Word 排版错乱问题,文字转直观图形

一:动态流程图 / 时序图制作(DeepSeek Draw.IO) 工具准备 DeepSeek(AI 生成代码):官网(免费)Draw.IO(可视化渲染):官网(免费&#…

4. python3基本数据类型

Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Set(集合) Dictionary(字典) Pyt…

WPF之TextBox控件详解

文章目录 1. TextBox概述2. 基本属性与功能3. 输入控制详解3.1 MaxLength3.2 AcceptsReturn3.3 AcceptsTab3.4 CharacterCasing3.5 IsUndoEnabled3.6 自定义输入限制 4. 文本选择与操作4.1 选择属性4.2 选择方法4.3 文本操作4.4 选择事件4.5 实现自定义文本处理功能 5. 滚动支持…

1.4 点云数据获取方式——结构光相机

图1-4-1结构光相机 结构光相机作为获取三维点云数据的关键设备,其工作原理基于主动式测量技术。通过投射已知图案,如条纹、点阵、格雷码等,至物体表面,这些图案会因物体表面的高度变化而发生变形。与此同时,利用相机从特定

【MATLAB第118期】基于MATLAB的双通道CNN多输入单输出分类预测方法

【MATLAB第118期】基于MATLAB的双通道CNN多输入单输出分类预测方法 一、双通道CNN简介 在深度学习领域,卷积神经网络(CNN)凭借其强大的特征提取能力,已成为图像识别、自然语言处理等任务的核心技术。传统单通道CNN在处理单一模态…

2025上海车展 | 移远通信推出自研NG-eCall QuecOpen方案,助力汽车安全新标准加速落地

4月29日,在2025上海国际汽车工业展览会期间,全球领先的物联网和车联网整体解决方案供应商移远通信宣布,正式发布自主研发的NG-eCall(下一代紧急呼叫系统)QuecOpen解决方案。 该方案凭借高度集成的软硬件协同设计&…

leetcode76

目录 803ms超时。。。。越改越超时。。。 一些纠缠 代码分析: 代码问题: 改进建议: 示例代码: The error message you’re seeing indicates that there is a reference binding to a null pointer in your code. This typ…

大数据应用开发和项目实战-Seaborn

一、Seaborn概述 Seaborn是基于Python数据可视化库Matplotlib开发的扩展库,专注于统计图形的绘制,旨在通过简洁的代码实现复杂数据的可视化,帮助用户更轻松地呈现和理解数据。其核心设计目标是简化统计可视化流程,提供高级接口和美…

数据科学与计算

Seaborn的介绍 Seaborn 是一个建立在 Matplotlib 基础之上的 Python 数据可视化库,专注于绘制各种统计图形,以便更轻松地呈现和理解数据。 Seaborn 的设计目标是简化统计数据可视化的过程,提供高级接口和美观的默认主题,使得用户…