
如何自动备份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
注意:
- 在创建计划或者开发程序,并设置特定的时间来运行,两次运行的时间要合理定义,不要在上次任务没运行前启动下次任务。这个时间段取决于数据库的大小和数据服务器负载的情况。
- 使用异常处理机制和重试(Retry)机制来避免错误,例如超时。
- 在设定重试逻辑的时候,不要立即重试,需要一定的时间间隔,而且重试的间隔应该越来越长。
要备份或者恢复数据库使用Storage,至少需要SQL server 2012 SP1 CU2。
http://technet.microsoft.com/en-us/library/jj919148.aspx这篇文章有详细的描述。
下载地址如下:
SQL Server2012 SP1 CU2 |
支持使用Storage备份和还原数据库 |
|
SQL Server2012 SP1 CU4 |
支持Powershell 操作使用Storage备份和还原数据库 |