以下备份都经过验证,不会出错。使用中注意细节……
--使用变量进行备份
declare @db sysname
declare @dbpath varchar(120)
set @db='adventureworks'
set @dbpath='e:\'+@db+convert(varchar(10),getdate(),112)+'.bak'
--文件名根据数据库名称+日期YYYYMMDD+扩展名
declare @db sysname
declare @dbpath varchar(120)
set @db='adventureworks'
set @dbpath='e:\'+@db+convert(varchar(10),getdate(),112)+'.bak'
--文件名根据数据库名称+日期YYYYMMDD+扩展名
--完整备份
--Backup Database @db To disk=@dbpath
--差异备份
Backup Database @db To disk=@dbpath With Differential
Backup Database @db To disk=@dbpath With Differential
--日志备份,默认截断日志
--日志备份,需要修改恢复模式为FULL
alter database adventureworks set recovery full with no_wait
Backup database adventureworks To disk='e:\adventureworks\adventureworks.bak'
--必须要有数据库完整备份
Backup Log adventureworks To disk='e:\adventureworks\adventureworks_log'
--日志备份,需要修改恢复模式为FULL
alter database adventureworks set recovery full with no_wait
Backup database adventureworks To disk='e:\adventureworks\adventureworks.bak'
--必须要有数据库完整备份
Backup Log adventureworks To disk='e:\adventureworks\adventureworks_log'
--日志备份,不截断日志
Backup Log adventureworks To disk='e:\adventureworks\adventureworks_log1'
With No_Truncate
Backup Log adventureworks To disk='e:\adventureworks\adventureworks_log1'
With No_Truncate
--截断日志不保留
Backup Log adventureworks With No_Log
Backup Log adventureworks With No_Log
--或者
Backup Log adventureworks With Truncate_Only
--截断之后日志文件不会变小
--有必要可以进行收缩
Backup Log adventureworks With Truncate_Only
--截断之后日志文件不会变小
--有必要可以进行收缩
--文件备份
Exec Sp_Helpdb adventureworks --查看数据文件
Backup Database adventureworks
File='adventureworks_data' --数据文件的逻辑名
To disk='E:\adventureworks\adventureworks20090502.bak'
Exec Sp_Helpdb adventureworks --查看数据文件
Backup Database adventureworks
File='adventureworks_data' --数据文件的逻辑名
To disk='E:\adventureworks\adventureworks20090502.bak'
--文件组备份
Exec Sp_Helpdb adventureworks --查看数据文件
Backup Database adventureworks
FileGroup='Primary' --数据文件的逻辑名
To disk='E:\adventureworks\adventureworks.bak'
With init
Exec Sp_Helpdb adventureworks --查看数据文件
Backup Database adventureworks
FileGroup='Primary' --数据文件的逻辑名
To disk='E:\adventureworks\adventureworks.bak'
With init
--分割备份到多个目标
--恢复的时候不允许丢失任何一个目标
Backup Database adventureworks
To disk='E:\adventureworks\adventureworks_1.bak'
,disk='E:\adventureworks\adventureworks_2.bak'
--恢复的时候不允许丢失任何一个目标
Backup Database adventureworks
To disk='E:\adventureworks\adventureworks_1.bak'
,disk='E:\adventureworks\adventureworks_2.bak'
--镜像备份
--每个目标都是相同的
Backup Database adventureworks
To disk='E:\adventureworks\adventureworks_Mirror_1.bak'
Mirror
To disk='E:\adventureworks\adventureworks_Mirror_2.bak'
With Format --第一次做镜像备份的时候格式化目标
--每个目标都是相同的
Backup Database adventureworks
To disk='E:\adventureworks\adventureworks_Mirror_1.bak'
Mirror
To disk='E:\adventureworks\adventureworks_Mirror_2.bak'
With Format --第一次做镜像备份的时候格式化目标
--镜像备份到本地和远程
Backup Database adventureworks
To disk='E:\adventureworks\adventureworks_Mirror_1.bak'
Mirror
To disk='\\192.168.0.254\adventureworks\adventureworks_Mirror_2.bak'
With Format
--远程电脑上注意共享和权限
Backup Database adventureworks
To disk='E:\adventureworks\adventureworks_Mirror_1.bak'
Mirror
To disk='\\192.168.0.254\adventureworks\adventureworks_Mirror_2.bak'
With Format
--远程电脑上注意共享和权限
--每天生成一个备份文件
Declare @Path Nvarchar(2000)
Set @Path ='E:\adventureworks\adventureworks_Full_'
+Convert(Nvarchar,Getdate(),112)+'.bak'
Declare @Path Nvarchar(2000)
Set @Path ='E:\adventureworks\adventureworks_Full_'
+Convert(Nvarchar,Getdate(),112)+'.bak'
Backup Database adventureworks
To disk=@Path
To disk=@Path
--从NoRecovery或者
--Standby模式恢复数据库为可用
Restore Database adventureworks
With Recovery
--查看目标备份中的备份集
Restore HeaderOnly
From Disk ='E:\adventureworks\adventureworks.bak'
Restore HeaderOnly
From Disk ='E:\adventureworks\adventureworks.bak'
--查看目标备份的第一个备份集的信息
Restore FileListOnly
From Disk ='E:\adventureworks\adventureworks.bak'
With File=1
Restore FileListOnly
From Disk ='E:\adventureworks\adventureworks.bak'
With File=1
--查看目标备份的卷标
Restore LabelOnly
From Disk ='E:\adventureworks\adventureworks.bak'
Restore LabelOnly
From Disk ='E:\adventureworks\adventureworks.bak'
--备份设置密码保护备份
Backup Database adventureworks
To Disk ='E:\adventureworks\adventureworks.bak'
With Password = '123',init
Backup Database adventureworks
To Disk ='E:\adventureworks\adventureworks.bak'
With Password = '123',init
--备份数据库的日志尾部
BACKUP LOG adventureworks To Disk ='E:\adventureworks\adventureworks_log.bak' WITH NORECOVERY
BACKUP LOG adventureworks To Disk ='E:\adventureworks\adventureworks_log.bak' WITH NORECOVERY
Restore Database adventureworks
From Disk ='E:\adventureworks\adventureworks.bak'
With Password = '123'
--恢复数据库前要先备份数据库的日志尾部。
--消息 3159,级别 16,状态 1,第 1 行
--尚未备份数据库 "adventureworks" 的日志尾部。如果该日志包含您不希望丢失的工作,请使用 BACKUP LOG WITH NORECOVERY 备份该日志。请使用 RESTORE 语句的 WITH REPLACE 或 WITH STOPAT 子句来只覆盖该日志的内容。
--消息 3013,级别 16,状态 1,第 1 行RESTORE DATABASE 正在异常终止。
From Disk ='E:\adventureworks\adventureworks.bak'
With Password = '123'
--恢复数据库前要先备份数据库的日志尾部。
--消息 3159,级别 16,状态 1,第 1 行
--尚未备份数据库 "adventureworks" 的日志尾部。如果该日志包含您不希望丢失的工作,请使用 BACKUP LOG WITH NORECOVERY 备份该日志。请使用 RESTORE 语句的 WITH REPLACE 或 WITH STOPAT 子句来只覆盖该日志的内容。
--消息 3013,级别 16,状态 1,第 1 行RESTORE DATABASE 正在异常终止。