数据库备份及恢复

《数据库系统概论》实验报告

日期

 

题目:数据库备份及恢复

姓名

 

学号

 

 

实验环境:

已安装SQL Server 2014版本的计算机

 

以管理员帐号登录SQL Server Management Studio,以原有数据库stu为基础,请使用Management Stuio界面方式或T-SQL 语句实现以下操作:

  1. 针对数据库stu创建完全数据库备份集stu.bak,目标磁盘为D:\ user \ stu.bak;

T-SQL语句为

BACKUP DATABASE stu

TO DISK='D:\user\stu.bak'

 

 

 

  1. 在数据库stu中新建数据表ceshi,内容自定,然后针对数据库stu创建差异备份;

首先应创建一个新的数据表ceshi

T-sql语句

create table ceshi

(

    Sno char(9) not null primary key,

    Sname char(6) not null,

    Ssex char(2) null,

    Sage int null,

    Sdept varchar(8) null

)

对数据库stu创建差异备份

T-sql语句:

backup database stu

To disk='D:\user\stu_differential.bak' with differential

结果为:

  1. 向数据库stu的数据表ceshi插入部分记录,然后针对数据库stu创建事务日志备份;

使用以下语句向数据表ceshi中插入部分记录

先插入值:

INSERT into ceshi(Sno,Sname,SSex,Sage,Sdept)

SELECT '200515001','赵菁菁','女',23,'CS' UNION

SELECT '200515002','李勇','男',20,'CS' UNION

SELECT '200515003','张力','男',20,'CS' UNION

SELECT '200515004','张衡' ,'男',18,'IS' UNION

SELECT '200515005','张向东' ,'男',20,'IS' UNION

SELECT '200515006','张向丽' ,'女',20,'IS' UNION

SELECT '200515007','王芳' ,'女',20,'CS' UNION

SELECT '200515008','王民生' ,'男',25,'MA' UNION

SELECT '200515025','朱小鸥' ,'女',30,'WM'

对数据库stu创建事务日志备份

backup log stu

to disk='D:\user\stu_log.bak'

结果为:

  1. 根据需要,将数据库恢复到数据库stu的最初状态;

T-SQL语句:

use master

restore database stu

from disk='D:\user\stu.bak'

with replace,norecovery

执行结果为

  1. 根据需要,将数据库恢复到创建数据表ceshi后的状态;

sql语句:

use master restore database stu

from disk='D:\user\stu.bak'

with replace,norecovery

go

restore database stu

from disk='D:\user\stu_differential.bak'

结果为:

  1. 根据需要,将数据库恢复到在ceshi表插入记录后的状态;

SQL语句的实现:

use master restore database stu

from disk='D:\user\stu.bak'

with replace,norecovery

go

restore log stu

from disk='D:\user\stu_log.bak'

结果为:

Ceshi表中的数据已经还原了回来

  1. 针对现有数据库stu创建完全文件和文件组备份集stu_file,目标磁盘为D:\ user \ stu_file.bak;

在现有数据库stu上创建一个文件db2

 

 

 

 

 

 

 

使用SQL语句执行:

backup database stu

file='stu',

file='db2',

filegroup='primary'

To disk='D:\user\stu_file.bak'

即可创建一个文件组备份集stu_file

执行结果:

  1. 在当前数据库中新建数据表ceshi2,然后针对数据库stu创建差异文件和文件组备份;

使用SQL语句执行:

use stu

create table ceshi2(testID int,testName varchar(10))

GO

backup database stu

file='stu',

file='db2',

filegroup='primary'

To disk='D:\user\stu_file_differential.bak'

with differential

执行结果为:

  1. 向数据库stu的数据表ceshi2插入部分记录,然后针对数据库stu创建事务日志文件和文件组备份;

编辑ceshi2数据表,手动其添加几条数据

然后使用语句为stu创建事务日志文件和文件组备份

backup log stu

TO disk='D:\user\stu_file_log.bak'

执行结果:

  1. 根据需要,将数据库以文件和文件组方式恢复到创建数据表ceshi2后的状态;

先还原到初始状态

use master

restore database stu

file='stu',

file='db2',

filegroup='primary'

from disk='D:\user\stu_file.bak'

with replace

Go

在还原到差异备份

use master

restore database stu

file='stu',

file='db2',

filegroup='primary'

from disk='D:\user\stu_file.bak'

with replace,norecovery

restore database stu

file='stu',

file='db2',

filegroup='primary'

from disk='D:\user\stu_file_differential.bak'

 

执行结果:

 

 

 

 

 

 

  1. 根据需要,将数据库以文件和文件组方式恢复到数据表ceshi2插入记录后的状态;

使用以下sql语句

use master

restore database stu

file='stu',

file='db2',

filegroup='primary'

from disk='D:\user\stu_file.bak'

with replace,norecovery

Go

restore log stu

from disk='D:\user\stu_file_log.bak'

执行结果:

 

 

 

 

原来插入的数据也还原了回来

  1. 为数据库stu设置一个备份计划1(建议使用数据库维护计划向导,【服务器】→【管理】→【维护计划】→【维护计划向导】) ;

打开维护计划向导

启用 SQL Server 代理扩展存储

sp_configure 'show advanced options', 1; 

GO 

RECONFIGURE; 

GO 

sp_configure 'Agent XPs', 1; 

GO 

RECONFIGURE 

GO 

然后

 

 

 

 

13为数据库stu设置一个备份计划2,并比较各自优缺点。

 

根据维护计划向导,可以设置一个备份计划2,其使用的是事务日志备份

 

 

经比较可知,备份计划1使用的是完全备份,其完全备份了整个的数据库内容,占据的空间比较大,因此大型的数据库不适合完全的备份

备份计划2使用的是事务日志备份,它是相对于前一次备份进行的差异性备份,占据的空间较小。

 

 

出现的问题及解决方案:

本次实验,由于在课程中还未讲到,很多操作不是很熟悉,通过网上寻找解决方案,寻找解决答案,又遇到一些错误,根据错误提示,在官网或CSDN等网站寻找解决方案。

 

 

教师评语及得分:

 

 

 

             

 

 

猜你喜欢

转载自blog.csdn.net/weixin_48450741/article/details/112464330