实验四 数据库的备份和恢复
一、实验目的:
熟悉并掌握数据库备份和恢复的原理和操作。
二、实验要求:
掌握存储设备的创建、使用。掌握数据库中数据的导入导出操作。掌握数据上的备
份和恢复操作。掌握数据库备份策略的制定原理和具体操作。
三、实验步骤:
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语句对数据库进行完整备份、差异备份和日志备份,并了解了不同备份方式的应用场景和特点。
标签:DATABASE,Students,备份,5.27,backup1,BACKUP,数据库 From: https://www.cnblogs.com/yindantong/p/18258721