設定已由 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 受控執行個體設定特定伺服器組態設定。 本文描述如何進行設定,例如啟用「特定分散式查詢」或「備份壓縮預設值」等。

目前可以設定下列伺服器選項:

  • 選取分散式查詢
  • 預設追蹤已啟用
  • Database Mail XPs
  • 備份壓縮預設值
  • 平行處理原則的成本臨界值
  • 針對特定工作負載最佳化

注意

  • 目前,這些選項只能透過 YAML 檔案指定,不論是在 SQL 受控執行個體建立期間還是部署後。

  • 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 Agent

在 Azure Arc 啟用的 SQL 受控執行個體的預設部署期間,會停用 SQL Server 代理程式。您可以執行下列命令予以啟用:

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"