从global到mooncake迁移SQL Azure

之前遇到了问题,在此备注一下:

因为两个环境基本上可以认为是隔离的,所以迁移过程基本上只有通过导出、导入的方式(也是官方推荐的方式):

1、从global上进行数据库的export操作(扩展名bacpac),导出到blob中。通过Azure管理界面完成(当然也可以通过azure命令行,不过操作比较简单就用界面了)

2、从global的blob中将文件复制到mooncake的blob中。可以手动下载、上传,如果文件很大的话,也可以通过AzCopy命令行实现服务器端的点对点复制。

3、在mooncake上通过bacpac进行数据库导入。通过Azure管理界面完成

注意事项:

1、导入、导出的时候,因为对数据库资源消耗非常高(我设置了DTU报警规则,导出期间的DTU基本上停留在95%以上),所以建议先把数据库scale up。我是把S1级别临时提升到了S2级别(DTU从20上升到50)

2、导出过程会非常慢,要有耐心(50DTU的情况下,实测导出速度在7GB/小时左右,没错,小时……)

3、这种类似跨两个产品的导入导出很可能会遇到问题(见下文)

虽然global和mooncake都标识为v12版本的数据库(相当于SQL Server 2014),但是内部版本很可能会不一致,

这次导入的时候就遇到了这个错误:

“Error importing database:Could not read schema model header information from package. The model version ‘3.5‘ is not supported”

原因是global比mooncake的版本略新,导致导出导入的文件结构不兼容

解决方法就是先把global数据库的某些设置调整成和mooncake一致的,针对model version 3.5的话执行如下T-SQL:

ALTER DATABASE [dbname] SET TEMPORAL_HISTORY_RETENTION ON

然后再重新导出……(对,重新导出………………)

其实这个问题和Azure无关,是SQL Server的问题,之前在model version 3.3的时候也出现过。

搜索解决方案用了有一阵时间,其实还有两种方案也是可行的:

方案一:使用最新版的SSMS进行导入,它会考虑旧版本兼容的问题。我确实下载且安装并且开始尝试导入创建数据库了,然而考虑到从本地到Azure的带宽,我看了一眼导入速度就绝望的关掉了……

方案二:使用某些工具直接把数据库中所有数据dump成SQL语句,然后再执行。这种方法理论上可行,不过我连试的念头都没有……依然是带宽问题

参考链接:

http://stackoverflow.com/questions/40516564/sql-azure-v12-bacpac-import-error-could-not-read-schema-model-header-informati

http://stackoverflow.com/questions/36754023/sql-azure-v12-bacpac-import-error-the-internal-target-platform-type-sqlazurev1

时间: 2024-12-22 00:35:01

从global到mooncake迁移SQL Azure的相关文章

如何将本地数据库迁移至SQL Azure

Windows Azure的SQL Azure和SQL Server 拥有不同的体系结构,可以说是两个不同的产品.SQL Azure不完全支持或者尚不支持SQL Server的某些功能,这使得我们不能像平常一样使用bak文件还原的方式迁移数据库,也不能使用数据导入导出向导.很多SQL Server的特性在SQL Azure中不被支持. 那我们怎样才能将现有数据库迁移到SQL Azure上呢? 一."将数据库部署到SQL Azure"向导 我最先想到的是这个向导,对数据库右键=>任

使用SSMS 2014将本地数据库迁移到Azure SQL Database

使用SQL Server Management Studio 2014将本地数据库迁移到Azure SQL Database的过程比较简单,在SSMS2014中,有一个任务选项为“将数据库部署到Windows Azure SQL Database”: 使用本选项可实现一键迁移到Azure SQL Database. 但是, 最近由于近期Azure的改动,导致Azure支持的数据库类型与SSMS2014中数据库的类型不匹配,整个迁移过程会死在在Azue中创建数据库的步骤上.在国际版Azure, 已

MS SQL Server迁移至SQL Azure

SQL Server的数据目前是存在于公司服务器的,现时需要将它迁移至SQL Azure 迁移分两种 数据库结构复制 数据库结构复制与数据迁移至SQL Azure 第1种方法针对的是将现有数据库创建新库至新服务器,做法是在原服务器生成结构脚本,在新服务器执行即可 第2种方法针对的是将现有数据库完整迁移至SQL Azure,做法是使用SQL Azure 迁移向导工具,将数据库结构与数据同时迁移至Azure中 一:数据库结构复制 使用SSMS生成Azure SQL Server运行的DB脚本 第一步

上船容易——从阿里云迁移SQL数据库到Azure云的尝试 之一

开始之前先说我的情况,SQL 2000的DBA,之后没怎么搞过SQL.所以以下写的内容如果有错误,请DBA大拿不要笑喷~ ??? 有个朋友之前把应用搬到了阿里云,数据库也搬上去了,用的RDS(别问我为啥这名字和AWS一样哦).最近这朋友忽然想把架构迁移到Azure上,于是问我是不是能迁移.应用有Java和.Net的,数据库有MySQL和SQL Server,前面的都不是事儿,到了SQL Server这儿,有点麻烦了. ??? 朋友的数据库挺大,而且业务在线,所以常规的导出导入,备份恢复和虚机迁移

Windows Azure Cloud Service (39) 如何将现有Web应用迁移到Azure PaaS平台

<Windows Azure Platform 系列文章目录> 本文将简单介绍,如何将企业内现有的ASP.NET应用程序迁移到Azure PaaS平台. 因为在迁移过程中,可能需要对现有的应用重新做架构设计,本文只是进行简单的介绍,开拓思路,具体的应用需要具体研究分析. 1.首先需要下载Azure SDK.使用Visual Studio创建新的Cloud Service,将现有的ASP.NET应用程序页面包含在Cloud Project中. 2.对于用户会话(Session)进行修改. Clo

设置SQL Azure防火墙规则来允许SSMS管理SQL Azure

SQL Server Management Studio可以用来管理SQL Azure 但SQL Azure是云端的关系型数据库,也就是说任何一台连接到Internet的机器都能够连接到SQL Azure数据库.但是在某些情况下这是不安全的,作为用户来说,我只希望我自己企业内部能够连接到我创建的SQL Azure数据库:除我企业之外的其他人都无法连接到这台SQL Azure数据库.这个功能可以功过设置SQL Azure的防火墙规则来进行. 我这里设置任何地址都可以访问 设置SQL Azure防火

Windows Azure Platform体验(2):SQL Azure

Windows Azure Platform有Windows Azure.SQL Azure.Azure AppFabric三部分. SQL Azure是云关系数据库.您的数据:随时随地管理.SQL Azure是云中的完全关系数据库. 这节我们体验SQL Azure,必备软件: Microsoft SQL Server 2008 R2 Windows Azure Platform账户 这次体验有下面几个步骤,分别是: 初始化SQL Azure 连接到SQL Azure 配置SQL Azure数据

Using sql azure for Elmah

The MSDN docs contain the list of T-SQL that is either partially supported or not supported.  For example see the following location for CREATE TABLE - http://msdn.microsoft.com/en-us/library/ee336258.aspx In Elmah's case, the filegroup is not suppor

SQL中迁移sql用户及密码脚本

SQL中迁移sql用户及密码脚本   编写人:CC阿爸 2014-6-20 在日常SQL数据库的操作中,常常需要迁移数据库或重装服务器,这时候,一些之前建立的login账户,必须重新建立,以下可以通过脚本,将其导出,在重装或移植时,可方便能过执行脚本来生成,不用再手动一个个建立.大大提高操作效率. select 'create login [' + p.name + '] ' + case when p.type in('U','G') then 'from windows ' else ''