Microsoft SQL Server Multi-AZ 部署限制、備註和建議 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Microsoft SQL Server Multi-AZ 部署限制、備註和建議

以下是在 RDS 上使用適用於SQL伺服器資料庫執行個體的多可用區域部署時的一些限制:

  • 不支援跨區域的多可用區域。

  • 不支援在多可用區域部署中停止 RDS for SQL Server 資料庫執行個體。

  • 您無法設定次要資料庫執行個體來接受資料庫讀取活動。

  • 具有 Always On 可用群組 (AGs) 的多可用區域支援記憶體內最佳化。

  • 具有 Always On 可用性群組 (AGs) 的多可用區域不支援可用性群組接聽程式的 Kerberos 身分驗證。這是因為接聽程式沒有服務主體名稱 (SPN)。

  • 您無法重新命名位於SQL伺服器多可用區部署中的SQL伺服器資料庫執行個體上的資料庫。如果您需要在這類執行個體上重新命名資料庫,請先對資料庫執行個體關閉多可用區域,再重新命名資料庫。最後,對資料庫執行個體重新開啟多可用區域。

  • 您只能還原使用完整還原模型備份的多可用區域資料庫執行個體。

  • 多可用區域部署限制為 10,000 個SQL伺服器代理程式任務。

    如果您需要更高的限制,請聯絡 請求增加 AWS Support。開啟 AWS Support 中心頁面,如有必要請登入,然後選擇 Create case (建立案例)。選擇 Service limit increase (提高服務限制)。填妥並提交表格。

  • 您無法在SQL伺服器多可用區部署中的SQL伺服器資料庫執行個體上擁有離線資料庫。

以下是有關在 RDS 上使用適用於SQL伺服器資料庫執行個體的多可用區部署的一些備註:

  • Amazon RDS公開 Always On AGs可用性群組接聽程式端點 。端點在主控台中可見,操作會在端點欄位中以項目DescribeDBInstancesAPI的形式傳回。

  • Amazon RDS支援可用性群組多子網路容錯移轉

  • 若要在虛擬私有雲端 (VPC) 中使用 SQL Server Multi-AZ 搭配SQL伺服器資料庫執行個體,請先建立資料庫子網路群組,該群組至少在兩個不同的可用區域中具有子網路。然後將資料庫子網路群組指派給SQL伺服器資料庫執行個體的主要複本。

  • 當資料庫執行個體修改為異地同步備份部署時,其在修改期間的狀態為 modifying (修改中)。Amazon 會RDS建立待命,並備份主要資料庫執行個體。在程序完成之後,主要資料庫執行個體的狀態會變成 available (可用)

  • 異地同步備份部署會在相同節點上維護所有資料庫。如果主要主機上的資料庫容錯移轉,您的所有SQL伺服器資料庫都會以一個原子單位容錯移轉至待命主機。Amazon RDS佈建新的運作狀態良好的主機,並取代運作狀態不佳的主機。

  • 具有DBM或AGs支援單一待命複本的多可用區。

  • 使用者、登入和許可會自動複寫到次要主機。您不需要重新建立這些資料。使用者定義的伺服器角色只會在將 Always On AGs 用於多可用區域部署的資料庫執行個體中複寫。

  • 在多可用區部署中,RDS對於SQL伺服器 會建立SQL伺服器登入,以允許 Always On AGs或資料庫鏡像。RDS 會使用下列模式、、 db_<dbiResourceId>_node1_logindb_<dbiResourceId>_node2_login和 建立登入db_<dbiResourceId>_witness_login

  • RDS for SQL Server 會建立SQL伺服器登入,以允許存取僅供讀取複本。RDS 會使用下列模式 建立登入db_<readreplica_dbiResourceId>_node_login

  • 在多可用區部署中,SQL伺服器代理程式任務會在任務複寫功能開啟時,從主要主機複寫至次要主機。如需詳細資訊,請參閱開啟 SQL Server Agent 任務複寫

  • 由於同步資料複寫,相較於標準資料庫執行個體部署 (在單一可用區域中),您可能會發現延遲增加情形。

  • 容錯移轉時間會受到完成復原程序所需的時間影響。大型交易會增加此容錯移轉時間。

  • 在SQL伺服器多可用區部署中,使用容錯移轉重新啟動只會重新啟動主要資料庫執行個體。在容錯移轉之後,主要資料庫執行個體會成為新的次要資料庫執行個體。多可用區域執行個體的參數可能無法更新。若要在無容錯移轉的情況下重新啟動,主要和次要資料庫執行個體會在重新啟動後更新參數。若資料庫執行個體沒有回應,建議您重新開機,不要進行容錯移轉。

以下是在 RDS 上使用適用於 Microsoft SQL Server 資料庫執行個體的多可用區域部署的一些建議:

  • 針對生產階段或生產前階段所用的資料庫,建議您使用下列選項:

    • 針對高可用性的異地同步備份部署

    • 「佈建IOPS」,以取得快速、一致的效能

    • 「最佳化記憶體」而非「一般用途」

  • 您無法為次要執行個體選取可用區域 (AZ),因此,當您部署應用程式主機時,請將此納入考量。您的資料庫可能容錯移轉至其他 AZ,而且應用程式主機和資料庫可能不是在相同的 AZ 中。因此,我們建議您在指定 AWS 區域中所有 AZs之間平衡應用程式主機。

  • 為了獲得最佳效能,請勿在大型資料載入操作AGs期間啟用資料庫鏡像或 Always On。如果要盡快載入您的資料,請在將您的資料庫執行個體轉換為異地同步備份部署之前完成載入資料。

  • 存取SQL伺服器資料庫的應用程式應具有異常處理功能,可擷取連線錯誤。下列程式碼範例示範捕捉通訊錯誤的 try/catch 區塊。在這個範例中,如果連線成功,break 陳述式會結束 while 迴圈,但如果擲回例外狀況,則重試最多 10 次。

    int RetryMaxAttempts = 10; int RetryIntervalPeriodInSeconds = 1; int iRetryCount = 0; while (iRetryCount < RetryMaxAttempts) { using (SqlConnection connection = new SqlConnection(DatabaseConnString)) { using (SqlCommand command = connection.CreateCommand()) { command.CommandText = "INSERT INTO SOME_TABLE VALUES ('SomeValue');"; try { connection.Open(); command.ExecuteNonQuery(); break; } catch (Exception ex) { Logger(ex.Message); iRetryCount++; } finally { connection.Close(); } } } Thread.Sleep(RetryIntervalPeriodInSeconds * 1000); }
  • 使用多可用區域執行個體時,請勿使用 Set Partner Off 命令。例如,請勿執行以下操作。

    --Don't do this ALTER DATABASE db1 SET PARTNER off
  • 請勿將復原模式設為 simple。例如,請勿執行以下操作。

    --Don't do this ALTER DATABASE db1 SET RECOVERY simple
  • 在多可用區域資料庫執行個體上建立新登入時,請勿使用 DEFAULT_DATABASE 參數,因為這些設定無法套用至待命鏡像。例如,請勿執行以下操作。

    --Don't do this CREATE LOGIN [test_dba] WITH PASSWORD=foo, DEFAULT_DATABASE=[db2]

    也請勿執行以下操作。

    --Don't do this ALTER LOGIN [test_dba] SET DEFAULT_DATABASE=[db3]