Azure Backup (1) 将SQL Server 2012虚拟机中数据库备份到Azure Storage
《Windows Azure Platform 系列文章目录》
本文介绍的是由国内世纪互联运维的China Azure,相比国外的Global Azure。主要区别是存储账号的DNS地址不同,请读者注意区别。
最近有一个客户想了解,如何将SQL Server 2012虚拟机中的数据库备份到Azure Storage存储账号中,笔者研究了一下,分享给大家。
前提要求:
1.需要1台安装了SQL Server 2012 SP1 CU4以上的Windows Server虚拟机
2.需要有Azure China的账户和订阅
注意事项:
1.保存到Azure Storage的数据库备份BAK文件,最大不能超过200GB,是单个Block Blob的最大容量限制
2.如果数据库备份BAK文件超过了200GB,可以考虑后续做差异备份
3.在同一个存储账号下的所有BAK文件,数量是没有上限的,但是所有的BAK总容量不能超过500TB,这是Azure Storage Account存储账号的容量限制
实现方式:
1.创建Azure Storage Account存储账号和Container
2.执行相应的T-SQL语句,进行数据库的全备份
3.设置SQL Server Job
接下来我们详细介绍一下:
1.首先我们登陆Azure China管理界面 https://manage.windowsazure.cn
2.创建新的存储账号,命名为leidbbak,如下图:

注意上面的存储账号所在的位置,最好和SQL Server虚拟机所在的数据中心位置保持一致,加快数据库文件备份速度。
3.在该存储账号下,创建Container,命名为dbcontainer。注意设置Access为Private,不允许匿名访问

4.然后我们通过远程桌面连接,连接到安装了SQL Server 2012 SP1 CU4以上的Windows Server虚拟机
打开本地的SQL Server Management Studio。首先创建credentials。命令如下:
IF NOT EXISTS
(SELECT * FROM sys.credentials
WHERE credential_identity = 'BackupDBtoAzureStorageCredential')
CREATE CREDENTIAL BackupDBtoAzureStorageCredential WITH IDENTITY = '[存储账号名称]'
,SECRET = '[存储账号密钥]' ;
执行完毕后,我们可以通过命令:
SELECT * FROM sys.credentials
查看在sys.credentials表中,创建的Credential。
如果需要删除Credential,我们可以通过命令:
DROP CREDENTIAL [CredentialName]
删除不需要的Credential
5.然后我们执行以下T-SQL语句,如下:
declare @url varchar(256)
set @url= 'https://leidbbak.blob.core.chinacloudapi.cn/dbcontainer/'+ CONVERT(nvarchar(8), GETDATE(), 112)+ '-AdventureWorks2008.bak' BACKUP DATABASE AdventureWorks2008
TO URL = @url
WITH CREDENTIAL = 'BackupDBtoAzureStorageCredential'
,COMPRESSION
,STATS = 5;
GO
我们备份本地数据库名字为AdventureWorks2008
注意上面的@url这个参数,我们保存到之前步骤3中创建的Container。
并且通过CONVERT(nvarchar(8), GETDATE(), 112),将bak文件名,按照YYYYMMDD的格式进行重命名
6.执行上面的T-SQL语句后,可以查看到T-SQL执行成功。
我们回到Azure管理界面,查看存储账号,可以看到数据库备份成功。

