由图2我们可以看出,SQL Azure是一个四层架构,基础设施层(Infrastructure Layer)、平台层(Platform Layer)、服务层(Service Layer)、客户端层(Client Layer),基础设施层、平台层和服务层构成了微软数据中心。下面我们分别予以介绍。
基础设施层
基础设置提供了硬件支持和操作系统,以及对服务层所运行的服务管理。同时也是核心数据层,可以为一个数据中心提供多个共享服务。
平台层
平台层由三部分组成:SQL Server实例、SQL Server Fabric、管理服务。SQL Server实例就是一个SQL Server数据库引擎。每个SQL Server数据库引擎实例各有一套不为其他实例共享的系统及用户数据库。由于实例各有一套不为其他实例共享的系统及用户数据库,所以各实例的运行是独立的,一个实例的运行不会受其他实例运行的影响,也不会影响其他实例的运行。在一台计算机上安装多个SQL Server实例,就相当于把这台计算机模拟成多个数据库服务器,而且这些模拟的数据库服务器是独立且同时运行的。
SQL Server Fabric是一个底层框架,是一个分布式的框架,集成了网络、服务器和存储,因此这个框架能够使得SQL Azure自动进行负载均衡、数据容灾、备份恢复。
管理服务能够对运行在其上的服务进行健康检查、升级或者打补丁。并为SQL Server Fabric提供软硬件支持。
服务层
服务层连接了客户端层和平台层,包含三大功能:数据提供(Provisioning)、账单和计量(Billing and 、Metering)、连接路由(Connection Routing),期中Provisioning 列举了微软云计算平台账户。服务层同时暴露了带有SSL的列表数据流(Tabular Data Stream ,TDS)给客户端层。
客户端层
客户端层是唯一运行在微软数据中心之外的一层,不是使用SQL Azure任何特殊的组件,而是使用了当前客户端上安装的SQL Server的功能,如ADO.Net、WCF服务、ODBC、SQL Server管理工具。客户端层使用API初始化一个TDS连接,通过1433端口连接到SQL Azure上。客户端层运行我们使用数据的工具——SQL Server来构建云应用。
SQL Azure的主要功能
SQL Azure目前的不完全支持SQL Server上的所有功能,如分析服务、镜像、报表服务以及能够选择不同的服务提供者提供不同的服务。这是因为当前的网络状况和云计算平台部署需求所决定的,在将来肯定会提供更多功能,如Dallas。我们SQL Azure的主要功能分成三部分:数据库功能、应用程序功能和管理功能。
数据库功能
支持的数据库功能如下:
(1)表的增删改查(CRUD),试图、索引
(2)TSQL query JOIN statements
(3)触发器
(4)TSQL functions
(5)Application stored procedures (only TSQL)
(6)Table constraints
(7)基于Session的临时表
(8)Table variables
(9)Local transactions
(10)安全角色
(11)SUSER_SNAME函数,返回当前安全登录名
(12)MARS,多活动结果集
不支持的数据库功能如下:
(1)分布式查询
(2)分布式Transactions
(3)任何 TSQL query and views改变或者恢复物理资源信息
(4)自定义数据类型
应用程序功能
应用程序功能不支持的功能有:
(1)Service Broker
(2)HTTP access
(3)CLR stored procedures
管理功能
SQL Azure支持数据应用层程序(Data-tier Applications),数据库应用层程序是一个包含了几乎某一应用所需要的数据库及实例对象的实体,如表、视图、存储过程、登录等等。有了实体以后,原本独立的登陆、部署、维护就可以通过开发人员进行开发来整合成为一个统一的整体,这样的一个整体又叫应用程序包,这样DBA 就可以把原本独立的对象视为一个数据库应用层的程序来进行部署、监控和管理。目前支持的数据层应用程序有删除、部署、提取和注册数据层应用程序包。不仅如此,还支持的管理功能有:
(1)计划和统计
(2)索引开启
(3)查询开启
SQL Azure不支持一下管理功能:
(1)数据库复制
(2)SQL profiler
(3)SQL trace flag
(4)命令行备份
(5)配置和使用存储过程sp_configure
有关SQL Azure更多不被支持的功能,对SQL Server 2008(R2)和SQL Server 2005有所不同,可以参考MSDN:
http://msdn.microsoft.com/en-us/library/ff394115.aspx