5.27实验四 数据库的备份和恢复

实验四 数据库的备份和恢复

一、实验目的:

熟悉并掌握数据库备份和恢复的原理和操作。

二、实验要求:

掌握存储设备的创建、使用。掌握数据库中数据的导入导出操作。掌握数据上的备

份和恢复操作。掌握数据库备份策略的制定原理和具体操作。

三、实验步骤:

1、开始→程序→Microsoft SQL Server→SQL Server Management Stdio

2、在“连接到服务器”对话框中,选择“Windows 身份验证”,点击“连接”,进

SQL Server Management Stdio 操作界面。

3、创建 students 数据库。利用如下 sql 语句在 students 数据库中创建表。

4、数据库的备份与恢复实验

SSMS练习:

(1)创建永久备份设备:backup1和backup2。

-- 创建永久备份设备backup1

USE master;

GO

EXEC sp_addumpdevice 'disk', 'backup1', 'C:\SQLBackups\backup1.bak';

 

-- 创建永久备份设备backup2

EXEC sp_addumpdevice 'disk', 'backup2', 'C:\SQLBackups\backup2.bak';

(2)Students数据库进行一次完整备份,并以追加的方式备份到backup1设备上。

-- 对Students数据库进行一次完整备份

BACKUP DATABASE Students TO DISK = 'C:\SQLBackups\Students_full.bak';

 

-- 将完整备份追加到backup1设备上

BACKUP DATABASE Students TO backup1 WITH INIT;

3)删除Teaching表

DROP TABLE Teaching

(4)利用backup1对Students进行完整备份

-- 利用backup1对Students进行完整备份

BACKUP DATABASE Students TO backup1;

(5)Students数据库进行一次完整备份,并覆盖到backup1上,覆盖掉backup上已有的备份内容。

-- 对Students数据库进行一次完整备份,并覆盖到backup1上

BACKUP DATABASE Students TO backup1 WITH INIT;

(6)Course插入

INSERT INTO COUSe VALUES('C201',’离散教学',3,’必修’)

(7)Students以覆盖的方式差异备份到 backup2设备上。

-- 将Students以覆盖的方式差异备份到backup2设备上

BACKUP DATABASE Students TO backup2 WITH DIFFERENTIAL;

执行下述语句删除新插入的记录:

DELETE FROM Course WHERE Con = 'C201';

(8)利用backupl和 backup2备份设备对 Students数据库的备份。恢复Siudens数据库。完全恢复完成后,在Course表中有新插入的记录吗?为什么?

BACKUP DATABASE Students TO DISK = 'backup1, backup2'

恢复过程成功,并且用于恢复的备份包含了新插入的记录,那么在完全恢复后,Course表中应该存在新插入的记录。恢复过程将数据库恢复到备份时的状态,包括备份之前所做的任何更改。

(9) Sudents 数据库的恢复模式改为“完整”的。

ALTER DATABASE Students SET RECOVERY FULL

(10)Students数据库进行一次完整备份,并以覆盖的方式备份到backupl设备上。

BACKUP DATABASE Students TO DISK = 'backup1' WITH INIT

(11)执行下述语句向 Couuse 表中插人一行新记录:

 INSERT INTO Course VALUES('C202',‘编译原理',5,’必修’)

(13) Students数据库进行一次差异备份,并以追加的方式备份到backup1设备上。

BACKUP DATABASE Students TO DISK = 'backup1' WITH DIFFERENTIAL

(14) 执行下述语句删除新插入的记录:

DELETE FROM Course WHERE Cno=’c202’

(15)Students数据库进行一次日志备份,并以覆盖的方式备份到backup2设备上。

BACKUP LOG Students TO DISK = 'backup2' WITH INIT

(16)利用backupl和backup2备份设备恢复 Students数据库,恢复完成后,在Course 表中有新插入的记录吗?为什么?

RESTORE DATABASE Students FROM DISK = 'backup1' WITH REPLACE

RESTORE DATABASE Students FROM DISK = 'backup2' WITH REPLACE

不会,执行了删除操作,删除了之前插入的记录

T-SQL练习:

(1) 新建备份设备back1和back2,它们均存放在D:BACKUP文件夹下(假设此文件夹已存在),对应的物理文件名分别为backl.bak和back2.bak

-- 创建备份设备back1

BACKUP DATABASE Students

TO DISK = 'D:\BACKUP\back1.bak';

 

-- 创建备份设备back2

BACKUP DATABASE Students

TO DISK = 'D:\BACKUP\back2.bak';

(2) Stdents数据库进行一次完整备份,以覆盖的方式备份到 back1上。

BACKUP DATABASE Students

TO DISK = 'D:\BACKUP\back1.bak'

WITH FORMAT;

(3) 删除 SC表。

DROP TABLE SC;

(4) Students数据库进行一次差异备份,以追加的方式备份到back1上。

BACKUP DATABASE Students

TO DISK = 'D:\BACKUP\back1.bak'

WITH DIFFERENTIAL;

(5) 删除Stdents 数据库。

DROP DATABASE Students;

(6) 利用back1备份设备上对Students数据库进行的完整备份恢复该数据库,并在恢复完成之后使数据库成为可用状态。

RESTORE DATABASE Students FROM DISK = 'backup1' WITH REPLACE;

(7) SSMS工具的对象资源管理器中查看是否有Students数据库?为什么?如果有。展开此数据库中的“表”节点,查看是否有SC表?为什么?

有,可以

(8) 再次利用back1备份设备恢复Students数据库,首先恢复完整备份并使恢复后的数据库成为正在恢复状态,然后再恢复差异备份并使恢复后的数据库成为可用状态。

RESTORE DATABASE Students FROM DISK = 'backup1' WITH NORECOVERY

RESTORE DATABASE Students FROM DISK = 'backup2' WITH RECOVERY

(9) SSMS工具的对象资源管理器中展开Shudents数据库和其下的“表”节点,这次是否有 Teaching表?为什么?

可以

(10)对Students数据库进行一次完整备份,直接备份到D:BACKUP文件夹下、备份文件名为

students.bak.

BACKUP DATABASE Students TO DISK = 'D:\BACKUP\students.bak'

(10)  Suudents数据库进行一次事务日志备份,以追加的方式备份到back2 设备上。

BACKUP LOG Suudents TO DISK = 'back2' WITH INIT

四、实验报告注意事项及要求:

在进行数据库备份和恢复实验的过程中,我深刻体会到了数据安全的重要性。通过备份操作,可以有效地保护数据库中的重要信息,避免数据丢失或损坏的风险。在实验中,我学会了如何使用SQL语句对数据库进行完整备份、差异备份和日志备份,并了解了不同备份方式的应用场景和特点。

 

posted @     阅读(130)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示