份数据

建完整

完整备份是指包含所有数据文件的完整映像的任何备份。完整备份会备份所有数据和足够的日志,以便恢复数据。由于完整备份是任何备份策略中都要求完成的第一种备份类型,所以首先介绍如何使用SQL Server Management Studio 图形化工具和BACKUP 语句进行完整数据库备份。

1)、使用SQLServer Management Studio 工具建完整

例如,需要对“DEMO_DB”数据库进行一次完整备份,使用SQL Server Management Studio图形化工具对其进行完整备份的操作步骤如下:

--1、打开SQL ServerManagement Studio 工具,连接服务器。

--2、在对象资源管理器中,展开【数据库】节点,右击【DEMO_DB】数据库,在弹出的命令菜单中选择【属性】,打开【数据库属性】窗口。

--3、在【选项】页面,确保恢复模式为完整恢复模式

--4单击【确定】按钮应用修改结果。

--5、右击数据库“demo_db”,从弹出的菜单中选择【任务】|备份】命令,打开【备份数据库】窗口

--6、在【备份数据库】窗口中,从【数据库】下拉菜单中选择“demo_db”数据库;【备类型】项选择“完整”,保留【名称】文本框的内容不变。

--7设置备份到磁盘的目标位置,通过单击【删除】按钮,删除已存在默认生成的目标,然后单击【添加】按钮,打开【选择备份目标】对话框,启用【备份设备】选项,选择以前建立的“考勤系统”备份设备

--8单击【确定】按钮返回【备份数据库】窗口,就可看到【目标】下面的文本框将增加一个“考勤系统”备份设备。

--9单击【选项】选项,打开【选项】页面,启用【覆盖所有现有备份集】选项,该选项用于初始化新的设备或覆盖现在的设备;选中【完成后验证备份】复选框,该选项用来核对实际数据库与备份副本,并确保他们在备份完成之后一致。具体设置如图:

--10单击【确定】按钮,完成对数据库的备份。完成备份后将弹出备份完成对话框。现在已经完成了数据库demo_db”的一个完整备份。为了验证是否真的备份完成,下面来检查一下:

--1、在SQL ServerManagement Studio 的【对象资源管理器】窗口中,展开【服务对象】节点下的【备份设备】节点。

--2、右击备份设备【考勤系统】,从弹出的右键菜单中选择【属性】窗口。

--3选中【媒体内容】选项,打开【媒体内容】页面,可以看到刚刚创建的【demo_db】数据库的完整备份。

2)、使用BACKUP 语句备份数据库

对数据库进行完整备份的语法如下:

BACKUP DATABASE database_name

TO <backup_device>[ n]

[WITH

[[,] NAME=backup_set_name]

[ [,] DESCRIPITION=TEXT‘]

[ [,] {

INIT| NOINIT } ]

[ [,]{ COMPRESSION| NO_COMPRESSION }

]

参数选项的说明:

l database_name指定了要备份的数据库。

l backup_device为备份的目标设备,采用“备份设备类型=设备名”的形式。

l WITH 子句:指定备份选项,这里仅给出两个

l NAME=backup_set_name指定了备份的名称。

l DESCRIPITION='TEXT"给出了备份的描述。

l INIT|NOINITINIT 表示新备份的数据覆盖当前备份设备上的每一项内容,即原来在在此设备上的数据信息都将不存在,NOINIT 表示新备份的数据添加到备份设备上已有的内容的后面。

l COMPRESSION|NO_COMPRESSIONCOMPRESSION表示启用备份压缩功能,NO_COMPRESSION 表示不启用备份压缩功能。

DEMO对数据库“mydb”做一次完整备份,备份设备为以前创建好的“考勤系统”本地磁盘设备,并且此次备份覆盖以前所有的备份。使用BACKUP 命令创建备份,代码如下:

BACKUP DATABASE mydb

TO DISK='考勤系'

WITH INIT,

NAME='mydb 完整',

DESCRIPTION='thisis the full backup of mydb'

返回结果:

建差异

当数据量十分庞大时,执行一次完成备份需要耗费非常多时间和空间,因此完整备份不频繁进行,创建了数据库的完整备份以后,如果数据库从上次备份以来只修改了很少的数据时,比较适合使用差异备份。

(1).使用SQL ServerManagement Studio 工具

创建差异备份的过程与创建完整备份的过程几乎相同,下面使用SQL Server Management Studio 在上一节创建的永久备份设备“考勤系统”上创建一个数据库“demo_db”的一个差异备份。操作过程如下:

--1、打开SQL ServerManagement Studio 工具,连接服务器。

--2、在对象资源管理器中,展开【数据库】节点,右击【demo_db】数据库,在弹出的命令菜单中选择【任务】|备份】命令,打开【备份数据库】窗口。

--3、在【备份数据库】窗口,从【数据库】下拉菜单中选择“demo_db”数据库;【备类型】项选择“差异”;保留【名称】文本框的内容不变;在【目标】项下面确保列了【考勤系统】设备。

--4单击【选项】选项,打开【选项】页面,启用【追加到现有备份集】选项,以免覆盖现有的完整备份;选中【完成后验证备份】复选框,该选项用来核对实际数库与备份副本(或者称为拷贝),并确保他们在备份完成之后一致。

--5、完成设置后,单击【确定】开始备份,完成备份将弹出备份完成窗口。

现在已经完成了数据库“demo_db”的一个差异备份。为了验证是否真的备份完成,下面来检查一下:

1)在SQL Server Management Studio 的【对象资源管理器】窗口中,展开【服务对象】节点下的【备份设备】节点。

