SQL Azure (14) 将云端SQL Azure中的数据库备份到本地SQL Server

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介:

 《Windows Azure Platform 系列文章目录

 

  注意:

  1.只有SQL Server 2012 CU4及以上版本才支持本章内容

  2.当你的数据库文件很大时,建议优化以下内容:

  (1)创建新的SQL Server VM,至少4Core,将bacpac文件保存到本地磁盘。注意不能保存到D盘,D盘是临时磁盘,数据会有丢失风险

  (2)将Azure SQL Database的配置升级到最高级别的P3,提高Performance

  (3)按照以下内容进行数据库还原

 

 

 

  Update 2015-10-14

  现在国内世纪互联运维的Azure China,其SQL Azure组件已经升级到了V12版本。

  如果是以下情况:

-  本地PC安装的是SQL Server 2012 CU4的Management Studio

-  使用SQL Azure V12数据库

  还原bacpac文件的话,会遇到以下问题:

  

  这是由于本地SQL 2012 Management Studio 客户端不支持SQL Azure V12。

  笔者建议读者将SQL 2012 Management Studio升级大SQL 2014 Mangement Studio。如下图:

  

  类似问题,请参考:http://blogs.msdn.com/b/azuresqldbsupport/archive/2015/04/08/bacpac-could-not-load-schema-model-from-package.aspx

 

 

 

  SQL Azure提供一系列的数据复制和同步机制。例如,本地的SQL Server数据库可以被发布到SQL Azure上;SQL Azure的数据库也可以被打包下载到本地SQL Server服务器上;您还可以通过数据同步服务(Data Sync Service)备份数据库,以及进行动态数据同步。

  

  数据层应用程序

  数据层应用程序(Data-Tier Application, DAC)封装了一个应用程序所用的所有数据库和实例对象,例如表、索引、视图、存储过程乃至用户等。

  通过这个逻辑上的封装,开发者可以直接对数据库进行设置和修改,然后把封装好的数据库定义交给数据库管理员部署在任何支持DAC的数据库上。

  DAC避免了维护数据库脚本的复杂性,也弱化了开发者和数据库管理员之间的相互依赖。

  DAC还提供了自动化的数据库更新,从而在更新数据结构的过程中保证数据不丢失。

  DAC还支持版本控制,所以开发者和数据库管理员可以像管理源代码版本一样管理不同的DAC版本。

  在DAC的操作过程中经常要涌动啊的两个文件类型,一个是.bacpac,一个是.dacpac

  - .bacpac:.bacpac文件包含了一个数据库中的结构和数据。其中数据库结构信息与.dacpac文件中的信息相同,而数据是以JSON格式存储的。

  在逻辑上,.bacpac相当于数据库的一个备份,它的主要作用在于数据库的移植。

  - .dacpac: .dacpac文件包含了一个数据库中的结构,其主要作用是把数据库结构部署到不同的环境,以及数据库结构的更新。

 

  首先我们需要在本地安装SQL Server 2012并安装SQL Server Management Studio。

 

  本章我将介绍如何将云端的SQL Azure中的数据库导入到本地SQL Server数据库。

  1.先做好准备工作,我们使用SQL Server Management Studio在云端创建一个SQL Azure,命名为LeiDB。同时创建若干张表。如下图:

  

  2.创建一个存储账号,命名为leizhangstorage(可以根据自己的需要选择是否需要异地冗余),同时在storage中创建container命名为dbback,设置container权限为private

  3.登陆到Windows Azure Management Portal,选择我们在步骤1中创建的SQL Azure,点击Export,如下图:

  

  4.在弹出的Export Database Settings窗口中,设置Blob Storage和SQL Azure用户名密码

  该步骤就是将SQL Azure中的LeiDB这个数据库的bacpac文件(包含了数据库结构和数据)备份到leizhangstorage这个存储账号中

  

  5.我们以管理员身份打开本地的Visual Studio 2013,点击View->Server Explorer。

  在Server Explorer中,展开Windows Azure->Storage->leizhangstorage

  选中我们在步骤4中生成的bacpac文件,右键Save As,保存至本地计算机上

  

  6.打开本地计算的SQL Server Management Studio,连接本地的SQL Server服务。

  点击数据库,右键,导入数据层应用程序

  

  在弹出的窗口中,选择从本地磁盘导入:

  

  执行成功后,我们就可以看到云端的SQL Azure数据库已经保存到本地的SQL Server服务器上了。

  

   

  经过以上的实例,我们现在在云端的SQL Azure和本地的SQL Server上有两份相同的数据库。

  



目录
相关文章
|
5月前
|
SQL JavaScript 前端开发
【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无法输出问题
【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无法输出问题
|
5月前
|
SQL Java 数据库连接
【Azure 应用服务】Java ODBC代码中,启用 Managed Identity 登录 SQL Server 报错 Managed Identity authentication is not available
【Azure 应用服务】Java ODBC代码中,启用 Managed Identity 登录 SQL Server 报错 Managed Identity authentication is not available
|
5月前
|
SQL Java 数据库连接
【Azure Spring Cloud】Azure Spring Cloud connect to SQL using MSI
【Azure Spring Cloud】Azure Spring Cloud connect to SQL using MSI
|
5月前
|
网络协议 NoSQL 网络安全
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
|
5月前
|
SQL 存储 JSON
【Azure 存储服务】Blob中数据通过Stream Analytics导出到SQL/Cosmos DB
【Azure 存储服务】Blob中数据通过Stream Analytics导出到SQL/Cosmos DB
|
5月前
|
SQL 机器学习/深度学习 开发工具
【机器学习 Azure Machine Learning】Azure Machine Learning 访问SQL Server 无法写入问题 (使用微软Python AML Core SDK)
【机器学习 Azure Machine Learning】Azure Machine Learning 访问SQL Server 无法写入问题 (使用微软Python AML Core SDK)
|
5月前
|
SQL 数据库 Windows
【应用服务 App Service】当使用EntityFrameWorkCore访问Sql Server数据库时,在Azure App Service会出现Cannot create a DbSet for ** because this type is not included in the model for the context的错误
【应用服务 App Service】当使用EntityFrameWorkCore访问Sql Server数据库时,在Azure App Service会出现Cannot create a DbSet for ** because this type is not included in the model for the context的错误