

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

# 啟用 MSDTC
<a name="Appendix.SQLServer.Options.MSDTC.Enabling"></a>

請使用下列程序為您的資料庫執行個體啟用 MSDTC：

1. 建立新的選項群組或選擇現有的選項群組。

1. 將 `MSDTC` 選項新增至選項群組。

1. 建立新參數群組，或選擇現有參數群組。

1. 修改參數群組，將 `in-doubt xact resolution` 參數設定為 1 或 2。

1. 將選項群組和參數群組與資料庫執行個體建立關聯。

## 建立 MSDTC 的選項群組
<a name="Appendix.SQLServer.Options.MSDTC.OptionGroup"></a>

使用AWS 管理主控台或 AWS CLI 來建立對應至 SQL Server 引擎和資料庫執行個體版本的選項群組。

**注意**  
如果現有的選項群組適用於正確的 SQL Server 引擎和版本，則也可以使用。

### 主控台
<a name="OptionGroup.MSDTC.Console"></a>

下列程序會建立 SQL Server Standard Edition 2016 的選項群組。

**建立選項群組**

1. 登入 AWS 管理主控台，開啟位於 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/) 的 Amazon RDS 主控台。

1. 在導覽窗格中，選擇 **Option groups** (選項群組)。

1. 選擇**建立群組**。

1. 在 **Create option group (建立選項群組)** 窗格中，執行下列動作：

   1. 在 **Name** (名稱) 中，輸入您 AWS 帳戶中的唯一選項群組名稱，例如 **msdtc-se-2016**。名稱僅可包含字母、數字與連字號。

   1. 對於 **Description (描述)**，請輸入選項群組的簡短描述，例如 **MSDTC option group for SQL Server SE 2016**。用於顯示用途的說明。

   1. 對於 **Engine (引擎)**，請選擇 **sqlserver-se**。

   1. 對於 **Major engine version (主要引擎版本)**，請選擇 **13.00**。

1. 選擇**建立**。

### CLI
<a name="OptionGroup.MSDTC.CLI"></a>

下列 範例會為 SQL Server Standard Edition 2016 建立選項群組。

**建立選項群組**
+ 請使用下列其中一個命令。  
**Example**  

  對於 Linux、macOS 或 Unix：

  ```
  aws rds create-option-group \
      --option-group-name msdtc-se-2016 \
      --engine-name sqlserver-se \
      --major-engine-version 13.00 \
      --option-group-description "MSDTC option group for SQL Server SE 2016"
  ```

  在 Windows 中：

  ```
  aws rds create-option-group ^
      --option-group-name msdtc-se-2016 ^
      --engine-name sqlserver-se ^
      --major-engine-version 13.00 ^
      --option-group-description "MSDTC option group for SQL Server SE 2016"
  ```

## 將 MSDTC 選項新增至選項群組
<a name="Appendix.SQLServer.Options.MSDTC.Add"></a>

接下來，使用 AWS 管理主控台或 AWS CLI 將 `MSDTC` 選項加入至選項群組。

下列選項設定是必要的：
+ **Port (連接埠)** – 您用來存取 MSDTC 的連接埠。允許的數值是 1150–49151，但不包括 1234、1434、3260、3343、3389 和 47001。預設值為 5000。

  確定您要使用的連接埠已在防火牆規則中啟用。此外，請確定在與資料庫執行個體相關聯的安全群組的傳入和傳出規則中已啟用此連接埠。如需更多詳細資訊，請參閱 [無法連線至 Amazon RDS 資料庫執行個體](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting)。
+ **Security groups** (安全群組) – RDS 資料庫執行個體的 VPC 或安全群組成員資格。
+ **Authentication (身分驗證類型)** – 主機之間的身分驗證模式。支援下列身分驗證類型：
  + 相互驗證 – RDS 執行個體使用整合式驗證彼此相互驗證。如果選取此選項，與此選項群組相關聯的所有執行個體都必須加入網域。
  + 無 – 主機之間不執行身分驗證。我們不建議您生產環境中使用此模式。
