自动备份SQL数据库到云存储Storage

时间:2023-03-08 23:08:23
自动备份SQL数据库到云存储Storage

如何自动备份SQL数据库到Storage呢。

前提条件需要SQL Server2012 SP1 CU2或更高版本

1. 备份SQL Azure数据库到云存储Storage

1)在SQL Server Management Studio中创建Storage存储身份认证

创建Storage身份认证信息脚本样例如下:

IF NOT EXISTS

(SELECT * FROM sys.credentials

WHERE credential_identity = 'mycredential')

CREATE CREDENTIAL mycredential WITH IDENTITY = 'mystorageaccount'

,SECRET = '<storage access key>' ;

2)从数据库导出数据包文件*.BACPAC,并存储到Storage的blob中。

脚本样例如下:

BACKUP DATABASE AdventureWorks2012

TO URL = 'https://mystorageaccount.blob.core.windows.net/mycontainer/AdventureWorks2012.bak'

WITH CREDENTIAL = 'mycredential'

,COMPRESSION

,STATS = 5;

GO

上面两步使用的TSQL语句可以用在SQL脚本(如存储过程)或者开发编程(如C#调用)中使用,达到导出数据包BACPAC文件到Storage的目的。

2. 自动备份数据库

1)可以使用Task Scheduler创建计划(Schedule)运行脚本或者程序

2)可以开发编程并发布Windows Azure Worker Role到云服务上定时运行脚本

关于怎样使用Task Scheduler来备份数据,可以参考:http://support.microsoft.com/kb/2019698

注意:

  1. 在创建计划或者开发程序,并设置特定的时间来运行,两次运行的时间要合理定义,不要在上次任务没运行前启动下次任务。这个时间段取决于数据库的大小和数据服务器负载的情况。
  2. 使用异常处理机制和重试(Retry)机制来避免错误,例如超时。
  3. 在设定重试逻辑的时候,不要立即重试,需要一定的时间间隔,而且重试的间隔应该越来越长。

要备份或者恢复数据库使用Storage,至少需要SQL server 2012 SP1 CU2。

http://technet.microsoft.com/en-us/library/jj919148.aspx这篇文章有详细的描述。

下载地址如下:

SQL Server2012 SP1 CU2

http://support.microsoft.com/kb/2790947

支持使用Storage备份和还原数据库

SQL Server2012 SP1 CU4

http://support.microsoft.com/kb/2833645/zh-cn

支持Powershell 操作使用Storage备份和还原数据库