您的位置:新葡亰496net > 网络数据库 > 数据库迁移,开辟入门

数据库迁移,开辟入门

发布时间:2019-09-08 03:38编辑:网络数据库浏览(116)

     

    数据库迁移(SQLSERVER导入数据到MySql)

    背景:项目最开始时使用的是SQL Server数据库,业务需求现要将数据库调整为MySQL。网上搜集了一些教程,整理了一个相对简单方便的分享给大家。

    1、先去mysql官网下载一个odbc的驱动,因为MSsql一直没有集成mysql的驱动,这个玩意需要单独下载并安装。点我下载 我下载的是windows解压缩的包Windows (x86, 64-bit), ZIP Archive,免安装版(据说绿色版比安装版本要好)。

    2、控制面板 —> 打开ODBC数据源

    图片 1

    如果安装成功,在ODBC数据源驱动里面有2个相应选项,如下图:图片 2

    3、点击上图的用户DSN,添加一个mysql的连接(前提是你已经安装了一个mysql的数据库)。

    图片 3
    双击之后出现下面的提示框:
    图片 4图片 5

    啊,哈,至此已经成功了一半了!

    4、如果是SQL server2000用DTS的话,就可以直接用了。关键步骤在下面
    图片 6

    下面这个界面很熟悉了:

    图片 7

    ok导入完成了。
    当然也可以使用文件dsn,把连接串存成一个文件,然后导入的时候选择文件dsn,只要找到连接串的路径就可以了,不在赘述。。

    驱动装完之后就可以开始导库了。

    我使用的是MySQL的Client的工具SQLyog,安装很简单,功能界面很像SQL Server 2008,易上手。(由于本人安装的是中文破解版,为了更方便英文版的童鞋阅读理解,截图就直接拿原博的来用了,嘻嘻,附原博地址 )

    1. SQLyog安装完之后新建一个空数据库,右键【Import】->【Import Extenal Data】;

    图片 8

    (Figure1:Import)

    1. 选择【Start a new job】,点击【下一步】;

    图片 9

    (Figure2:Start a new job)

    1. 下面就是DSN的设置界面,如果你的下来列表中没有需要导出SQL Server数据库的DSN,那么需要通过【Create a New DSN】来创建一个新的DSN连接到SQL Sever;

    图片 10

    (Figure3:Create a New DSN)

    图片 11

    (Figure4:创建新数据源)

    图片 12

    (Figure5:选择数据源类型)

    1. 把上面的设置保存为一个local.dsn文件;

    图片 13

    (Figure6:选择数据源保存路径)

    图片 14

    (Figure7:选择SQL Server服务器)

    图片 15

    (Figure8:设置SQL Server帐号和密码)

    图片 16

    (Figure9:选择SQL Server数据库)

    图片 17

    (Figure10:测试数据源)

    图片 18

    (Figure11:测试成功)

    1. 选中【File DSN】,在浏览中选择我们刚刚创建好的DSN,接着填写登录到SQL Server的帐号和密码;

    图片 19

    (Figure12:选择DSN)

    1. 下一步,选择目标MySQL服务器,填写IP地址和帐号密码,并选择目标数据库;

    图片 20

    (Figure13:设置MySQL帐号和密码目标数据库)

    图片 21

    (Figure14:表拷贝)

    1. 这一步类似SQL Server的导入导出功能,这里可以拷贝一个表或者多个表。同时还可以设置具体的过滤细节,里面包括了SQL Server表字段与MySQL表字段之间的对应关系【Map】,高级选项【Advanced】,过滤【WHERE】。我们目前的需求是拷贝所有,所以后面的过滤步骤(第8步)可以不予考虑, 直接点击“下一步”开始copy。之前的全部过程就像是为SQL Server与MySQL创建了一个时光隧道,这里设置SQL Server表与MySQL表之间的对应关系好比是在告诉它我要传送的是什么东西(比如说人、还是动物),告诉他之后就可以点击“下一步”开始时光穿梭了^w^

    图片 22

    (Figure15:选择表对应关系)

    8. 下图Figure16,数据源【Source】,描述【Destination】,特别注意这里数据类型【Type】,这里的意思是转换目标的数据类型,但是不需要跟目标表的一样,因为这里是做为一个临时存储的数据类型,类似FindOn在SQL Server中是datetime,这里转换为MySQL的timestamp,其实MySQL目标表的数据类型是datetime,这样的设置也是可以转换成功的。

    图片 23

    (Figure16:表字段转换)

    图片 24

    (Figure17:高级选项)

    图片 25

    (Figure18:Error)

    图片 26

    (Figure19:Log日志信息)

    图片 27

    (Figure20:执行信息)

    图片 28

    (Figure21:执行结果)

    图片 29

    (Figure22:原始SQL Server的数据列表)

    图片 30

    (Figure23:转移到MySQL的数据列表)

    。对比下Figure22与Figure23,发现我们数据已经全部转移成功了! 有不足之处还望各路大神多多指点^w^

    背景 :项目最开始时使用的是SQL Server数据库,业务需求现要将数据库调整为MySQL。网上搜集了一些教...

    SQLSERVER数据导入到MYSQL

    1、去mysql的官方下载一个odbc的驱动,因为MSsql一直没有集成mysql的驱动,这个玩意需要单独下载,并安装的。

    我下载的是windows解压缩的包Without installer (unzip in C:),没有选择安装的。绿色版比安装版本要好。点击install的一个bat文件。
    2、如果安装成功,在ODBC数据源驱动里面有个选项,如下图:
     图片 31
                                                      
    3、点击上图的用户dsn,添加一个mysql的连接,前提是你有一个mysql的数据库。
     图片 32
       
    双击之后出现下面的提示框:
     
    图片 33

    啊,哈,成功了一半了。

    4、如果是SQL server2000用DTS的话,就可以直接用了。关键步骤在下面

    图片 34
     
        下面这个界面很熟悉了:
     图片 35
       
    ok导入完成了。
    当然也可以使用文件dsn,把连接串存成一个文件,然后导入的时候选择文件dsn,只要找到连接串的路径就可以了,不在赘述。。

    5、如果你用的是SQL2005的ssis的话,有点恶心。在这里我在强调一下:

    我十分讨厌sql2005里面的DTS。希望微软的人能看到。
     图片 36

    这里面的dsn要手动写的,没有办法从odbc里面直接读取出来,这个功能很实用,不会让人产生很多的误解。但是在2k5里面却没有,非常费解,微软的家伙是干啥吃的。
    别以为你已经成功了,点下一步,在点下一步,等死吧。
    图片 37
    我操,只能选择-编写查询以指定要传输的数据。吐血了。。有200多个表啊。这tmd咋搞?
    经过测试,文件dsn和系统dsn都没有选择所有的表。而如果选择文件dsn用连接字符串的方式报这个错误:
    图片 38

    我十分讨厌SQL server2005的DTS功能,设计微软SQL Server 2005的工程师是个白痴。

    我决定用2K了。

    我有测试了一下2008,嗯。2008有这个功能,下图:
    图片 39


    SQL Server 迁移数据到MySQL

    一、背景

    由于项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为MySQL,所以需要把SQL Server的数据转移到MySQL;由于涉及的表比较多,所以想在MySQL中生成对应表并导入数据;

    上网找了些资料,如:将ACCESS和MSSQL导入MYSQL中、MySQL Migration 实现 MSSQL 到 MySQL数据迁移,虽然不知道里面的做法是否可以成功转移,但是里面的过程比较复杂,没有去尝试,后来自己找到了方法,最重要就是简单和准确(暂时没发现明显的BUG),这里分享给大家。

     

    二、转移数据

    我使用了MySQL的Client的工具SQLyog,这个工具的安装很简单。安装完成之后点击需要导入的目标数据库,点击右键【Import】->【Import Extenal Data】;

    图片 40

    (Figure1:Import)

    选择【Start a new job】,点击【下一步】;

    图片 41

    (Figure2:Start a new job)

    下面就是DSN的设置界面,如果你的下来列表中没有需要导出SQL Server数据库的DSN,那么需要通过【Create a New DSN】来创建一个新的DSN连接到SQL Sever;

    图片 42

    (Figure3:Create a New DSN)

    图片 43

    (Figure4:创建新数据源)

    图片 44

    (Figure5:选择数据源类型)

    把上面的设置保存为一个local.dsn文件;

    图片 45

    (Figure6:选择数据源保存路径)

    图片 46

    (Figure7:选择SQL Server服务器)

    图片 47

    (Figure8:设置SQL Server帐号和密码)

    图片 48

    (Figure9:选择SQL Server数据库)

    图片 49

    (Figure10:测试数据源)

    图片 50

    (Figure11:测试成功)

    选中【File DSN】,在浏览中选择我们刚刚创建好的DSN,接着填写登录到SQL Server的帐号和密码;

    图片 51

    (Figure12:选择DSN)

    下一步,选择目标MySQL服务器,填写IP地址和帐号密码,并且需要选择目标数据库;

    图片 52

    (Figure13:设置MySQL帐号和密码目标数据库)

    这一步类似SQL Server的导入导出功能,这里可以拷贝一个表或者使用SQL脚本过滤数据;

    图片 53

    (Figure14:表拷贝)

    上面的全部过程就是为创建SQL Server与MySQL的一个管道,接下来就是最为重要的设置SQL Server表与MySQL表之间的对应关系了;里面包括了SQL Server表字段与MySQL表字段之间的对应关系【Map】,高级选项【Advanced】,过滤【WHERE】。

    图片 54

    (Figure15:选择表对应关系)

    下图Figure16,数据源【Source】,描述【Destination】,特别注意这里数据类型【Type】,这里的意思是转换目标的数据类型,但是不需要跟目标表的一样,因为这里是做为一个临时存储的数据类型,类似FindOn在SQL Server中是datetime,这里转换为MySQL的timestamp,其实MySQL目标表的数据类型是datetime,这样的设置也是可以转换成功的。

    图片 55

    (Figure16:表字段转换)

    图片 56

    (Figure17:高级选项)

    图片 57

    (Figure18:Error)

    图片 58

    (Figure19:Log)

    图片 59

    (Figure20:执行信息)

    图片 60

    (Figure21:执行结果)

    图片 61

    (Figure22:原始SQL Server的数据列表)

    图片 62

    (Figure23:转移到MySQL的数据列表)

    对比下Figure20与Figure21,发现我们数据已经全部转移成功了;

    云数据

    概述

    本篇我们将利用DMA一步一步实现SQL Server 的迁移。帮助大家理解现在的SQL Server与新版本的融合问题,同时需要我们做哪些操作来实现新版本的升级或者迁移。

    SQL Azure 开发入门

    SQL Server 迁移

    一定要有一个准备好的计划,我下面列出了所有的迁移过程需要做的工作,如下列表:

    Microsoft Windows Azure 提供了多种数据存储可选方式, 其中包括 Windows Azure 存储和 SQL Azure。 您可以选择在特定项目中使用其中一种,也可以两种都使用。 Windows Azure 存储目前包含三种存储结构:表、队列和 Blob。

    步骤列表

    序号

    SQL Server迁移步骤

    1

    必要环境的准备(比如高版本的服务器操作系统)

    2

    研究弃用和停用的功能、特性

    3

    运行数据迁移助手(DMA)了解哪些改变不被允许或者会影响迁移。

    4

    确认SQL Server 服务,数据引擎,SSIS,SSAS,SSRS等等可用

    5

    排序规则注意一致或者有变更的仔细核对

    6

    确保应用程序的连接需求

    7

    日志、聚集、数据库镜像、复制、全文索引、分布式服务等服务类的都需要有计划的去管理迁移。

    8

    管理有效的连接服务器,迁移

    9

    备份策略和计划的完整迁移,包含了完整、差别、事务日志备份。

    10

    规划需要的磁盘空间

    11

    管理迁移各个服务的账号

    12

    检查数据一致性

    13

    预升级--升级前后比较性能指标

    14

    评估宕机时间及影响

    15

    定稿升级流程

    16

    制定升级、迁移的验收标准

    17

    最终验收

    18

    回滚计划以及测试

    19

    务必通知所有涉及和影响的负责人

    20

    向所有负责人发送升级、迁移的步骤

    21

    准备新的、或者迁移旧的数据库维护计划

     

    以上的列表就是我的迁移计划中的主要步骤,仅供参考。当然根据不同的环境和使用者的情况,可以调整出一套更适合自己的文档来满足需求,比如升级时的顺序,

    SQL Azure 是云中的关系数据存储服务。 此产品的一项优势是可以使用熟悉的关系开发模型,包括很多标准的 SQL Server 语言 (T-SQL)、工具和实用工具。 当然,在云中使用很容易理解的关系结构(例如表、视图和存储过程)也会提高开发人员使用这个新平台的效率。 其他优势包括可以减少实际的数据库管理工作(包括服务器的设置、维护和安全防护),以及对可靠性、高可用性和可扩展性的内置支持。

    手把手教你使用DMA

          经过上面,我们直奔主题,讨论如何使用DMA帮助我们初始评估迁移,在正式迁移之前需要一个预估。首先,请到微软的下载中心(),下载最新版本的DMA。然后安装,无论是服务器还是客户机,当你运行DMA后画面如下,当你是第一次打开这个向导时,需要创建一个项目。点击左侧的“ ”号

    图片 63
    开始屏幕

    下一个屏幕中将会有两个选项:

    1) Assessment

    2) Migration

    这里我们选择assessment,因为这时我们是评估并不是真的要迁移。在开始实际迁移之前,我们要评估所有的事实并分析报告。发现潜在的问题。

    图片 64

     

    在选择后,你需要制定一个项目名称,比如我这边是从2014升级到2017,SQL2K14toSQL2K17。

    在剩下的部分,你需要选择自己的源和目标服务器选择类型:

    图片 65

     

    源数据库类型即你计划迁移、升级的数据源类型,我这里选择的是SQL Server,当然也是支持其他类型数据源的。

    目标服务器类型只能选择SQL Server 或者Azure DataBase。我选择的是SQL Server。

    完成所有选型后,点击创建按钮

    图片 66

     

    这里将会创建你的评估项目,并且打开一个新的屏幕。新屏幕上将给你一个选项来选择目标数据库版本。我选的是2017。这里版本基于你的目标服务器类型。如果选择Azure服务器将会是Azure的版本,

    图片 67

     

     

    让我们继续,选择多选框,这里选中兼容性问题和新特性推荐。Check feature parity不能选择是因为这个选项是专门为Linux 上的数据库准备的。

     

    图片 68

     

    接下来,需要连接源数据库的信息和权限。在屏幕下方,看到实例有关权限集的信息。点击Connect按钮连接数据库。

     

    图片 69

     

    一旦,成功连接,下面就会真是给你可用的数据库。选择数据库评估迁移。这时你已经能够灵活的选择一个还是多个数据库进行迁移。

    图片 70

     

    这里我选择了两个数据库,执行对它们的迁移评估。在点击ADD按钮后,下个界面将会开启迁移评估。

    图片 71

     

    评估时间取决于你的数据库大小,在下个界面,你会看到评估进度。

    图片 72

     

    最后DMA完成所有评估,下图展示界面会展示评估结果。这个界面提供了情报信息帮助了解当前迁移的状况。包含了很多实际迁移中会触发的信息。

    图片 73

     

    DMA提供了一个选项导出评估报告,两种格式;

    1. JSON 2. CSV。这也简化了我们制作评估的难度,方便给其他人看。

    图片 74

    保存结果。迁移与评估操作基本类似这里就不在重复操作了。

    本文不会介绍 Windows Azure 存储,也不会比较这两种存储模式。 有关这些可选存储方式的更多信息,请查阅 Julie Lerman 于 2010 年 7 月撰写的“数据点”专栏 (msdn.microsoft.com/magazine/ff796231)。 有一点要引起注意,就是 Windows Azure 表并不是关系表。 强调这一点的主要目的在于让您了解 SQL Azure 中包含的功能。

    总结

         DMA是一个强大的工具,能够评估SQL Server 升级和迁移到更高版本,从而满足公司和业务的需要。这个工具帮助迁移SQL Server到本地服务器或者是Azure上服务器。本篇我们一起一步一步的执行了整个SQL Server 2014 到 SQL Server 2017的迁移。按照我之前所列的步骤将其他任务依次完成,最后我这边完整升级了整个系统并没有出现其他问题。希望大家也能完美升级,不出bug。

    本文将探讨 SQL Server 和 SQL Azure 之间的不同之处。 您需要深入了解这些不同之处,才能合理利用您目前掌握的 SQL Server 知识,处理好以 SQL Azure 作为数据源的项目。

    如果您在云计算方面是新手,则在继续阅读本文之前,您需要了解一些有关 Windows Azure 的背景知识, 不妨从 MSDN 开发人员云中心 (msdn.microsoft.com/ff380142) 开始。

    SQL Azure 入门

    若要开始使用 SQL Azure,您首先需要设置帐户。 如果您订阅了 MSDN,可以在最多 16 个月内使用三个 SQL Azure 数据库(每个最大 1GB)作为开发人员沙箱(详细信息,请参见 msdn.microsoft.com/subscriptions/ee461076)。 若要注册一般的 SQL Azure 帐户(需收取存储和数据传输费用),请访问 microsoft.com/windowsazure/offers/。

    注册 SQL Azure 帐户之后,开始访问它的最简单方法是通过 Web 门户 sql.azure.com。 您必须使用与 Windows Azure 帐户关联的 Windows Live ID 登录。 登录之后,您可以创建您的服务器安装,并开始开发应用程序。

    1 显示了 SQL Azure Web 管理门户的示例,可以在其中看到服务器及其关联的数据库。 您会注意到,该 Web 门户中还包含一个选项卡,用于管理您的 SQL Azure 安装的防火墙设置。

     图片 75

    图 1 SQL Azure 数据库的摘要信息

    首次创建 SQL Azure 服务器安装时,将为其分配一个随机字符串作为服务器名称。 您一般也可以在创建服务器时,设置管理员的用户名、密码、服务器的地理位置以及防火墙规则。 您可以在创建服务器时为 SQL Azure 选择安装位置。 系统会为您提供位置(数据中心)列表,可以从中选择位置。 如果您的应用程序前端构建在 Windows Azure 中,您可以选择将应用程序安装与 SQL Azure 安装相关联,从而将这两者安置在同一地理位置。

    默认情况下,不能访问您的服务器,因此需要为所有客户端 IP 创建防火墙规则。 SQL Azure 使用端口 1433,因此需要确保该端口也对您的客户端应用程序开放。 连接 SQL Azure 时,您需要使用 username@servername 格式的用户名。 SQL Azure 只支持 SQL Server 身份验证,不支持 Windows 身份验证。 另外还支持多重活动结果集 (MARS) 连接。

    打开的连接如果处于不活动状态的时间达到 30 分钟,将超时。 另外,如果出现长时间运行的查询和事务,或者如果资源使用过度,连接也会断开。 在您的应用程序中,有关连接的最佳开发准则就是手动打开、使用然后关闭这些连接,加入针对已断开连接的连接重试逻辑,还要避免因为这些行为而导致缓存连接。 有关 SQL Azure 支持的客户端协议的详细信息,请参见 Steve Hale 的博客文章 (blogs.msdn.com/b/sqlnativeclient/archive/2010/02/12/using-sql-server-client-apis-with-sql-azure-vversion-1-0.aspx)。

    另一项最佳准则是加密您的连接字符串,以防止中间人攻击。

    如果您不在连接字符串中指定数据库名称,默认情况下您将连接到主数据库。 在 SQL Azure 中,不支持使用 T-SQL 语句 USE 来更改数据库,因此您一般需要在连接字符串中指定要连接的数据库(假设您要连接到主数据库之外的其他数据库)。 以下是一个 ADO.NET 连接示例:

    1.            Server=tcp:server.ctp.database.windows.
    
    2.            net; Database=<databasename>; User ID=user@server; Password=password; Trusted_Connection=False; Encrypt=true;
    
    3.          
    

    设置数据库

    当您成功连接到服务器安装之后,将需要创建一个或多个数据库。 尽管可以使用 SQL Azure 门户创建数据库,您可能还是希望使用其他一些工具,例如 SQL Server Management Studio 2008 R2。 默认情况下,您最多可以为每个 SQL Azure 服务器安装创建 149 个数据库。 如果您需要更多数据库,必须致电 Windows Azure 业务中心,要求增加限值。

    创建数据库时,您必须选择最大大小。 目前的大小设置(以及计费)选项是 Web Edition 或 Business Edition。 默认选项 Web Edition 支持总大小为 1GB 或 5GB 的数据库。 Business Edition 支持最大为 50GB 的数据库,可以 10GB 为增量确定大小,即支持 10GB、20GB、30GB、40GB 和 50GB 的数据库。

    创建数据库时,您可以使用 MAXSIZE 关键字对数据库的大小做出限制。 最初创建之后,可以使用 ALTER DATABASE 语句更改大小限制或版本(Web 或 Business)。 如果您达到所选版本的大小或容量限制,您将收到错误代码 40544。 衡量数据库大小时并不包括主数据库,也不包括数据库日志。 有关大小和定价的详细信息,请参见 microsoft.com/windowsazure/pricing/#sql。

    在您创建新的 SQL Azure 数据库时,必须意识到您实际上是在创建该数据库的三个副本。 这样做的目的是为了确保高可用性。 这些数据库副本对您来说是完全透明的。 新的数据库显示为供您使用的一个单元。

    创建数据库之后,通过在门户上的列表中选择数据库并单击“连接字符串”按钮,可以快速获得数据库的连接字符串信息。 您还可以单击所选数据库的“测试连接”按钮,通过门户快速测试连接。 要使此测试成功,您必须在 SQL Azure 门户上的“防火墙规则”选项卡上启用“允许 Microsoft 服务连接到此服务器”选项。

    创建应用程序

    设置帐户、创建服务器、创建至少一个数据库并设置防火墙规则从而可以连接数据库之后,您可以开始使用这个数据源开发应用程序。

    与 Windows Azure 数据存储可选方式(例如表、队列或 Blob)不同,当您使用 SQL Azure 作为项目的数据源时,您无需在开发环境中安装任何内容。 如果您使用的是 Visual Studio 2010,您可以直接开始,而无需更多的 SDK、工具或其他任何内容。

    尽管很多开发人员选择使用 Windows Azure 作为前端并使用 SQL Azure 作为后端,但这种配置不是必需的。 您可以使用任意的前端客户端,只需具备受支持的连接库即可,例如 ADO.NET 或 ODBC。 这其中包括使用 Java 或 PHP 编写的应用程序。 目前不支持通过 OLE DB 连接到 SQL Azure。

    如果您使用 Visual Studio 2010 开发应用程序,您可以利用其中提供的功能,直接从 Visual Studio 服务器资源管理器在所选的 SQL Azure 数据库安装中查看或创建很多类型的对象。 这些对象是表、视图、存储过程、函数和同义词。 您还可以使用这个查看器查看与这些对象相关的数据。 对于很多开发人员来说,使用 Visual Studio 2010 作为主要的工具来查看和管理 SQL Azure 数据就足够了。 2 是服务器资源管理器的视图窗口,其中显示了数据库的本地安装和云实例。 您会发现,两个视图中的树节点稍有不同。 例如,云安装中没有程序集节点,因为 SQL Azure 不支持自定义程序集。

     图片 76

    图 2 Visual Studio 服务器资源管理器中查看数据连接

    正如前文所述,另一个可用来处理 SQL Azure 的工具是 SQL Server Management Studio (SSMS) 2008 R2。 与使用 Visual Studio 2010 相比,您使用 SSMS 2008 R2 可以访问更多的 SQL Azure 数据库操作。 这两种工具,我自己都会使用,具体取决于要完成的操作。 SSMS 2008 R2 提供而 Visual Studio 2010 中没有的一个操作例子是使用 T-SQL 脚本创建新的数据库。 另一个例子是它能够轻松地执行索引操作(创建、维护和删除等等)。 3 显示了一个例子。

     图片 77

    图 3 使用 SQL Server Management Studio 2008 R2 管理 SQL Azure

    SQL Server 2008 R2 最新发布的一项功能是数据层应用程序,或者称为 DAC。 DAC pac 对象在一个实体中综合了 SQL Server 或 SQL Azure 数据库架构和对象。 您可以使用 Visual Studio 2010(构建)或 SQL Server 2008 R2 SSMS(提取),从现有的数据库创建 DAC。

    如果您希望使用 Visual Studio 2010 处理 DAC,则应首先在 Visual Studio 2010 中选择 SQL Server 数据层应用程序项目类型。 然后在解决方案资源管理器中,右键单击项目名称,单击“导入数据层应用程序”。 系统将打开一个向导,指导您完成导入过程。 如果您使用的是 SSMS,则可以在对象资源管理器中右键单击要使用的数据库,然后单击“任务”,再单击“提取数据层应用程序”以创建 DAC。

    生成的 DAC 是一个压缩文件,其中包含多个 T-SQL 和 XML 文件。 您可以右键单击 .dacpac 文件,然后单击“解压缩”来使用这些内容。 SQL Azure 支持删除、部署、提取和注册 DAC pac,但 支持升级它们。

    另一个可用来连接 SQL Azure 的工具是代码名称为“Houston”的工具的最新社区技术预览 (CTP) 版。Houston 是针对 SQL Azure 安装的管理工具,基于 Silverlight 技术,无需安装。 使用 Houston 连接 SQL Azure 安装时,您需要指定数据中心的位置(截止本文发表时,这些数据中心分别位于美国中北部、美国中南部、欧洲北部、欧洲中部、亚太地区和南亚地区)。

    Houston 尚处于早期 Beta 版本,目前发布的版本(如 4 所示)有些像 SSMS。 Houston 支持处理 SQL Azure 数据库安装中的表、视图、查询和存储过程。 您可以从 SQL Azure 实验室网站访问 Houston,地址是 sqlazurelabs.com/houston.aspx。

     图片 78

    图 4 使用 Houston 管理 SQL Azure

    另一个可用来连接 SQL Azure 数据库的工具是 SQLCMD (msdn.microsoft.com/library/ee336280)。 尽管 SQL Azure 支持 SQLCMD,但并不支持 OSQL 命令行工具。

    使用 SQL Azure

    现在,您已经连接到 SQL Azure 安装并创建了一个新的空数据库。 那么能用 SQL Azure 做什么呢? 具体来说,您可能想知道在创建对象时有哪些限制。 创建这些对象之后,您该如何使用数据填充这些对象?

    正如我在本文开头所说,SQL Azure 提供了关系型云数据存储,但它与本地安装的 SQL Server 在某些功能上存在微妙的差别。 从创建对象开始,我们来看一看这两者之间的关键差别。

    您可以使用熟悉的方法在 SQL Azure 数据库中创建最常用的对象。 所有最常用的关系对象(包括表、视图、存储过程、索引和函数)都可以使用。 但是对象的创建过程有一些差别。 以下就是对这些差别的总结:

    • SQL Azure 表必须包含聚集索引。 随后,可以在选定的表上创建非聚集索引。 您可以创建空间索引,但无法创建 XML 索引。
    • 不支持堆表。
    • 支持 CLR 地理空间类型(例如 Geography 和 Geometry),也支持 HierachyID 数据类型。 其他 CLR 类型则不受支持。
    • 创建视图必须是批处理中的第一条语句。 另外,不支持创建加密的视图(或存储过程)。
    • 函数可以是标量、内联或多语句表值函数,但不能是 CLR 类型的函数。

    有关 SQL Azure 部分支持的 T-SQL 语句的完整参考,请参见 MSDN 中的 msdn.microsoft.com/library/ee336267。

    在您开始创建对象之前,请记住如果您没有在连接字符串中指定其他数据库,您将连接到主数据库。 在 SQL Azure 中,不支持使用 USE (database) 语句更改数据库;如果您需要连接到除主数据库之外的其他数据库,则必须在连接字符串中明确指定该数据库,如前文所述。

    数据迁移和加载

    如果您打算使用现有的本地数据库作为源数据和结构来创建 SQL Azure 对象,则您只需使用 SSMS 编写合适的 DDL 脚本,在 SQL Azure 上创建这些对象。 使用生成脚本向导并将“数据库引擎类型的脚本”选项设置为“SQL Azure”。

    一种更加简单的脚本生成方法是使用 SQL Azure 迁移向导,该向导可从 CodePlex 下载,地址是 sqlazuremw.codeplex.com。 使用这个方便的工具,您可以生成脚本来创建对象,还可以使用 bcp.exe,通过大容量复制来加载数据。

    您还可以设计 SQL Server Integration Services (SSIS) 程序包来提取并运行 DDM 或 DDL 脚本。 如果您使用的是 SSIS,最常用的方式是设计一个从源数据库提取 DDL 的程序包,针对 SQL Azure 编写该 DDL 的脚本,然后在一个或多个 SQL Azure 安装上执行该脚本。 您还可以选择加载相关的数据,作为该程序包执行路径的一部分。 有关使用 SSIS 的更多信息,请参见 msdn.microsoft.com/library/ms141026。

    有关 DDL 创建和数据迁移,还请注意 CTP 版本的 SQL Azure 数据同步服务 (sqlazurelabs.com)。 您可以在第 9 频道视频“使用 SQL Azure 数据同步服务为 SQL Azure 数据库提供地理位置复制功能”中看到此服务的实际效果,地址是 tinyurl.com/2we4d6q。 目前,SQL Azure 数据同步服务通过同步组(HUB 和 MEMBER 服务器)、然后通过计划的同步在选择进行同步的数据库中的各个表级别工作。

    您可以使用 Microsoft Sync Framework Power Pack for SQL Azure 在数据源和 SQL Azure 安装之间同步数据。 截至本文发表时,该工具仍然是 CTP 版本,可从 tinyurl.com/2ecjwku 获得。 如果您使用此框架为应用程序执行后续的或持续的数据同步,您可能还希望下载相关的 SDK。

    如果您的源数据库比 SQL Azure 数据库安装的最大大小还要大,该怎么办? 也就是说,大于 Business Edition 中 50GB 的绝对最大值或大于根据其他程序选项而设置的小一些的大小限制。

    目前,如果用户数据库大小超出程序的限制,用户必须对数据进行手动分区(或打碎)。 Microsoft 已经宣布,将在未来推出用于 SQL Azure 的自动分区工具。 同时,需要注意的是 SQL Azure 不支持 T-SQL 表分区。 您可以使用这款免费的实用工具 Enzo SQL Shard (enzosqlshard.codeplex.com数据库迁移,开辟入门。),将您的数据源分区。

    您需要注意 SQL Server 和 SQL Azure 在数据加载和数据访问方面的其他一些差别。

    最近加入的一项功能是通过“数据库复制”命令复制 SQL Azure 数据库。 跨服务器复制的语法如下所示:

    1.            CREATE DATABASE DB2A AS COPY OF Server1.DB1A
    
    2.          
    

    支持 T-SQL INSERT 语句(但不支持在 INSERT 语句内更新视图或提供锁定提示)。

    针对 SQL Azure 安装执行时,T-SQL DROP DATABASE 和其他 DDL 命令在数据迁移方面还有更多限制。 此外,T-SQL RESTORE 和 ATTACH DATABASE 命令不受支持。 最后,T-SQL 语句 EXECUTE AS (login) 不受支持。

    数据访问和编程

    现在,我们讨论在处理云数据时需要注意的一般编程事项。 首先,您要考虑将开发环境设置在哪里。 如果您订阅了 MSDN,而且可以处理小于 1GB 的数据库,则只使用云安装(沙箱)即可进行开发。 如果是这样,从本地向云环境迁移就不会有任何问题。 如果没有订阅 MSDN,则使用一般的 SQL Azure 帐户,可以直接针对云实例进行开发(最有可能的是使用生产数据库在云中的副本)。 当然,直接从云中进行开发并不适合所有情况。

    如果您选择本地安装的 SQL Server 数据库作为开发的数据源,则必须开发一种机制来同步本地安装和云安装。 您可以使用前文介绍的方法进行同步,而正在开发的工具,如 Data Sync Services 和 Sync Framework 等,正是针对这种情况的。

    只要您只使用受支持的功能,则将您的应用程序从本地安装的 SQL Server 转换到 SQL Azure 数据库的方法就很简单:只需更改应用程序中的连接字符串即可。

    无论您是将开发环境设置在本地还是设置在云中,您都需要了解 SQL Server 和 SQL Azure 在编程方面的差别。 我已经介绍了 T-SQL 以及连接字符串的差别。 此外,所有表至少必须具备聚集索引(堆表不受支持)。

    如前所述,用于更改数据库的 USE 语句不受支持。 这也意味着,不支持分布式(跨数据库)事务或查询,也不支持链接的服务器。

    在使用 SQL Azure 数据库时 能使用的其他选项包括:

    • 全文索引
    • CLR 自定义类型(但支持内置的 CLR 类型 Geometry 和 Geography)
    • RowGUID(支持对 NEWID 函数使用 uniqueidentifier 类型)
    • XML 列索引
    • Filestream 数据类型
    • 稀疏列

    默认排序规则始终用于数据库。 若要调整排序规则,请使用 T-SQL COLLATE 语句将列级排序规则设置为所需的值。

    最后,目前还无法对 SQL Azure 数据库使用 SQL 事件探查器或数据库优化向导。

    一些用于对 SQL Azure 进行优化和监控的重要工具包括:

    • SSMS 查询优化器,用于查看估计的或实际的查询执行计划的详细信息以及客户端统计信息
    • 部分动态管理视图可监控运行状况和状态
    • 实体框架,可在通过连接到 SQL Azure 数据库的本地副本创建初始模型和映射文件之后,连接到 SQL Azure。

    根据您所开发的应用程序类型,您可以使用 SSAS、SSRS、SSIS 或 PowerPivot。 您还可以将这些产品作为 SQL Azure 数据库数据的使用者。 只需使用本文前面介绍的方法连接到 SQL Azure 服务器和选定的数据库即可。

    充分了解 SQL Azure 中的事务行为也很重要。 如前所述,只支持本地(在同一数据库中)事务。 此外,SQL Azure 上托管的数据库可以使用的唯一事务隔离级别是 READ COMMITTED SNAPSHOT。 使用这个隔离级别,读取者在语句开始执行时获得的是最新版本的数据。

    SQL Azure 不会检测更新冲突。 这也称为乐观并发模型,因为会发生更新丢失、不可重复的读取和幻影。 当然,不会发生脏读。

    数据库管理

    一般而言,使用 SQL Azure 时,管理员的角色只是一种逻辑上的安装管理。 实际的管理工作由平台执行。 从实用的观点而言,这意味着无需购买、安装、修补、维护或保护实际的服务器。 也不存在实际的位置去实际放置文件、日志、tempdb 等等。 因此,不支持 T-SQL 命令 USE <database>、FILEGROUP、BACKUP、RESTORE 或 SNAPSHOT。

    SQL Azure 上也不支持使用 SQL 代理。 另外,也不支持(或不需要)配置复制、日志传送、数据库镜像或群集。 如果您需要在本地维护 SQL Azure 架构和数据的同步副本,则您可以使用前文讨论的用于数据迁移和同步的工具,这些工具都是双向作用的。 您还可以使用 DATABASE COPY 命令。

    除了保持数据同步之外,管理员还需要在 SQL Azure 安装上执行哪些任务? 

    最基本的,仍然需要执行逻辑管理。 其中包括安全性以及性能管理方面的任务。 此外,还需要监控容量的使用以及相关的花费。 为帮助您完成这些任务,SQL Azure 提供了一个公共的“状态历史记录”面板,用于显示当前的服务状态以及最近的历史记录( 5 显示了历史记录示例),面板的地址位于 microsoft.com/windowsazure/support/status/servicedashboard.aspx。

     图片 79

    图 5 SQL Azure 状态历史记录

    默认情况下,SQL Azure 具备很高的安全性标准。 它对所有允许的(通过防火墙规则)客户端连接均强制使用 SSL 加密。 服务器级别的登录以及数据库级别的用户和角色都是安全的。 SQL Azure 没有服务器级别的角色。 对连接字符串进行加密是最佳做法。 另外,您还可以使用 Windows Azure 证书来增加安全性。 有关详细信息,请参见 blogs.msdn.com/b/sqlazure/archive/2010/09/07/10058942.aspx。

    在性能方面,SQL Azure 可自动终止长时间运行的事务和空闲连接(超过 30 分钟)。 尽管您无法使用 SQL 事件探查器或跟踪标记来优化性能,但您可以使用 SQL 查询优化器来查看查询执行计划和客户端的统计信息。 您还可以使用标准 T-SQL 方法来执行统计信息管理和索引优化。

    数据库迁移,开辟入门。此外,还可以在数据库管理中使用一些动态管理视图(覆盖数据库、执行或事务信息)。 其中包括 sys.dm_exec_connections、_requests、_sessions、_tran_database_transactions、_active_transactions 和 _partition_stats。 有关 SQL Azure 支持的动态管理视图的完整列表,请参见 msdn.microsoft.com/library/ee336238.aspx#dmv。

    还有一些新视图,例如 sys.database_usage 和 sys.bandwidth_usage。 这些视图显示数据库的数量、类型和大小以及每个数据库的带宽使用情况,以便管理员掌握 SQL Azure 的计费情况。 6 显示了一个示例。在此视图中,数量的单位是 KB。 您可以通过以下命令来监控使用的空间:

    1.            SELECT SUM(reserved_page_count) * 8192 FROM sys.dm_db_partition_stats
    
    2.          
    

     图片 80

    图 6 SQL 查询中的带宽使用情况

    您还可以通过 SQL Azure 门户了解 SQL Azure 安装的当前费用情况,只需单击屏幕右上角的“计费”链接即可。

    了解更多

    若要了解有关 SQL Azure 的更多信息,我建议您下载 Windows Azure 培训工具包, 其中包括 SQL Azure 实践课程、白皮书、视频等等。 该培训工具包可从 microsoft.com/downloads/details.aspx?FamilyID=413E88F8-5966-4A83-B309-53B7B77EDF78 获得。

    另外,您可以参阅 SQL Azure 团队的博客 blogs.msdn.com/b/sqlazure/ 以及 MSDN SQL Azure 开发人员中心 msdn.microsoft.com/windowsazure/sqlazure。

    如果您要继续预览即将推出的 SQL Azure 功能,请访问 SQL Azure 实验室 sqlazurelabs.com。                                                                                

    sql azure 测试环境

    购买sql azure正式服务

    sql azure 申请试用

    本文由新葡亰496net发布于网络数据库,转载请注明出处:数据库迁移,开辟入门

    关键词:

上一篇:新葡亰496net详尽实例

下一篇:没有了