1、什么是Azure SQL
在Azure上有PaaS层的SQL 服务,叫做AzureSQL数据库,
AzureSQL是什么呢,简单讲就是,你需要使用数据库直接去申请,不关心后端怎么工作,不需要做备份,不需要做运维,关注自己的应用,当然如调优的动作还是要做的。就是一种以服务方式提供的关系型数据库。
Azure SQL 数据库是云中的关系数据库服务,它基于行业领先的 Microsoft SQL Server 引擎,能够处理任务关键型工作负荷。SQL 数据库在多个服务级别提供可预测的性能、支持在不停机的情况下进行缩放、内置业务连续性和数据保护 — 所有这些功能几乎都不需要管理。凭借这些功能,客户可将注意力集中在如何快速进行应用开发、加快推向市场,而无需将宝贵的时间和资源投入在管理虚拟机和基础结构上。SQL 数据库基于 SQL Server引擎,支持现有的 SQL Server 工具、库和 API。因此,无需学习新的技能,就能轻松开发新解决方案,迁移现有 SQL Server 解决方案,将现有 SQL Server 解决方案扩展到 Microsoft 云中。
也即是需要数据库申请即可用,不用去繁琐的安装数据库引擎,大大简化的运维工作。可以实现:
-
可扩展到数千个数据库
-
缩放自如可预测的性能
-
通过副本和运行时服务级别协议提供可用性保障
-
通过恢复和地域复制保护数据
-
类似可编程 DBA 的功能,实现高效开发运营
-
可自行管理,几乎无需人工维护
在云上我们也可以在虚拟机中安装SQL来提供数据库服务,也就是与传统的SQL毫无差异,可以完整的将本地环境迁移到虚拟机中的SQL 实例。
因此简单来说,Azure SQL与虚拟机中SQL Server区别如下:
- Azure SQL 数据库:云的本机 SQL 数据库,也称为平台即服务 (PaaS) 数据库或数据库即服务 (DBaaS),它已针对软件即服务 (SaaS) 应用开发进行优化。Azure SQL 数据库与大多数 SQL Server 功能兼容。
- Azure 虚拟机上的 SQL Server:在 Azure 上运行的云中 Windows Server 虚拟机 (VM) 上安装并托管的 SQL Server,也称为基础结构即服务 (IaaS)。 Azure 虚拟机上的 SQL Server 经过优化,适合用于迁移现有的 SQL Server 应用程序。可以使用 SQL Server 的所有版本。它完全与 SQL Server 兼容,可用于托管任意数量的数据库,以及执行跨数据库事务。它提供对 SQL Server 和 Winodws 的完全控制权。
下表总结了一些Azure SQL和SQL Server的区别:
| Azure SQL | SQL Server on VM |
功能 | 兼容SQL Server的大部分功能 | 完整功能 |
成本 | 低 应用程序总成本 = 大幅降低的管理成本 + 软件开发成本 + SQL 数据库服务成本 | 高 应用程序总成本 = 大幅降低的软件开发成本 + 管理成本 + SQL Server 与 Windows Server 许可成本 + Azure 存储成本 |
管理 | 几乎不需要进行管理 | 需要进行备份、运维、监控、更新、管理负载均衡、高可用等等工作 |
服务级别 | 提供99.99%的SLA | 虚拟机提供99.9%SLA,但是SQL Server的服务品质取决于客户自身运维管理的能力。 |
因此关于如何使用Azure SQL 建议如下:
对于以下情况,请选择 Azure SQL 数据库:
-
打算构建全新的基于云的应用程序,以便利用云服务提供的成本节省和性能优化。此方法提供全面管理云服务的优势,有助于加速产品面市,并提供长期的成本效益。
-
你想要让 Microsoft 在数据库上运行常见管理操作,因而数据库需要更高的可用性 SLA。
对于以下情况,请选择 Azure VM 上的 SQL Server:
-
想要将现有本地应用程序迁移或扩展到云,或如果想要构建大于 1 TB 的企业应用程序。此方法的优点是提供 100% SQL 兼容性、大型数据库的容量、SQL Server 和 Windows 的完整控制权以及本地的安全通道。此方法可以降低开发和修改现有应用程序的成本。
-
有现有的 IT 资源,最终可以拥有修补、备份和数据库高可用性。请注意,某些自动化功能可大幅简化这些操作。
2、创建一个Azure SQL
下面我们来创建一个Azure SQL,
在ARMPortal下点击 SQL数据库,点击添加,出现如下界面,
填写:
数据库名称
资源组
是否使用空白数据库:可以使用模板创建一个示例数据库
是否创建新服务器:承载SQL数据库的服务器资源
是否使用弹性数据库:弹性数据库目的是提供弹性池来使用,目前创建独立数据库,之后专门来写弹性数据库
定价层:选择的性能级别不一样,价格不一样。
点击创建,可以创建出数据库。如图
So easy建立了数据库。
3、关于Azure SQL 数据库逻辑服务器
在上面我们创建Azure SQL的时候,其中创建了一台数据库服务器
如下图:
有必要说明下这个服务器是什么。
这是AzureSQL 数据库逻辑服务器,这是Azure SQL的中心管理点,我们使用SSMS连接数据库实例进行管理的时候是连接的 逻辑服务器。如图
在我这台逻辑服务器上面有2个数据库。
在AzureSQL 数据库中,服务器是一个逻辑构造,它不同于在本地环境中可能很熟悉的 SQL Server 实例。表面上我们看到的是一个SQL 实例,事实上区别主要是权限和功能的区别,在Azure上的逻辑服务器不会公开任何实例级的访问权限和功能
AzureSQL 数据库中的每一个数据库都与逻辑服务器相关联,数据库可以是:
•单一数据库,具有其自己的资源集 (DTU)
•属于共享一组资源的数据库池 (eDTU)
•属于向外扩展的分片数据库集,可以是单一数据库或入池数据库
•属于参与多租户 SaaS 设计模式的一组数据库,其数据库可以是单一数据库和/或入池数据库
下表有对SQL Server数据库与Azure SQL的功能比较。此比较限制于目前的azure SQL V12.版本,Azure SQL会不断更新,因此功能也会加强。所以目前的比较不适用于未来,仅限于目前阶段。(更新于2017年1月20日)
功能 | SQL Server | Azure SQL 数据库 |
活动异地复制 | 不支持 - 请参阅 AlwaysOn 可用性组 | |
始终加密 | ||
AlwaysOn 可用性组 | 不支持 - 请参阅活动异地复制 | |
附加数据库 | 不支持 | |
应用程序角色 | ||
自动缩放 | 不支持 | |
Azure Active Directory | 不支持 | |
审核 | ||
BACPAC 文件(导出) | ||
BACPAC 文件(导入) | ||
备份和还原语句 | 不支持 | |
内置函数 | ||
更改数据捕获 | 不支持 | |
更改跟踪 | ||
排序规则语句 | ||
列存储索引 | ||
公共语言运行时 (CLR) | 不支持 | |
包含的数据库 | 内置 | |
包含用户 | ||
控制流语言关键字 | ||
跨数据库查询 | ||
游标 | ||
数据压缩 | ||
数据库备份 | ||
数据库邮件 | 不支持 | |
数据库镜像 | 不支持 | |
数据库配置选项 | ||
Data Quality Services (DQS) | 不支持 | |
数据库快照 | 不支持 | |
数据类型 | ||
DBCC 语句 | ||
DDL 语句 | ||
DDL 触发器 | ||
分布式事务 | 仅限受限制的 SQL 数据库内方案 | |
DML 语句 | ||
DML 触发器 | ||
DMV | ||
弹性池 | 不支持 | |
弹性作业 | 不支持 - 请参阅 SQL Server 代理 | 不支持 |
弹性查询 | 不支持 - 请参阅跨数据库查询 | |
事件通知 | ||
表达式 | ||
扩展的事件 | ||
扩展的存储过程 | 不支持 | |
文件组 | ||
文件流 | 不支持 | |
全文搜索 | ||
函数 | ||
内存中优化 | ||
作业 | 不支持 | |
JSON 数据支持 | ||
语言元素 | ||
链接的服务器 | 不支持 - 请参阅弹性查询 | |
日志传送 | 不支持 - 请参阅活动异地复制 | |
管理命令 | ||
Master Data Services (MDS) | 不支持 | |
批量导入时的最小日志记录 | 不支持 | |
修改系统数据 | 不支持 | |
联机索引操作 | ||
运算符 | ||
数据库时间点还原 | ||
Polybase | [不支持] | |
基于策略的管理 | 不支持 | |
谓词 | ||
资源调控器 | ||
从备份还原数据库 | ||
行级别安全性 | ||
安全语句 | ||
语义搜索 | 不支持 | |
序列号 | ||
服务中转站 | 不支持 | |
服务器配置选项 | 不支持 - 请参阅数据库配置选项 | |
Set 语句 | ||
空间 | ||
SQL Server 代理 | 不支持 | |
SQL Server Analysis Services (SSAS) | 不支持 - 请参阅 Azure Analysis Services | |
SQL Server 集成服务 (SSIS) | 不支持 - 请参阅 Azure 数据工厂 | |
SQL Server PowerShell | ||
SQL Server 事件探查器 | 不支持 - 请参阅扩展事件 | |
SQL Server 复制 | ||
SQL Server Reporting Services (SSRS) | 不支持 | |
存储过程 | ||
系统存储函数 | ||
系统存储过程 | ||
系统表 | ||
系统视图 | ||
表分区 | ||
临时表 | ||
临时表 | ||
事务语句 | ||
变量 | ||
透明数据加密 (TDE) | ||
Windows Server 故障转移群集 | 不支持 - 请参阅活动异地复制 | |
XML 索引 | ||
XML 语句 |
总结来说:
-
Azure SQL是Pass 层数据库,与SQL Server一脉相承,但是不是完整的SQLServer实例
-
使用Azure SQL 可以减少大量的运维工作。为使用付费
-
Azure SQL与本地SQL使用基本相同,有一定兼容性问题,有工具进行相应测试。
下一篇来详细开启Azue SQL使用篇。
-