- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
补充资料-数据库应用与性能优化-第五章-文件组备份与还原-V1.0
文件组备份与还原
做好数据库的备份和还原工作对于一个合格的管理来说是一项必备的基本技能,在SQL Server 2005中针对于不同的工作场景设计了多种备份还原数据的类型。其中比较难以理解和掌握的是文件组的备份还原。
要掌握文件组的备份还原,首先需要理解文件组的概念。SQL Server中一个或多个文件的命名集合称为文件组。它构成分配或用于数据库管理的单个单元。文件组允许对文件进行分组,以便于管理,同时可以合理的分配或放置数据。例如:服务器有二个硬盘驱动器,那么完全可以在两个不同的硬盘驱动器上创建二个文件(benet1.mdf和benet2.mdf),并将这两个文件指派到文件组(benet)当中。最后在文件组之上创建一个表。在将来进行查询的时候,将会对二个磁盘上的数据进行分散查询。可以提高数据库服务器的性能。同时,由于二个文件分开存放,也有利于管理员对数据库文件的维护。
请注意
日志文件不能够称为文件组的成员。所以日志文件无法归属与任何文件组,只能单独存放。
案例描述:Benet公司创建了benet数据库用来存储公司信息,数据库中包括salary表(工资表),Employees表(雇员表),information(员工信息表),要求在创建benet数据库时,分别创建二个不同的文件组(db_fg1_data和db_fg2_data)。并使用文件组备份还原数据库,以理解文件组恢复的作用。
1.首先创建Benet数据库,并将该数据库分别放在不同的文件组中,执行代码如下:
CREATE DATABASE benet
ON PRIMARY(
NAME=db_benet,
FILENAME= c:\benet\db_benet.mdf),
FILEGROUP db_fg1(
NAME = db_fg1_data,
FILENAME = c:\benet\db_fg1_data.ndf),
FILEGROUP db_fg2(
NAME = db_fg2_data,
FILENAME = c:\benet\db_fg2_data.ndf)
LOG ON(
NAME=db_log,
FILENAME =c:\db_benet.ldf)
GO
执行代码后,生成数据库benet,并且按照要求生成了对应的文件组,如图5.1:
图5.1 benet数据库包含的文件组信息
2.在新建查询中输入以下代码,以在文件组db_fg1上创建表CREATE TABLE benet.dbo.salary(id int) ON db_fg1
3.接着用户需要单独创建该文件组的备份,执行代码如下:
BACKUP DATABASE benet FILEGROUP=db_fg1 TO DISK=c:\db_fg1.bak WITH FORMAT
4.接着分别在主文件组(PRIMARY)和db_fg2文件组上创建Employees表和Information表,执行代码如下:
CREATE TABLE benet.dbo.employees (id int) ON [PRIMARY]
CREATE TABLE benet.dbo.information (id int) ON db_fg2
5.创建好三张表后,可以分别查看每张表所属的文件组,如图5.2、5.3和5.4:
图5.2 salary表所属的文件组
图5.3 employees表所属的文件组
图5.4 information表所属的文件组
6.向salary表中插入一条测试数据,插入数据的代码如下:
INSERT benet.dbo.salary SELECT id FROM sysobjects
7.在模拟数据库出现故障或灾难前,首先要做好备份。执行下列代码,分别备份不同的文件组,同时备份事务日志文件。
BACKUP DATABASE benet FILEGROUP=PRIMARY TO DISK=c:\backup\db_primary.bak WITH FORMAT
BACKUP DATABASE benet FILEGROUP=db_fg1 TO DISK=c:\backup\db_fg1_new.bak WITH FORMAT
BACKUP DATABASE benet FILEGROUP=db_fg2 TO DISK=c:\backup\db_fg2.bak WITH FORMAT
BACKUP LOG benet TO DISK=c:\backup\db_log.bak WITH FORMAT
在备份完成后,会在c:\backup数据库下产生四个文件,分别是三个文件组的备份文件和一个事务日志的备份文件。如图5.5所示:
图5.5 备份后生成的备份文件
8.执行如下代码来删除benet数据库。
DR
文档评论(0)