7.最后我们将步骤5中的T-SQL语句,通过SQL Server Job,每天执行一次。这样每天就可以自动把数据库备份到Azure Storage Account,并且重命名。
8.读者可以根据需要,修改步骤5中的T-SQL语句,可以按照一定规律,将差异备份、或者是日志备份,保存到Azure Storage中。
9.最后一步,如果我们定期备份数据以后,希望把老旧的数据删除的话,可以用Azure Automation实现,具体参考这篇blog:
Azure Automation (2) 定期删除存储账号中的文件
参考资料:https://msdn.microsoft.com/en-us/library/jj919148(v=sql.110).aspx
Azure Backup (1) 将SQL Server 2012虚拟机中数据库备份到Azure Storage的更多相关文章
- SQL Server 2008 维护计划实现数据库备份
SQL Server 2008 维护计划实现数据库备份(最佳实践) 2013-08-29 09:08 by 听风吹雨, 173 阅读, 2 评论, 收藏, 编辑 一.背景 之前写过一篇关于备份的文章: ...
- SQL Server 2014 虚拟机的自动备份 (Resource Manager)
自动备份将在运行 SQL Server 2014 Standard 或 Enterprise 的 Azure VM 上自动为所有现有数据库和新数据库配置托管备份到 Azure. 这样,便可以配置使用持 ...
- SQL Server 2012 连接到数据库引擎
第 1 课:连接到数据库引擎 https://msdn.microsoft.com/zh-cn/library/ms345332(v=sql.110).aspx 本课将介绍主要的工具以及如何连接并 ...
- 安装SQL Server 2012过程中出现“启用windows功能NetFx3时出错”(错误原因、详细分析及解决方法)以及在Windows Server2012上安装.NET Framework 3.5的详细分析及安装过程
问题:在服务器(操作系统为Windows server 2012)上安装SQL Server 2012的过程中,安装停留在下图所示的界面上,显示”正在启用操作系统功能NetFx3”随后出 ...
- 【SQL server 2012】复制数据库到另一台机器上
当需要将一台机器(源机器)上的一个数据库完全复制到另一台机器(目标机器)上时,可以选择先在源机器上备份该数据库,然后在目标机器上还原该备份的方法. 下面详细描述具体步骤: 1. 打开SQL serve ...
- 使用SQL Server Management Studio 创建数据库备份作业
--完整备份,每周一次USE MasterGOdeclare @str varchar(100)set @str='D:\Weldon\DBBACK\FullBak'+replace(replace( ...
- SQL Server 2008 维护计划实现数据库备份(最佳实践)
一.背景 之前写过一篇关于备份的文章:SQL Server 维护计划实现数据库备份,上面文章使用完整备份和差异备份基本上能解决数据库备份的问题,但是为了保障数据更加安全,我们需要再次完善我们的备份计划 ...
- SQL server 2012安装中出现的INSTALLSHAREDDIR 和 INSTALLSHAREDWOWDIR 参数具有相同的值问题
出现的问题如下: INSTALLSHAREDDIR 和 INSTALLSHAREDWOWDIR 参数具有相同的值“D:\soft\sql”.但是,这些参数必须具有不同的值.请为其中一个参数指定不同的值 ...
- SQL SERVER 运维日记-数据库备份
概述 昨天下午突然看到,<炉石传说>游戏数据库发生宕机并引发数据丢失事故的新闻.刚看到时,满满的不可思议.暴雪啊,网易啊. 都是很牛叉的公司.他们出的游戏我都是很喜欢的. 当我看到,第一时 ...
随机推荐
- hadoop使用问题
前提 环境 ubuntu 安装hadoop 已经有一段时间 1.启动的时候提示 Connection reset by peer 这个查看日志,里面有说 ssh里面某个文件的权限太大 这个ssh里修改 ...
- 关于CAP定理的个人理解
CAP定理简介 在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer's theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点: 一致性(C ...
- JavaScript使用DeviceOne开发实战(六)点墨真实案例
qq群里的yan用户开发的App,基本完工大家可以看看 安装二维码是 QQ群:365443130
- 目前流行的源程序版本管理软件和项目管理软件都有哪些?各有什么优缺点?以及Github的注册过程
一.目前流行的源程序版本管理软件和项目管理软件有Microsoft TFS.GitHub.SVN.Coding等. 二.各有什么优缺点 三.在GitHub注册账户的过程 Microsoft TFS的优 ...
- 【读书笔记】Ninject 在MVC5中的使用
从MVC3中就开始接触Ninject这个IOC工具.也一直是MVC Framework系列书籍中推荐的IOC工具,当然还有优秀的Autofac等.性能和使用上面个有千秋.下面先看一下Ninject的使 ...
- [.net 面向对象编程基础] (9) 类和类的实例
[.net 面向对象编程基础] (9) 类和类的实例 类 ,顾名思义就是分类.类别的意思.我们要面向对象编程,就需要对不同的事物进行分类.类可以说是.net面向对象的核心. 类:就是具有相同的属性和功 ...
- 走进AngularJs(四)自定义指令----(中)
上一篇简单介绍了自定义一个指令的几个简单参数,restrict.template.templateUrl.replace.transclude,这几个理解起来相对容易很多,因为它们只涉及到了表现,而没 ...
- C#版的eval,C#Light开源嵌入式脚本,unity热更新不再愁
目前最新版本AlphaV0.06 完全的c#语法,可用于一切能运行C#的场合,wp windows xamarin mono asp.net unity3d 内嵌了int uint bool stri ...
- js模版引擎handlebars.js实用教程——with-进入到某个属性(进入到某个上下文环境)
返回目录 <!DOCTYPE html> <html> <head> <META http-equiv=Content-Type content=" ...
- javascript获取表单值的7种方式
见代码: <!doctype html> <html lang="en"> <head> <meta charset="UTF- ...