补充资料数据库应用与性能优化第五章文件组备份与还原 V1 .0

上传人:w****i 文档编号:91145791 上传时间:2019-06-26 格式:DOC 页数:6 大小:788KB
返回 下载 相关 举报
补充资料数据库应用与性能优化第五章文件组备份与还原 V1 .0_第1页
第1页 / 共6页
补充资料数据库应用与性能优化第五章文件组备份与还原 V1 .0_第2页
第2页 / 共6页
补充资料数据库应用与性能优化第五章文件组备份与还原 V1 .0_第3页
第3页 / 共6页
补充资料数据库应用与性能优化第五章文件组备份与还原 V1 .0_第4页
第4页 / 共6页
补充资料数据库应用与性能优化第五章文件组备份与还原 V1 .0_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《补充资料数据库应用与性能优化第五章文件组备份与还原 V1 .0》由会员分享,可在线阅读,更多相关《补充资料数据库应用与性能优化第五章文件组备份与还原 V1 .0(6页珍藏版)》请在金锄头文库上搜索。

1、5数据库应用与性能优化文件组备份与还原 做好数据库的备份和还原工作对于一个合格的管理来说是一项必备的基本技能,在SQL Server 2005中针对于不同的工作场景设计了多种备份还原数据的类型。其中比较难以理解和掌握的是文件组的备份还原。要掌握文件组的备份还原,首先需要理解文件组的概念。SQL Server中一个或多个文件的命名集合称为文件组。它构成分配或用于数据库管理的单个单元。文件组允许对文件进行分组,以便于管理,同时可以合理的分配或放置数据。例如:服务器有二个硬盘驱动器,那么完全可以在两个不同的硬盘驱动器上创建二个文件(benet1.mdf和benet2.mdf),并将这两个文件指派到文

2、件组(benet)当中。最后在文件组之上创建一个表。在将来进行查询的时候,将会对二个磁盘上的数据进行分散查询。可以提高数据库服务器的性能。同时,由于二个文件分开存放,也有利于管理员对数据库文件的维护。 请注意日志文件不能够称为文件组的成员。所以日志文件无法归属与任何文件组,只能单独存放。案例描述:Benet公司创建了benet数据库用来存储公司信息,数据库中包括salary表(工资表),Employees表(雇员表),information(员工信息表),要求在创建benet数据库时,分别创建二个不同的文件组(db_fg1_data和db_fg2_data)。并使用文件组备份还原数据库,以理解

3、文件组恢复的作用。1.首先创建Benet数据库,并将该数据库分别放在不同的文件组中,执行代码如下:CREATE DATABASE benetON PRIMARY(NAME=db_benet,FILENAME= c:benetdb_benet.mdf),FILEGROUP db_fg1(NAME = db_fg1_data,FILENAME = c:benetdb_fg1_data.ndf),FILEGROUP db_fg2(NAME = db_fg2_data,FILENAME = c:benetdb_fg2_data.ndf)LOG ON(NAME=db_log,FILENAME =c:db

4、_benet.ldf)GO执行代码后,生成数据库benet,并且按照要求生成了对应的文件组,如图5.1:图5.1 benet数据库包含的文件组信息2.在新建查询中输入以下代码,以在文件组db_fg1上创建salary表.CREATE TABLE benet.dbo.salary(id int) ON db_fg13.接着用户需要单独创建该文件组的备份,执行代码如下:BACKUP DATABASE benet FILEGROUP=db_fg1 TO DISK=c:db_fg1.bak WITH FORMAT4.接着分别在主文件组(PRIMARY)和db_fg2文件组上创建Employees表和I

5、nformation表,执行代码如下:CREATE TABLE benet.dbo.employees (id int) ON PRIMARYCREATE TABLE benet.dbo.information (id int) ON db_fg25.创建好三张表后,可以分别查看每张表所属的文件组,如图5.2、5.3和5.4:图5.2 salary表所属的文件组图5.3 employees表所属的文件组图5.4 information表所属的文件组6.向salary表中插入一条测试数据,插入数据的代码如下:INSERT benet.dbo.salary SELECT id FROM sysob

6、jects7.在模拟数据库出现故障或灾难前,首先要做好备份。执行下列代码,分别备份不同的文件组,同时备份事务日志文件。BACKUP DATABASE benet FILEGROUP=PRIMARY TO DISK=c:backupdb_primary.bak WITH FORMATBACKUP DATABASE benet FILEGROUP=db_fg1 TO DISK=c:backupdb_fg1_new.bak WITH FORMATBACKUP DATABASE benet FILEGROUP=db_fg2 TO DISK=c:backupdb_fg2.bak WITH FORMATB

7、ACKUP LOG benet TO DISK=c:backupdb_log.bak WITH FORMAT在备份完成后,会在c:backup数据库下产生四个文件,分别是三个文件组的备份文件和一个事务日志的备份文件。如图5.5所示:图5.5 备份后生成的备份文件8.执行如下代码来删除benet数据库。DROP DATABASE benet9.因为创建的表分别存在不同的文件组中,所以前面针对不同的文件组分别做了备份。下面只要将不同的文件组和日志文件一起还原回来即可。执行如下代码完成benet数据库的还原工作:RESTORE DATABASE benet FILEGROUP=PRIMARY FRO

8、M DISK=c:backupdb_primary.bak WITH NORECOVERY,REPLACERESTORE DATABASE benet FILEGROUP=db_fg1 FROM DISK=c:backupdb_fg1_new.bak WITH NORECOVERYRESTORE DATABASE benet FILEGROUP=db_fg2 FROM DISK=c:backupdb_fg2.bak WITH NORECOVERYRESTORE LOG benet FROM DISK=c:backupdb_log.bak WITH RECOVERY 请注意这里的所有文件组必须要全部还原,才能使用最后的事务日志还原。因为在备份的时候,事务日志记录的信息是所有文件组全部备份完后备份的,如果只还原某个文件组,事务日志的还原信息将不完整,所以无法还原。10.查看benet数据库是否恢复成功,且三个表是否已经恢复,如图5.6图5.6 恢复成功后的benet数据库通过以上案例可以看出,文件组的备份恢复在实际工作中还是有很大用途的,尤其是中大型数据库系统中,由于存在的信息非常的庞大。在需要维护的时候不可能全部停止数据库,这时候有效的备份还原方式将是文件组备份还原。同时,采用文件组的方式备份数据,可以将信息分别存放在不同的磁盘内,也大大提高了数据库的安全性和可读写效率。5

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号