Azure Backup (1) 将SQL Server 2012虚拟机中数据库备份到Azure Storage

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:

 《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 

 


本文转自Lei Zhang博客园博客,原文链接:http://www.cnblogs.com/threestone/p/4668608.html,如需转载请自行联系原作者

目录
相关文章
|
15天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
52 10
|
1月前
|
SQL 数据库 数据安全/隐私保护
Sql Server数据库Sa密码如何修改
Sql Server数据库Sa密码如何修改
|
1月前
|
数据安全/隐私保护 虚拟化 Windows
如何在 VM 虚拟机中安装 Windows Server 2012 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 Windows Server 2012 操作系统保姆级教程(附链接)
80 0
|
1月前
|
SQL 数据库
sql server中创建数据库和表的语法
sql server中创建数据库和表的语法
18 1
|
1月前
|
SQL 安全 数据库
SQLServer 实现数据库表复制到另一个数据库_kaic
SQLServer 实现数据库表复制到另一个数据库_kaic
|
15天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
88 6
|
15天前
|
SQL 存储 数据挖掘
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
服务器数据恢复环境: 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检: 由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。 数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。 将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
|
17天前
|
数据库
使用Navicat Premium 12进行数据库定期自动备份(定时任务)--图文详解
使用Navicat Premium 12进行数据库定期自动备份(定时任务)--图文详解
19 0
|
17天前
|
SQL 存储 关系型数据库
mysql数据库备份与恢复
mysql数据库备份与恢复
|
1月前
|
SQL Oracle 关系型数据库
干货!sqlserver数据库所有知识点总结整理,含代码(挺全的)
干货!sqlserver数据库所有知识点总结整理,含代码(挺全的)
12 0