+ **交易日誌 大小** – MSDTC 交易日誌的大小。允許的數值是 4–1024 MB。預設大小為 4 MB。

下列選項設定是選擇性的：
+ **Enable inbound connections (啟用傳入連線)** – 是否允許對與此選項群組相關聯的執行個體進行傳入 MSDTC 連線。
+ **Enable outbound connections (啟用輸出連線)** – 是否允許從此選項群組相關聯的執行個體進行傳出 MSDTC 連線。
+ **Enable XA (啟用 XA)** – 是否允許 XA 交易。如需 XA 通訊協定的詳細資訊，請參閱 [XA 規格](https://publications.opengroup.org/c193)。
+ **Enable SNA LU (啟用 SNA LU)** – 是否允許 SNA LU 通訊協定用於分散式交易。如需 SNA LU 通訊協定支援的詳細資訊，請參閱 Microsoft 文件中的[管理 IBM CICS LU 6.2 交易](https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms685136(v=vs.85))。

### 主控台
<a name="Options.MSDTC.Add.Console"></a>

**新增 MSDTC 選項**

1. 登入 AWS 管理主控台，開啟位於 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/) 的 Amazon RDS 主控台。

1. 在導覽窗格中，選擇 **Option groups** (選項群組)。

1. 選擇您剛建立的選項群組。

1. 選擇 **Add option (新增選項)**。

1. 在 **Option details (選項詳細資訊)** 下，選擇 **MSDTC** 做為 **Option name (選項名稱)**。

1. 在 **Options settings (選項設定)** 下：

   1. 針對 **Port (連接埠)**，輸入存取 MSDTC 的連接埠號碼。預設值為 **5000**。

   1. 針對 **Security groups (安全群組)**，選擇要與選項產生關聯的 VPC 安全群組。

   1. 在 **Authentication type (身分驗證類型)** 中，選擇 **Mutual (相互)** 或 **None (無)**。

   1. 針對 **Transaction log size (交易日誌大小)**，輸入 4–1024 之間的值。預設值為 **4**。

1. 在 **Additional configuration (其他設定)** 下，請執行下列動作：

   1. 針對 **Connections (連線)**，視需要選擇 **Enable inbound connections (啟用傳入連線)** 和 **Enable outbound connections (啟用傳出連線)**。

   1. 針對 **Allowed protocols (允許的通訊協定)**，視需要選擇 **Enable XA (啟用 XA)** 和 **Enable SNA LU (啟用 SNA LU)**。

1. 在 **Scheduling (排程)** 下，選擇要立即新增選項或是在下一個維護時段新增選項。

1. 選擇 **Add option (新增選項)**。

   若要新增此選項，不需要重新開機。

### CLI
<a name="Options.MSDTC.Add.CLI"></a>

**新增 MSDTC 選項**

1. 使用下列必要的參數建立 JSON 檔案，例如 `msdtc-option.json`。

   ```
   {
   "OptionGroupName":"msdtc-se-2016",
   "OptionsToInclude": [
   	{
   	"OptionName":"MSDTC",
   	"Port":5000,
   	"VpcSecurityGroupMemberships":["sg-0abcdef123"],
   	"OptionSettings":[{"Name":"AUTHENTICATION","Value":"MUTUAL"},{"Name":"TRANSACTION_LOG_SIZE","Value":"4"}]
   	}],
   "ApplyImmediately": true
   }
   ```

1. 將 `MSDTC` 選項新增至選項群組。  
**Example**  

   對於 Linux、macOS 或 Unix：

   ```
   aws rds add-option-to-option-group \
       --cli-input-json file://msdtc-option.json \
       --apply-immediately
   ```

   在 Windows 中：

   ```
   aws rds add-option-to-option-group ^
       --cli-input-json file://msdtc-option.json ^
       --apply-immediately
   ```

   不需要重新開機。

## 建立 MSDTC 的參數群組
<a name="MSDTC.CreateParamGroup"></a>

為對應到 SQL Server 版本和資料庫執行個體版本的 `in-doubt xact resolution` 參數建立或修改參數群組。

### 主控台
<a name="CreateParamGroup.MSDTC.Console"></a>

