2012年上半年,随着微软很多重要的产品相继解开神秘面纱,例如System Center 2012、Visual Studio 2012等均已正式发布,而Windows 8、Windows Server 2012估计不久也将发布,微软铺天盖地的云攻势陆续地展开了。
在微软的云计算战略中有很多重要的云计算产品出现,而被称为云中的数据库SQL Azure就是其中一个。SQL Azure常常被作是云关系型数据库,它可以在任何时间提供客户数据应用。
解析SQL Azure与SQL Server有何异同
不过,SQL Azure不是全新的产品,它是基于SQL Server技术构建的,但是又不是简单地移至SQL Server。那么,相对于SQL Server,SQL Azure做了什么样的修改,它与SQL Server存在哪些方面的异同呢。这篇文章,编者将通过一些解析解开这个谜底。
与本地的SQL Server实例类似,SQL Azure为基于Transact-SQL的数据库访问提供了一个TDS接口。这使得应用程序像使用SQL Server 一样来使用SQL Azure数据库。SQL Azure是一个云端的服务,在管理上跟本地的SQL Server实例有一些小的差异。
而与本地SQL Server实例不同的是,SQL Azure将逻辑上的管理与物理上的管理分离了出来。虽然可以继续管理数据库、登录、用户和角色,但是微软会管理和配置物理硬件,例如硬盘、服务器和存储。这样,SQL Azure不仅能提供一个大规模的、多租户的数据库服务,还可以提供企业级的可用性、可扩展性、安全性和自我修复能力。
由于微软负责所有的物理管理,所以SQL Azure和本地的SQL Server实例会在管理、服务提供、Transact-SQL支持、编程模式等方面略有不同。
首先,在逻辑管理和物理管理方面。
虽然SQL Azure在管理数据库的物理资源上发挥了积极作用,但是数据库管理员仍然在管理基于SQL Azure的应用程序方面有着举足轻重的作用。使用SQL Azure,数据库管理员仍然需要创建和管理数据库模式(Schema)、统计、调优索引、优化查询以及管理安全性(登录、用户和角色等)等。更多安全管理信息,请参阅MSDN网站上的《在SQL Azure中管理数据库与登录(Managing Logins and Users in SQL Azure)》。
Windows Server 2012(图片来源于网络)
SQL Azure数据库管理与SQL Server数据库在物理管理方面最大的不同是,SQL Azure不仅能够自动复制所有数据来提供高可用性,还可以管理负载均衡。当任何主数据库服务器停止工作的时候,另外一台正常运行的备份数据库会自动接替主服务器,这就是故障转移的功能。而且,这个过程对用户来说是透明的。
为了提供这一层面的物理管理,用户不能控制SQL Azure的物理资源。举例来说,不能指定数据库或索引驻留的物理硬盘或文件组。因为不能访问计算机的文件系统并且所有的数据都会被自动复制,所以SQL Server的备份和恢复命令在SQL Azure上无效。SQL Azure服务会备份所有的数据库,不过一般用户还无法这样做。