你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
配置 Azure Arc 启用的 SQL 托管实例
本文介绍了如何配置 Azure Arc 启用的 SQL 托管实例。
配置核心和内存等资源
使用 CLI 进行配置
要使用 CLI 更新实例的配置。 运行以下命令,以查看配置选项。
az sql mi-arc update --help
要更新实例的可用内存和核心,请使用:
az sql mi-arc update --cores-limit 4 --cores-request 2 --memory-limit 4Gi --memory-request 2Gi -n <NAME_OF_SQL_MI> --k8s-namespace <namespace> --use-k8s
下面的示例设置了 CPU 内核和内存请求及限制。
az sql mi-arc update --cores-limit 4 --cores-request 2 --memory-limit 4Gi --memory-request 2Gi -n sqlinstance1 --k8s-namespace arc --use-k8s
要查看对实例所做的更改,可以使用以下命令查看配置 yaml 文件:
az sql mi-arc show -n <NAME_OF_SQL_MI> --k8s-namespace <namespace> --use-k8s
配置可读次要副本
在具有 2 个或更多副本的BusinessCritical
服务层级中部署Azure Arc 启用的 SQL 托管实例时,默认情况下,一个辅助副本会自动配置为readableSecondary
。 可以更改此设置,以添加或删除可读的辅助副本,如下所示:
az sql mi-arc update --name <sqlmi name> --readable-secondaries <value> --k8s-namespace <namespace> --use-k8s
例如,下面的示例会将可读辅助副本重置为 0。
az sql mi-arc update --name sqlmi1 --readable-secondaries 0 --k8s-namespace mynamespace --use-k8s
配置副本
还可以纵向扩展或纵向缩减 BusinessCritical
服务层级中部署的副本数,如下所示:
az sql mi-arc update --name <sqlmi name> --replicas <value> --k8s-namespace <namespace> --use-k8s
例如:
以下示例会将副本数从 3 纵向缩减到 2。
az sql mi-arc update --name sqlmi1 --replicas 2 --k8s-namespace mynamespace --use-k8s
注意
如果从 2 个副本纵向缩减为 1 个副本,可能会遇到与预配置的--readable--secondaries
设置冲突。 可以在纵向缩减副本之前先编辑 --readable--secondaries
。
配置服务器选项
可以在创建期间或创建后为 Azure Arc 启用的 SQL 托管实例配置某些服务器配置设置。 本文介绍了如何配置设置,例如启用“即席分布式查询”或“备份压缩默认值”等。
目前可以配置以下服务器选项:
- 即席分布式查询
- 默认跟踪已启用
- 数据库邮件 XP
- 备份压缩默认值
- 并行的开销阈值
- 针对即席工作负荷进行优化
注意
目前,只能在 SQL 托管实例创建期间或部署后通过 YAML 文件指定这些选项。
SQL 托管实例映像标记必须至少为 v1.19.x 或更高版本。
在部署期间将以下内容添加到 YAML 文件,以配置其中任一选项。
spec:
serverConfigurations:
- name: "Ad Hoc Distributed Queries"
value: 1
- name: "Default Trace Enabled"
value: 0
- name: "Database Mail XPs"
value: 1
- name: "backup compression default"
value: 1
- name: "cost threshold for parallelism"
value: 50
- name: "optimize for ad hoc workloads"
value: 1
如果已有 Azure Arc 启用的现有 SQL 托管实例,可以运行kubectl edit sqlmi <sqlminame> -n <namespace>
并将上述选项添加到规范中。
YAML 文件示例:
apiVersion: sql.arcdata.microsoft.com/v13
kind: SqlManagedInstance
metadata:
name: sql1
annotations:
exampleannotation1: exampleannotationvalue1
exampleannotation2: exampleannotationvalue2
labels:
examplelabel1: examplelabelvalue1
examplelabel2: examplelabelvalue2
spec:
dev: true #options: [true, false]
licenseType: LicenseIncluded #options: [LicenseIncluded, BasePrice]. BasePrice is used for Azure Hybrid Benefits.
tier: GeneralPurpose #options: [GeneralPurpose, BusinessCritical]
serverConfigurations:
- name: "Ad Hoc Distributed Queries"
value: 1
- name: "Default Trace Enabled"
value: 0
- name: "Database Mail XPs"
value: 1
- name: "backup compression default"
value: 1
- name: "cost threshold for parallelism"
value: 50
- name: "optimize for ad hoc workloads"
value: 1
security:
adminLoginSecret: sql1-login-secret
scheduling:
default:
resources:
limits:
cpu: "2"
memory: 4Gi
requests:
cpu: "1"
memory: 2Gi
services:
primary:
type: LoadBalancer
storage:
backups:
volumes:
- className: azurefile # Backup volumes require a ReadWriteMany (RWX) capable storage class
size: 5Gi
data:
volumes:
- className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
size: 5Gi
datalogs:
volumes:
- className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
size: 5Gi
logs:
volumes:
- className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
size: 5Gi
启用 SQL Server 代理
SQL Server 代理在 Azure Arc 启用的 SQL 托管实例的默认部署期间处于禁用状态。可通过运行以下命令将其启用:
az sql mi-arc update -n <NAME_OF_SQL_MI> --k8s-namespace <namespace> --use-k8s --agent-enabled true
示例:
az sql mi-arc update -n sqlinstance1 --k8s-namespace arc --use-k8s --agent-enabled true
启用跟踪标志
可按如下方式启用跟踪标志:
az sql mi-arc update -n <NAME_OF_SQL_MI> --k8s-namespace <namespace> --use-k8s --trace-flags "3614,1234"