下列範例會建立 SQL Server Standard Edition 2016 的參數群組。

**建立參數群組**

1. 登入 AWS 管理主控台，開啟位於 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/) 的 Amazon RDS 主控台。

1. 在導覽窗格中，選擇 **Parameter groups** (參數群組)。

1. 選擇 **Create parameter group (建立參數群組)**。

1. 在 **Create parameter group (建立參數群組)** 窗格中執行下列動作：

   1. 對於 **Parameter group family (參數群組家族)**，請選擇 **sqlserver-se-13.0**。

   1. 對於 **Group name (群組名稱)**，輸入參數群組的識別碼，例如 **msdtc-sqlserver-se-13**。

   1. 對於 **Description (說明)**，輸入 **in-doubt xact resolution**。

1. 選擇**建立**。

### CLI
<a name="CreateParamGroup.MSDTC.CLI"></a>

下列範例會建立 SQL Server Standard Edition 2016 的參數群組。

**建立參數群組**
+ 請使用下列其中一個命令。  
**Example**  

  對於 Linux、macOS 或 Unix：

  ```
  aws rds create-db-parameter-group \
      --db-parameter-group-name msdtc-sqlserver-se-13 \
      --db-parameter-group-family "sqlserver-se-13.0" \
      --description "in-doubt xact resolution"
  ```

  在 Windows 中：

  ```
  aws rds create-db-parameter-group ^
      --db-parameter-group-name msdtc-sqlserver-se-13 ^
      --db-parameter-group-family "sqlserver-se-13.0" ^
      --description "in-doubt xact resolution"
  ```

## 修改 MSDTC 的參數
<a name="ModifyParam.MSDTC"></a>

修改參數群組中對應至 SQL Server 版本和資料庫執行個體版本的 `in-doubt xact resolution` 參數。

對於 MSDTC，請將 `in-doubt xact resolution` 參數設定為下列其中一項：
+ `1` – `Presume commit`。任何有疑問的 MSDTC 交易都假設已經遞交。
+ `2` – `Presume abort`。任何有疑問的 MSDTC 交易都假設已停止。

如需詳細資訊，請參閱 Microsoft 文件中的[有疑問的 xact 解析伺服器組態選項](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/in-doubt-xact-resolution-server-configuration-option)。

### 主控台
<a name="ModifyParam.MSDTC.Console"></a>

下列範例會修改您為 SQL Server Standard Edition 2016 所建立的參數群組。

**修改參數群組**

1. 登入 AWS 管理主控台，開啟位於 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/) 的 Amazon RDS 主控台。

1. 在導覽窗格中，選擇 **Parameter groups** (參數群組)。

1. 選擇參數群組，例如 **msdtc-sqlserver-se-13**。

1. 在 **Parameters** (參數) 下，篩選 **xact** 的參數清單。

1. 選擇 **in-doubt xact resolution (有疑問的 xact 解析)**。

1. 選擇 **Edit parameters** (編輯參數)。

1. 輸入 **1** 或 **2**。

1. 選擇**儲存變更**。

### CLI
<a name="ModifyParam.MSDTC.CLI"></a>

下列範例會修改您為 SQL Server Standard Edition 2016 所建立的參數群組。

**修改參數群組**
+ 請使用下列其中一個命令。  
**Example**  

  對於 Linux、macOS 或 Unix：

  ```
  aws rds modify-db-parameter-group \
      --db-parameter-group-name msdtc-sqlserver-se-13 \
      --parameters "ParameterName='in-doubt xact resolution',ParameterValue=1,ApplyMethod=immediate"
  ```

  在 Windows 中：

  ```
  aws rds modify-db-parameter-group ^
      --db-parameter-group-name msdtc-sqlserver-se-13 ^
      --parameters "ParameterName='in-doubt xact resolution',ParameterValue=1,ApplyMethod=immediate"
  ```

## 將選項群組和參數群組與資料庫執行個體建立關聯
<a name="MSDTC.Apply"></a>

您可以使用AWS 管理主控台或 AWS CLI，將 MSDTC 選項群組和參數群組與資料庫執行個體產生關聯。

