今天在CSDN上看见了有人问有关数据备份和数据恢复的问题,故而找资料写了这篇文章,不知道对大家有没有帮助!
--@@数据备份
BACKUP DATABASE database_name TO backup_device_name[,...n]
[WITH DIFFERENTIAL]
其中 WITH DIFFERENTIAL 表示进行增量备份
进行日志文件备份的语法如下:
BACKUP LOG database_name
{TO backup_device_name [,...n][WITH NO_TRUNCATE]}
其中,
其中 WITH NO_TRUNCATE 表示在完成事务日 志备份后,并不清空原有日志的数据。
这个可选项可以用在当数据库遭到损坏或数据库被标识为可疑时进行日志的备份。
针对文件或文件组进行备份的语句如下:
BACKUP DATABASE database_name
<file_or_filegroup>[,...n]
TO backup_device_name[,...n]
<file_or_filegroup>::=
{
FILE={logical_file_name|@logical_file_name_var}
|
FILEGROUP={logical_filegroup_name|@logical_filegroup_name_var}
}
--@例子
--创建全面备份的设备
use master
go
exec sp_addumpdevice 'disk','Myweb_2','e:program files\microsoft sql server\mssql\backup\yweb_2.dat'
--全面备份数据库
backup database webdata to myweb_2
go
--创建备份事务日志的设备
use master
go
exec sp_addumpdevice 'disk','MywebLog1','e:program files\microsoft sql server\mssql\backup\MyNwidLog1.dat'
go
--备份日志
backup log webdata to mywebLog1
go
--@@恢复数据库
RESTORE DATABASE database_name
[FROM backup_device_name[,...n]]
[
WITH
[[,]{ NORECOVERY|RECOVERY }]
[[,] REPLACE ]
]
利用事务日志备份执行恢复数据库的语法是:
RESTORE LOG database_name
[FROM backup_device_name[,...n]]
[
WITH
[[,]{ NORECOVERY|RECOVERY }]
[[,] STOPAT=data_time]
]
利用文件或文件组备份恢复数据库的语法是:
RESTORE DATABASE database_name
<file_or_filegroup>[,...n]
[FROM backup_device_name[,...n]]
[
WITH
[{ NORECOVERRY|RECOVERY }]
[[,] REPLACE ]
]
<file_or_filegroup>::=
{
FILE={logical_file_name|@logical_file_name_var}
|
FILEGROUP={logical_filegroup_name|@logical_filegroup_name_var}
}
其中各语法成分的介绍如下。
NORECOVERY|RECOVERY :表示恢复操作是否回滚所有未曾提交的事务,默认的选项为
RECOVERY 。当使用一个数据库备份和多个事务日志进行恢复时,在恢复最后一个事务日志之前应该选择使用 NORECOVERY 选项。
REPLACE :指定恢复操作是否将原来的数据库或数据文件、文件组删除并替换掉。
STOPAT = data_time: 使用事务日志进行恢复时,指定将数据库恢复到指定时刻的状态。
--下面的例子利用一数据库备份和两个事务日志进行了数据库的恢复操作,并将数据库恢复到了一个指定时刻的状态下:
restore database webdata from webdata_1,webdata_2 with norecovery
restore log webdata from webdatalog1 with norecovery
restore log webdata from webdatalog2 with recovery,stopat='may 15,2099 12:00 am'
这是我发表的第一篇文章,有不对的地方请大家多多指点.谢谢!