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服务运行才能执行,建议把服务设置为自动运行

还原

只还原完整备份

  1. 还原选项:覆盖现有的数据库
  2. 2012版可以选择:关闭到目标数据库的现有连接

还原完整备份+差异备份

还原完整备份

  1. 还原选项:覆盖现有的数据库
  2. 恢复状态:2008版:不对数据库执行任何操作,不回滚未提交的事务。可以还原其他事务日志。(RESTORE WITH NORECOVERY);2012版:RESTORE WITH NORECOVERY
  3. 2012版可以选择:关闭到目标数据库的现有连接

还原差异备份

  1. 还原选项:覆盖现有的数据库
  2. 恢复状态:回滚未提交的事务,使数据库处于可以使用的状态。无法还原其他事务日志。(RESTORE WITH RECOVERY)
  3. 2012版可以选择:关闭到目标数据库的现有连接