`
isiqi
  • 浏览: 16539007 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论
阅读更多

公告:本博客为微软云计算中文博客的镜像博客。部分文章因为博客兼容性问题,会影响阅读体验。如遇此情况,请访问原博客


SQL Azure vs. SQL Server

概要
SQL Azure Database 是一个来自微软的,基于云的关系型数据库服务。SQL Azure 提供关系型数据库功能来作为公用服务。基于云的数据库解决方案,例如SQL Azure,具有许多优势,包括迅速供应,高成本效益,高可用性和减少日常管理支出。本文比较了SQL Azure Database SQL Server在逻辑管理vs. 物理管理,供应, Transact-SQL 支持,数据存储, SSIS和其他特性和功能方面的异同。


目录

共性和差异

逻辑管理vs. 物理管理

服务提供

Transact-SQL 支持

特性和类型

服务的主要优势

自主管理

高可用性

可拓展性

熟悉的开发模式

关系型数据模型


共性和差异

与本地的SQL Server实例类似, SQL Azure 为基于Transact-SQL的数据库访问提供了一个 tabular data stream (TDS)接口。这使得您的数据库应用程序能以使用SQL Server相同的方式来使用SQL Azure SQL Azure是一个云端的服务,在管理上跟本地的SQL Server实例有一些小的差异。

与本地SQL Server实例不同的是,SQL Azure将逻辑上的管理与物理上的管理分离出来; 您可以继续管理数据库,登陆(login),用户和角色,但是微软会管理和配置物理硬件,例如硬盘,服务器和存储。这样, SQL Azure 不仅 能提供一个大规模的,多租户的数据库服务,还可以提供企业级的可用性、拓展性、安全性和自我修复能力。

由于微软负责所有的物理管理,所以SQL Azure 和本地的SQL Server实例会在管理,服务提供,Transact-SQL 支持,编程模式,和特性方面略有不同。更多详细内容请浏览Guidelines and Limitations (SQL Azure Database).

逻辑管理vs. 物理管理

虽然 SQL Azure在管理数据库的物理资源上发挥积极作用,但是数据库管理员(DBA)仍然在管理基于SQL Azure的应用程序方面有着举足轻重的作用。使用SQL Azure, 数据库管理员要管理创建的schema ,统计,调优索引,优化查询以及管理安全性(登陆(login),用户和角色等) 等。更多安全管理信息请浏览Managing Logins and Users in SQL Azure.

SQL Azure数据库管理与 SQL Server在物理管理方面最大的不同是, SQL Azure 不仅能够自动复制所有数据来提供高可用性,还可以管理负载均衡。当任何一台服务器停止工作的时候,其他的一台有您的数据库备份的正常运行的机器会被切换过来(Failover),这个过程对用户来说是透明的。

为了提供这一层面的物理管理,您不能控制SQL Azure的物理资源。举例来说,您不能指定数据库或索引驻留的物理硬盘,或文件组。因为不能访问计算机的文件系统并且所有的数据都会被自动复制,所以 SQL Server 的备份和恢复命令在SQL Azure上无效。 SQL Azure服务会备份所有的数据库,然而一般用户还无法这样做。我们可能会在未来提供这一功能。

服务提供

当准备部署本地SQL Server时,可能是由DBA IT 部门来准备和配置所需的硬件和软件。而使用SQL Azure,这些任务都由SQL Azure的服务提供程序来完成。

在您创建了一个Windows Azure Platform账户之后您便就可以开始使用您的SQL Azure 数据库了。该账户允许您访问所有服务,例如Windows Azure, AppFabric, SQL Azure,并用来建立和管理您的订购。

每一个SQL Azure订购都被绑定至某个微软数据中心中的一台SQL Azure 服务器上。您的SQL Azure 服务器是一个抽象概念,它其实是一个数据库编组。为了提供负载平衡和高可用性,您SQL Azure上各个数据库可能驻留在微软数据中心内独立的物理计算机上。当前,我们的数据中心分布于芝加哥Chicago (North Central US),圣安东尼奥San Antonio (South Central US),都柏林Dublin (West Europe), 阿姆斯特丹Amsterdam (North Europe),新加坡 Singapore (Southeast Asia) 和香港 Hong Kong (East Asia)。未来会增加更多数据中心。

更多供应信息请浏览SQL Azure Provisioning Model.

Transact-SQL 支持

许多SQL Server Transact-SQL 语句可以通过参数让您指定文件组或物理文件的路径但是SQL Azure并不支持这些类型的参数,因为它们依赖于物理配置。这种情况下,这些命令被视为部分支持。关于更多Transact-SQL 支持信息,请浏览 Transact-SQL Support (SQL Azure Database).

特性和类型

SQL Azure 并不支持SQL Server内所有的特性和数据类型。分析服务(Analysis Services),复制( Replication),报表服务( Reporting Services),以及 Service Broker在现在的SQL Azure上并不支持。然而,您可以将SQL Azure 用做数据源或目标数据库,使用本地的报表服务器或分析服务器连接SQL Azure

因为 SQL Azure负责物理管理,任何企图直接操作物理资源的语句和选项都被屏蔽掉了,例如Resource Governor,文件组访问或一些关于服务器的 DDL 语句。另外,您也不能够设置服务器选项和SQL 跟踪标志(Trace Flag),或使用SQL Server Profiler 以及Database Tuning Advisor

服务的主要优势

SQL Azure的优势是多方面的,包括可管理性,高可用性,可拓展性,熟悉的开发模式以及关系型数据模型。

自主管理

SQL Azure 提供了企业级数据中心的规模和功能,省去了日常管理本地SQL Server实例的支出。自主管理的能力使得企业既不用增加本地IT部门的支持负荷,也不用分散具有良好技能的职员的精力从本职工作到维护部门的数据库应用程序,还能够在整个企业内为应用程序提供数据服务。有了SQL Azure,您可以在极短的时间内准备好您的数据存储。通过提供您仅需的存储减少了数据服务的初始成本。当您的需求变化时,您可以轻松地通过拓展基于云的数据存储来满足需求。

高可用性

SQL Azure 构建于久经考验的Windows Server SQL Server 技术至上,拥有足够的弹性以处理所有使用上的和负载的变化。服务会在多个物理服务器上复制多份数据冗余拷贝以维持数据可用性和业务持续性。如果一台硬件出故障, SQL Azure 提供了自动的故障切换来确保您的应用程序的可用性。

可拓展性

SQL Azure的一大关键优势在于能够轻松拓展您的解决方案。随着数据增长,数据库也需要纵向拓展和横向拓展。纵向拓展往往会有一个上限,而横向拓展并没有实际的限制。通常横向拓展的方法是数据分割。在分割了您的数据之后,服务随着数据增长而拓展。一个现收现付的计价模式确保了您只需为您所使用的存储付费,所以当您不需要时可以随时缩减服务的规模。

熟悉的开发模式

当开发者创建使用SQL Server的本地应用程序时,他们使用客户端库例如ADO.NET, ODBC。它们使用tabular data stream (TDS) 协议在客户端与服务器之间通信。SQL Azure 提供了与SQL Server一致的TDS 接口,所以您可以使用相同的工具和库来为存储于SQL Azure中的数据构建客户端应用程序。关于更多TDS信息,请浏览Network Protocols and TDS Endpoints.

关系型数据模型

SQL Azure 对于开发者和管理员来说应该很容易上手,因为SQL Azure使用相似的关系型数据模型,数据存储于SQL Azure上就和存储于SQL Server上一样。在概念上类似于一个本地SQL Server实例, 一个SQL Azure 服务器就是一组数据库的逻辑组和,是一个独立的授权单位。

在每个SQL Azure 服务器内,您可以创建多个数据库, 每个数据库可以拥有多个表,视图,存储过程,索引和其他熟悉的数据库对象。该数据模型可以很好的重用您现有的关系型数据库设计和Transact-SQL 编程技能和经验,简化了迁移现有本地数据库应用程序至SQL Azure的过程。关于更多Transact-SQL 以及其与SQL Azure的关系,请浏览 Transact-SQL Support (SQL Azure Database).

SQL Azure 服务器和数据库都是虚拟对象,并不对应于物理服务器和数据库。通过将您与物理实现隔离,SQL Azure 使得您可以将时间专用于数据库设计和为业务增值上。


特性

SQL Server (本地)

SQL Azure

变通方法

数据存储Data Storage

无大小限制

· Web 版本

· Bussiness 版本

具体大小和定价信息请参考Pricing Overview.

注意:当您的使用到达分配的大小 (1 GB 10 GB),只有 SELECTDELETE语句会被执行。 UPDATE INSERT语句会抛出错误。

· 当旧数据可以被移植至另外一个SQL Azure或本地的数据库内时,一个存档过程可被创建。

· 因为上述的大小约束,建议对数据进行跨数据库分割。创建多个数据库能够充分利用多个节点的计算能力。Azure 模式的最大价值在于其灵活性,在您的需求在最高点时可以按需创建任意多的数据库,在需求降低时删除数据库。最大难题在于编写应用程序能够跨数据库的拓展。一旦该功能被实现,便可拓展至跨任意个数据库。

版本Edition

· Express

· Workgroup

· Standard

· Enterprise

· Enterprise 版本

连接性Connectivity

· SQL Server Management Studio

· SQLCMD

· SQL Server 2008 R2 Management Studio 提供了对SQL Azure完整的连接性。先前版本的支持有限。

· SQLCMD

数据移植Data Migration

· SQL Server Integration Services, BCP SqlBulkCopyAPI

验证Authentication

· SQL 验证

· Windows 验证

· SQL Server 验证

使用 SQL Server 验证

Schema

没有限制

SQL Azure 并不支持堆表。 所有表必须拥有一个聚集索引才能插入数据。

检查所有脚本,确保所有的表都有一个聚集索引。

TSQL 支持TSQL Supportability

某些 TSQL 命令完全支持。一些部分支持,另一些不支持.

· 支持的 TSQL: http://msdn.microsoft.com/en-us/library/ee336270.aspx

· 部分支持的TSQL: http://msdn.microsoft.com/en-us/library/ee336267.aspx

· 不支持的 TSQL: http://msdn.microsoft.com/en-us/library/ee336253.aspx

“USE” 命令“USE” command

支持

不支持

不支持USE 命令。因为每一个用户创建的数据库可能并不在同一个物理服务器上。所以应用程序必须从多个数据库上取回数据,并在应用程序层面结合这些数据。

事务复制Transactional Replication

支持

不支持

您可以使用BCP SSIS 来按需获得流入本地 SQL Server的数据。您也可以使用SQL Data Sync tool 来保持本地 SQL Server SQL Azure 的同步。

日志传输

Log Shipping

支持

不支持

数据镜像Database Mirroring

支持

不支持

SQL Agent

支持

SQL Azure上无法运行SQL agent/jobs

您可以在本地SQL Server上运行 SQL agent 并连接至SQL Azure

服务器选择项Server options

支持

· 支持一些系统视图 (http://msdn.microsoft.com/en-us/library/ee336238.aspx)

大多系统层面的元数据被禁用了,因为在云端提供服务器层的信息无意义。

连接限制Connection Limitations

为了给在节点上所有租户提供公平的使用体验,有如下情况的连接可能被关闭:

· 过度资源使用

· 长时间运行查询 (超过 5 mi分钟)

· BEGIN TRAN END TRAN内长时间运行的单个事务 – (超过 5 分钟)

· 空闲连接– (超过 30 分钟)

SSIS

可以在本地运行SSIS

无法在SQL Azure内运行SSIS

本地运行 SSIS ,并以ADO.NET provider连接至SQL Azure

参考:

· SQL Azure Portal

· SQL Azure Developer Center

· SQL Azure Team Blog

本文翻译自:http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=86f12b41-1eba-4567-9ac8-02eaa7d12034

分享到:
评论

相关推荐

    Microsoft JDBC Driver 3.0 for SQL Server and SQL Azure

    Microsoft JDBC Driver 3.0 for SQL Server and SQL Azure Microsoft JDBC Driver 3.0 for SQL Server and SQL Azure

    云数据库SQL Azure

    SQL Azure 支持SQL Server的大部分功能,这意味着现有的SQL Server应用程序可以轻松地迁移到云端,开发人员可以利用他们已有的SQL Server知识和技能,如T-SQL编程、Entity Framework、ADO.NET、ODBC等。应用程序通过...

    SQL Azure中文教程

    - **定义与功能**:SQL Azure 是 Microsoft 提供的一项云端数据库服务,基于 SQL Server 技术,旨在为企业和个人提供一种新的方式来存储和访问数据。这项服务使得开发者能够轻松地将其应用程序与云端数据集成起来,...

    SQL Azure DataSync

    通过SQL Azure DataSync,用户能够轻松地在SQL Azure数据库与本地SQL Server数据库之间进行数据同步。 #### 二、核心功能 1. **托管服务**:SQL Azure DataSync 是一项完全托管的服务,这意味着用户无需担心后端...

    微软SQL Azure中文教程

    - **目标群体**: 对于已经熟悉 SQL Server 的开发人员和 DBA 来说,通过结合他们现有的知识与 Azure 的新功能,可以快速上手 SQL Azure。 - **学习路径**: 本教程分为入门篇和进阶篇,涵盖了从基础知识到高级技巧的...

    JDBC 如何链接 SQL Azure 数据库(例子)1

    1. **导入必要的库**: 首先,你需要导入JDBC驱动和SQL Server JDBC驱动,例如`java.sql`包和`com.microsoft.sqlserver.jdbc`包。 2. **建立连接**: 使用`DriverManager.getConnection()`方法,传入连接字符串来创建...

    SqlServer连接工具

    Azure Data Studio带有丰富的扩展,可以连接到各种数据源,包括SQL Server、Azure SQL、PostgreSQL等。 除此之外,免费的第三方工具如SQL Server Compact Toolbox 和 SQL Server Express Management Studio 也是...

    适用于 SQL Server 2014、2012、2008R2的JDBC Drivers 4.1

    适用于Microsoft SQL Server 2014、SQL Server 2012、SQL Server 2008 R2、SQL Server 2008、SQL Server 2005 和 SQL Azure。对于适用于 SQL Server 的 Microsoft JDBC Driver 4.1,将从 SQL Server 2008 开始支持。...

    sql server2019安装包

    SQL Server 2019是Microsoft推出的一款关系型数据库管理系统,是SQL Server系列中的一个重要版本。它提供了强大的数据存储、处理和分析能力,广泛应用于企业级数据库应用开发和数据分析。在本安装包中,主要包含的是...

    云计算 数据库 平台 SQL Azure.pptx

    SQL Azure基于SQL Server的技术,旨在为企业提供可扩展、高可用且易于管理的数据库解决方案。 描述中提到了用户在面对传统IT硬件和基础设施管理时的痛点,如高昂的维护成本、复杂的部署和管理任务、移动办公的需求...

    SQL Azure的7个真相.pdf

    SQL Azure是微软提供的基于SQL Server的云数据库服务,它允许用户在云端存储和管理他们的数据库,无需维护物理硬件。以下是对SQL Azure的7个关键特性的详细解释: 1. SQL Azure基于SQL Server:使用SQL Azure与本地...

    sql server 帮助文档官方版

    SQL Server 提供了多种安装方式,包括使用安装工具、Azure Data CLI 和 pip 等。用户可以根据需要选择合适的安装方式。此外,SQL Server 还提供了多种部署方式,包括单节点部署、Kubernetes 群集部署等。 管理和...

    sqlserver4.2 jar包

    支持的 Java 版本: Java Runtime Environments (JRE) 的...• Microsoft SQL Server 2005 - 仅受适用于 SQL Server 的 Microsoft JDBC Driver 4.0 支持 • Azure SQL 数据库 • Azure SQL 数据仓库或并行数据仓库

    SQL Server 2017及2019各个版本之间的区别和SQL Server 不同时期发布的不同版本的区别

    在云准备方面,SQL Server 2019支持备份到Azure,灾难恢复到Azure,并且可以在Azure虚拟机上实现免费的异步复制。 SQL Server 2017同样具有许多改进,比如增加了对Linux和Docker容器的支持,使得SQL Server可以部署...

    kettle 连接sqlserver 驱动

    标题 "kettle 连接sqlserver 驱动" 涉及到的是在数据集成工具 Pentaho Data Integration(简称 Kettle 或 PDI)中,如何配置和使用 SQL Server 数据库的连接。Kettle 是一个强大的ETL(Extract, Transform, Load)...

    微软SQL Azure

    1. **SQL Azure Database:** 高可用性和强伸缩性的关系型云数据库,基于SQL Server技术,由全球数据中心提供服务和支持。 2. **SQL Azure Reporting:** 云报表服务,简化报表创建,支持云端或本地应用的报表需求。...

    sqlserver2019.rar

    在这个压缩包“sqlserver2019.rar”中,包含了两个重要的安装文件:SSMS-Setup-CHS.exe和SQL2019-SSEI-Dev.exe。 SSMS(SQL Server Management Studio)是用于管理和开发SQL Server的主要工具,SSMS-Setup-CHS.exe...

    sqlserver Manage Studio(V18.8) 数据库提示工具

    SSMS V18.8通常会支持多个SQL Server版本,包括较新的Azure SQL Database和Azure SQL Managed Instance,这使得用户可以在一个统一的环境中管理不同版本的SQL Server实例。 5. **源码软件**: SSMS虽然不是开源...

    将数据库迁移到SQLAzure实验手册.doc

    SQL Azure 是微软提供的基于云的数据库服务,它基于 SQL Server 技术,使得从本地 SQL Server 数据库向云端迁移变得相对简单。本实验手册旨在帮助用户熟悉如何将现有数据库及其数据迁移到 SQL Azure 平台。 ## 目标...

Global site tag (gtag.js) - Google Analytics