zoukankan      html  css  js  c++  java
  • 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 

  • 相关阅读:
    [LeetCode]2. Add Two Numbers链表相加
    Integration between Dynamics 365 and Dynamics 365 Finance and Operation
    向视图列添加自定义图标和提示信息 -- PowerApps / Dynamics365
    Update the Power Apps portals solution
    Migrate portal configuration
    Use variable to setup related components visible
    Loyalty management on Retail of Dynamic 365
    Modern Fluent UI controls in Power Apps
    Change screen size and orientation of a canvas app in Power App
    Communication Plan for Power Platform
  • 原文地址:https://www.cnblogs.com/threestone/p/4668608.html
Copyright © 2011-2022 走看看