配置 Azure SQL 数据库和 Azure SQL 托管实例
你已验证部署是否成功,并且知道有哪些资源可用。 建议立即配置 SQL 托管实例、SQL 数据库或托管实例中的数据库。 这些数据库称为托管数据库。
配置 Azure SQL 托管实例
Azure SQL 托管实例实质上是托管 SQL Server 实例。 SQL Server 中可用的许多配置在此处适用。 例如,可以使用 sp_configure
和某些全局跟踪标志进行配置。 还可以使用有关 tempdb
、model
和 master
的选项。 你可以控制你的网络连接和配置。
数据库配置
对于 Azure SQL 托管实例中的托管数据库和 Azure SQL 数据库,可通过 ALTER DATABASE
命令进行选择。 你可以通过 SET
选项选择所需的 dbcompat
值。 该值有助于迁移。 还可使用 ALTER DATABASE
命令来更改版本或服务层。
在 Azure SQL 数据库中,你没有访问下面的文件配置的权限。 在 Azure SQL 托管实例中,可以执行文件维护。 与 SQL 托管实例类似,你可以选择网络连接、网络配置和空间管理。
特别是在 Azure SQL 数据库中,启用陈旧页检测并始终使用默认服务器排序规则 SQL_Latin1_General_CP1_CI_AS
。 此外,以下选项默认设置为“开启”:
SNAPSHOT_ISOLATION_STATE
READ_COMMITTED_SNAPSHOT
FULL RECOVERY
CHECKSUM
QUERY_STORE
TDE
ACCELERATED_DATABASE_RECOVERY
作业管理
SQL Server 代理为 SQL Server 用户提供配置和计划系统。 可通过以下选项在 Azure SQL 中实现等效功能:
SQL 托管实例中的 SQL 代理
SQL 代理是完全受 Azure SQL 托管实例支持的服务。 SQL 代理作业仅支持 T-SQL 和 SQL Server Integration Services 作业步骤, 不支持命令外壳步骤。 虽然不支持警报,但通过数据库邮件支持电子邮件通知。
用于 SQL 数据库的弹性作业
Azure SQL 数据库不支持 SQL Server 代理。 但可使用 Azure 中的弹性作业代理服务创建和计划作业。 作业是可针对多个数据库运行(包括并行执行)的 T-SQL 脚本。
Azure 自动化
可以使用 Azure 自动化通过称为 runbook 的概念来协调进程。 Runbook 可由 PowerShell 或 Python 等代码组成,并可定向到任何 Azure 资源。
受限制的配置选项
Azure SQL 托管实例和 Azure SQL 数据库服务限制以下配置。 这些限制可能会影响运行某些任务的方式。
- 无法停止或重启服务器。
- 不能使用以下对象:
- 即时文件初始化。
- 内存中的锁定页面。
FILESTREAM
和可用性组。- 服务器排序规则。 在 SQL 托管实例中,可以在部署期间选择服务器排序规则,但不能对其进行更改。
- 启动参数。
- 错误报告和客户反馈。
ALTER SERVER CONFIGURATION
。ERRORLOG
配置。
- 强制使用“混合模式”安全性。
- 通过 SQL 审核完成登录审核。
- 服务器代理帐户不适用。
Azure SQL 托管实例和 SQL 数据库是平台即服务 (PaaS) 产品/服务。 限制这些选项不会阻止你充分使用 SQL Server 托管服务。
存储管理
对于 Azure SQL 托管实例,实例存在可能的最大存储大小,具体取决于所选的 SLO。 你为实例选择的最大存储不能超过这个可能的最大大小。 如果达到最大存储,则可能会收到消息 1105(对于托管数据库)或消息 1133(对于实例)。
与 SQL Server 一样,任何新数据库的大小都基于模型数据库的大小。 模型数据库的数据文件大小为 100 MB,而日志文件的大小为 8 MB。 与 SQL Server 一样,模型的大小也是可配置的。 可以更改文件的大小和数量,但不能控制其物理位置。 Microsoft 根据你的部署选择保证实现出色的 I/O 性能。 此外,由于常规用途服务层中使用了远程存储,数据文件和日志文件的大小可能会影响性能。
对于 Azure SQL 数据库,数据库文件存在可能的最大大小,具体取决于所选的 SLO。 你选择的数据最大大小不能超过这个可能的最大大小。 数据库文件的最大大小(由 sys.database_files.max_size
列定义)可以增大到数据最大大小。
为了理解数据最大大小与数据库文件最大大小的概念,请考虑这样一个示例:部署 1 TB(数据最大大小)常规用途数据库。 执行此部署时,数据库只需大约 500 GB,而不需要 1 TB。 随着数据库增大并接近数据最大大小,数据库文件的最大大小也增大到 1 TB 级别。
事务日志不包含在数据大小内,但属于你需要为存储付费的范围。 由于自动备份而定期截断事务日志,因为默认情况下加速数据库恢复处于打开状态。 日志的最大大小始终为数据最大大小的 30%。 例如,如果数据最大大小为 1 TB,则事务日志的最大大小为 0.3 TB,数据最大大小和日志大小的总和为 1.3 TB。
Azure SQL 数据库“超大规模”层级与其他服务层级不同。 它创建的数据库大小最初为 40 GB,并自动增大到 100 TB 的上限。 事务日志的大小始终限制为 1 TB。
连接体系结构和策略
在配置 Azure SQL 数据库逻辑服务器或配置 Azure SQL 托管实例的过程中,会涉及确定连接到数据库的路线。
对于 Azure SQL 托管实例,可在部署期间选择连接类型或策略。 在 Azure SQL 数据库中,可在部署后选择连接类型。
可保留默认设置“针对 Azure 外部连接使用 Proxy,针对内部连接使用 Redirect”,也可配置其他设置。
在最高级别的 Proxy 模式下,所有连接都通过网关进行代理。 在重定向模式下,建立连接并使用网关后,连接可以直接连接到数据库或托管实例。 网关为上图中的 redirect-find-db
。
直接连接(重定向)可降低延迟并提高吞吐量。 它还需要打开更多端口,以允许入站和出站通信范围介于 11000 到 11999 之间。
下一个练习介绍一些用于使用 Azure CLI 配置 Azure SQL 的命令。 然后,可深入了解评估代理和重定向连接策略。