你当前正在访问 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"