2)右击备份设备【考勤系统】,从弹出的右键菜单中选择【属性】窗口。

3选中【媒体内容】选项,打开【介质内容】页面,可以看到刚刚创建的“demo_db”数据库的差异备份。`

 

使用BACKUP建差异

创建差异备份也可以使用BACKUP 语句,进行差异备份的语法与完整备份的语法相似,进行差异备份的语法如下所示:

其中WITH DIFFERENTIAL 子句指明了本次备份是差异备份。其他参数与完全备份参数安全一样,在此就不在重复。

DEMO对数据库“网店购物系统”做一次差异备份,就可以使用如下代码:

BACKUP DATABASE demo_db

TO DISK='考勤系'

WITH DIFFERENTIAL,

NOINIT,

NAME='demo_db差异',

DESCRIPTION='thisis differential backup of demo_db on disk'

返回:

注:使用BACKUP 语句执行差异备份时候,要使用WITH NOINIT 选项,追加到现有的备份集,避免覆盖已经存在的完整备份。

 

BACKUP DATABASE database_name

TO <backup_device>[ n]

WITH

DIFFERENTIAL

[[,] NAME=backup_set_name]

[ [,] DESCRIPITION=TEXT‘]

[ [,] {

INIT| NOINIT } ]

[ [,]{ COMPRESSION| NO_COMPRESSION }

]

建事日志

尽管事务日志备份信赖于完整备份,但它并不备份数据库本身。这种类型的备份只记录事务日志的适当部分,明确地说,自从上一个事务以来已经发生了变化的部分。使用事务日志备份,可以将数据库恢复到故障点或特定的时间点。一般情况下,事务日志备份比完整备份和差异备份使用的资源少。因此,可以更频繁地创建事务日志备份,减少数据丢失的风险。在Microsoft SQL Server 2008 统中日志备份有三种类型:纯日志备份、大容量操作日志备份和尾日志备份。具体如表所示:

务日志类型

日志日志包含一定隔的事日志记录而不包含在大容量日志恢复模式下的任何大容量更改的份。大容量操作日志包含日志记录以及由大容量操作更改的数据份。不允许对大容量操作日志点恢复。尾日志可能已坏的数据库进行的日志份,用于捕尚未份的日志记录尾日志份在出故障时进行,用于防止失工作,可以包含日志记录或大容量操作日志记录只有当启动事务日志备份序列时,完整备份或完整差异备份才必须与事务日志备份同步。每个事务日志备份的序列都必须在执行完整备份或完整差异备份之后启动。执行事务日志备份至关重要。除了允许您还原备份事务外,日志备份将截断日志以删除日志文件中已备份的日志记录。即使经常备份日志,日志文件也会填满。连续的日志序列称为“日志链”。日志链从数据库的完整备份开始。通常情况下,只有当第一次备份数据库或者从简单恢复模式转变到完整或大容量恢复模式时,需要进行完整备份,才会启动新的日志链。注:当事务日志最终变成100%满时,用户无法访问数据库,直到数据库管理员消除了务日志时为止。避开这个问题的最佳办法是执行定期的事务日志备份。

(1).使用SQL ServerManagement Studio 工具创建备份

创建事务日志备份的过程与创建完整备份的过程也基本相同,下面使用SQL Server Management Studio 工具在前面创建的永久备份设备“考勤系统”上创建一个数据库demo_db”的一个事务日志备份。操作过程如下:

--1、打开SQL ServerManagement Studio 工具,连接服务器。

--2、在对象资源管理器中,展开【数据库】节点,右击【demo_db】数据库,在弹出的命令菜单中选择【任务】|备份】命令,打开【备份数据库】窗口。

--3、在【备份数据库】窗口,从【数据库】下拉菜单中选择【demo_db】数据库;【备类型】项选择“事务日志”;保留【名称】文本框的内容不变;在【目标】项下面确保列了【考勤系统】设备。

--4单击【选项】选项,打开【选项】页面,启用【追加到现有备份集】选项,以免覆盖现有的完整和差异备份;选中【完成后验证备份】复选框,该选项用来核对实际数据库与备份副本(或者称为拷贝),并确保他们在备份完成之后一致,并

选择【截断事务日志】选项。具体设置如下:

--5、完成设置后,单击【确定】开始备份,完成备份将弹出备份完成窗口。

现在已经完成了数据库【demo_db】的一个事务日志备份。为了验证是否真的备份完成,

下面来检查一下:

--1、在SQL ServerManagement Studio 的【对象资源管理器】窗口中,展开【服务对象】节点下的【备份设备】节点。

--2、右击备份设备【考勤系统】,从弹出的右键菜单中选择【属性】窗口。

--3选中【介质内容】选项,打开【介质内容】页面,可以看到刚刚创建的

demo-db】数据库的事务日志备份。

 

使用BACKUP 建事日志

使用BACKUP 语句创建事务日志备份,语法格式如下:

其中LOG 指定仅备份事务日志。该日志是从上一次成功执行的日志备份到当前日志的末尾。必须创建完整备份,才能创建第一个日志备份。其他的各参数与完整备份语法中各参数完全相似,这里也不再重复。

DEMO对数据库【demo_db】做事务日志备份,要求追加到现有的备份设备“考勤”上。完成上述备份,可以使用如下代码:

BACKUP LOG demo_db

TO DISK='考勤系'

WITH NOINIT,

NAME='demo_db日志',

DESCRIPTION='thisis transaction backup of demo-db on disk'

返回:

SQL Server 完成日志备份时,自动截断数据库事务日志中不活动的部分,所谓不动的部分是指已经完成的事务日志,这些事务日志已经被备份起来了,所以可以截断。事务日志被截断后,释放出空间可以被重复使用,这样避免了日志文件的无限增长。

 

BACKUP LOG database_name

TO <backup_device>[ n]

WITH

[[,] NAME=backup_set_name]

[ [,] DESCRIPITION=TEXT‘]

[ [,] {

INIT| NOINIT } ]

[ [,]{ COMPRESSION| NO_COMPRESSION }

]

建文件组备

现越来越多的公司拥有了TB级的数据库,这些数据库称为超大型数据库。对于超大型数据库,如果每次都执行完整数据备份不切实际,应当执行数据库文件或文件组备份。文件组是一种将数据库存放在多个文件上的方法,并允许控制数据库对象(比如表或视图)存储到这些文件当中的哪些文件上。这样,数据库就不会受到只存储在单个硬盘上的限制,而是可以分散到许多硬盘上,因而可以变得非常大。利用文组备份,每次可以备份这些文件当中的一个或多个文件,而不是同时备份整个数据库。现备份数据库“mydb‖,在MYDB 数据库中,创建了三个文件组,分别是FG1FG2FG3,另创建了三个文件FG1FG2FG3 别对应三个文件组.

(1).使用SQLServer Management Studio 工具

使用SQL Server Management Studio 工具执行文件组备份的具体步骤如下所示:

--1、打开SQLServer Management Studio 工具,连接服务器。

--2、在对象资源管理器中,展开【数据库】节点,右击【mydb】数据库,在弹出的命令菜单中选择【任务】|备份】命令,打开【备份数据库】窗口。

--3、在【备份数据库】窗口的备份组件下选择【文件和文件组】就打开【选择文件和文件组】对话框,在【备份数据库】窗口的【常规】页面,选择数据库为【mydb】,备份类型为“完整”,并选择备份设备.

--4、在【选择文件和文件组】对话框中,选择要备份的文件和文件组。单击【确定】钮返回。

--5选中【选项】选项,打开【选项】页面,启用【追加到现有备份集】选项,以免覆盖现有的完整备份;选择【完成后验证备份】选项即可。

--6设置完成后,单击【确定】按钮开始备份,完成后将弹出成功消息。

查看备份:

2).使用BACKUP 语句创建文件组备份

可以使用BACKUP 语句对文件组备份,具体的语法如下所示:

BACKUP DATABASE database_name

< file_or_filegroup >[ n]

TO < backup_device> [ n]

WITH options

其中file_or_filegroup 指定了要备份的文件或文件组,如果是文件,则写作“FILE=逻辑文件名”;如果是文件组,则写作“FILEGROUP=逻辑文件组名”。WITH options 用于指定备份选项,与前几种备份设备类型相同。

DEMO将数据库【mydb】中刚添加的文件组FG4备份到本地磁盘备份设备“考勤系统”,

可以使用如下语句:

--1、在mydb 数据库中增加一个文件组FG4

USE [master]

GO

ALTER DATABASE [mydb] ADDFILEGROUP [FG4]

GO

--2、在mydb 数据库中增加一个文件FG4,并指定其属于文件组FG4

USE [master]

GO

ALTER DATABASE [mydb]

ADD FILE ( NAME= N'FG5',

FILENAME = N'C:\ProgramFiles\Microsoft SQL

Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\mydb_7.ndf' ,SIZE = 3072KB , FILEGROWTH =

1024KB )

TO FILEGROUP [FG4]

GO

--3备份:

BACKUP DATABASE mydb

FILEGROUP='FG4'

TO DISK='考勤系'

WITH

DESCRIPTION='thisthe filegroup backup of mydb'