### 主控台
<a name="MSDTC.Apply.Console"></a>

您可以將 MSDTC 選項群組和參數群組與新的或現有的資料庫執行個體產生關聯。
+ 對於新的資料庫執行個體，請在啟動執行個體時將它們相關聯。如需更多詳細資訊，請參閱 [建立 Amazon RDS 資料庫執行個體](USER_CreateDBInstance.md)。
+ 對於現有的資料庫執行個體，請透過修改執行個體來建立關聯。如需更多詳細資訊，請參閱 [修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。
**注意**  
如果您使用現有資料庫執行個體，則該執行個體必須已具有與其相關聯的 Active Directory 網域和 AWS Identity and Access Management IAM 角色。如果您建立新執行個體，請指定現有的 Active Directory 網域和 IAM 角色。如需更多詳細資訊，請參閱 [使用具有 RDS for SQL Server 的 AWS 受管 Active Directory](USER_SQLServerWinAuth.md)。

### CLI
<a name="MSDTC.Apply.CLI"></a>

您可以將 MSDTC 選項群組和參數群組與新的或現有的資料庫執行個體產生關聯。

**注意**  
如果您使用現有已加入網域的資料庫執行個體，則該執行個體必須已具有與其相關聯的 Active Directory 網域和 IAM 角色。如果您建立新執行個體，請指定現有的 Active Directory 網域和 IAM 角色。如需更多詳細資訊，請參閱 [使用具有 RDS for SQL Server 的 AWS 受管 Active Directory](USER_SQLServerWinAuth.md)。

**使用 MSDTC 選項群組和參數群組建立資料庫執行個體**
+ 指定建立選項群組時所使用的相同資料庫引擎類型和主要版本。  
**Example**  

  對於 Linux、macOS 或 Unix：

  ```
  aws rds create-db-instance \
      --db-instance-identifier mydbinstance \
      --db-instance-class db.m5.2xlarge \
      --engine sqlserver-se \
      --engine-version 13.00.5426.0.v1 \
      --allocated-storage 100 \
      --manage-master-user-password \
      --master-username admin \
      --storage-type gp2 \
      --license-model li \
      --domain-iam-role-name my-directory-iam-role \
      --domain my-domain-id \
      --option-group-name msdtc-se-2016 \
      --db-parameter-group-name msdtc-sqlserver-se-13
  ```

  在 Windows 中：

  ```
  aws rds create-db-instance ^
      --db-instance-identifier mydbinstance ^
      --db-instance-class db.m5.2xlarge ^
      --engine sqlserver-se ^
      --engine-version 13.00.5426.0.v1 ^
      --allocated-storage 100 ^
      --manage-master-user-password ^
      --master-username admin ^
      --storage-type gp2 ^
      --license-model li ^
      --domain-iam-role-name my-directory-iam-role ^
      --domain my-domain-id ^
      --option-group-name msdtc-se-2016 ^
      --db-parameter-group-name msdtc-sqlserver-se-13
  ```

**修改資料庫執行個體並建立 MSDTC 選項群組和參數群組的關聯**
+ 請使用下列其中一個命令。  
**Example**  

  對於 Linux、macOS 或 Unix：

  ```
  aws rds modify-db-instance \
      --db-instance-identifier mydbinstance \
      --option-group-name msdtc-se-2016 \
      --db-parameter-group-name msdtc-sqlserver-se-13 \
      --apply-immediately
  ```

  在 Windows 中：

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier mydbinstance ^
      --option-group-name msdtc-se-2016 ^
      --db-parameter-group-name msdtc-sqlserver-se-13 ^
      --apply-immediately
  ```

## 修改 MSDTC 選項
<a name="Appendix.SQLServer.Options.MSDTC.Modify"></a>

啟用 `MSDTC` 選項後，您可以修改其設定。如需如何修改選項設定的詳細資訊，請參閱[修改選項設定](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption)。

**注意**  
MSDTC 選項設定的某些變更需要重新啟動 MSDTC 服務。此需求可能會影響執行中的分散式交易。