SQL Server备份和恢复
备份
完整备份
backup database [db1] to disk = N'E:\Backup\db1.bak' with init;
差异备份
backup database [db1] to disk=N'E:\Backup\db1_diff.bak' with init,differential;
备份文件按日期命名
新建存储过程Backup_db1,备份数据库db1
USE [db1]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [Backup_db1](@FolderPath varchar(500))
as
DECLARE @FullPath varchar(1000)
set @FullPath = @FolderPath+ 'db1_'+convert(VARCHAR(4),year(getdate()))+right( '0'+convert(VARCHAR(2),MONTH(getdate())),2)+right('0'+convert(VARCHAR(2),DAY(getdate())),2)+ '.bak'
BACKUP DATABASE [db1] to disk=@FullPath WITH INIT
return
新建作业,执行存储过程Backup_db1
use [db1]
exec Backup_db1 'E:\Backup\';
数据库自动备份需要SQL Server Agent服务运行才能执行,建议把服务设置为自动运行
还原
只还原完整备份
- 还原选项:覆盖现有的数据库
- 2012版可以选择:关闭到目标数据库的现有连接
还原完整备份+差异备份
还原完整备份
- 还原选项:覆盖现有的数据库
- 恢复状态:2008版:不对数据库执行任何操作,不回滚未提交的事务。可以还原其他事务日志。(RESTORE WITH NORECOVERY);2012版:RESTORE WITH NORECOVERY
- 2012版可以选择:关闭到目标数据库的现有连接
还原差异备份
- 还原选项:覆盖现有的数据库
- 恢复状态:回滚未提交的事务,使数据库处于可以使用的状态。无法还原其他事务日志。(RESTORE WITH RECOVERY)
- 2012版可以选择:关闭到目标数据库的现有连接