

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

# Amazon RDS Custom
<a name="rds-custom"></a>

Amazon RDS Custom 會自動化資料庫管理任務和操作。RDS Custom 讓您以資料庫管理員身分存取和自訂資料庫環境和作業系統。使用 RDS Custom，您可以自訂以符合舊版、自訂和封裝應用程式的需求。

如需有關 RDS Custom 的最新網路研討會和部落格，請參閱 [Amazon RDS Custom 資源](https://aws.amazon.com/rds/custom/resources/)。

**Topics**
+ [解決資料庫自訂的挑戰](#custom-intro.challenge)
+ [Amazon RDS Custom 的管理模型和優點](#custom-intro.solution)
+ [Amazon RDS Custom 架構](custom-concept.md)
+ [Amazon RDS Custom 的安全性](custom-security.md)
+ [使用 RDS Custom for Oracle](working-with-custom-oracle.md)
+ [使用 RDS Custom for SQL Server](working-with-custom-sqlserver.md)

## 解決資料庫自訂的挑戰
<a name="custom-intro.challenge"></a>

Amazon RDS Custom 將 Amazon RDS 的優點帶到由於第三方應用程式需要的自訂而無法輕易移至全受管服務的市場。Amazon RDS Custom 可節省管理時間、耐用且可隨您的業務擴展。

如果您需要完整管理整個資料庫和作業系統 AWS，建議您使用 Amazon RDS。如果您需要資料庫和基礎作業系統的管理權限讓相依應用程式可用，Amazon RDS Custom 是更好的選擇。如果您想要完整的管理責任，只需要受管運算服務，最好的選擇就是在 Amazon EC2 上自行管理您的商業資料庫。

為了提供受管服務體驗，Amazon RDS 並不會讓您存取基礎主機。Amazon RDS 也會將存取權限制在某些需要高階權限的系統程序和物件。不過，對於某些應用程式，您可能需要以具有特殊權限的作業系統 (OS) 使用者身分執行操作。

例如，您可能需要執行下列操作：
+ 安裝自訂資料庫和作業系統修補程式和套件。
+ 設定特定資料庫設定。
+ 將檔案系統設定為直接與其應用程式共用檔案。

以前，如果您需要自訂應用程式，則必須在內部部署或 Amazon EC2 上部署資料庫。在此情況下，您必須承擔大部分或全部資料庫管理的責任，如下表所述。


|  功能  |  內部部署責任  |  Amazon EC2 責任  |  Amazon RDS 責任  | 
| --- | --- | --- | --- | 
|  應用程式最佳化  |  客戶  |  客戶  |  客戶  | 
|  擴展  |  客戶  |  客戶  |  AWS  | 
|  高可用性  |  客戶  |  客戶  |  AWS  | 
|  資料庫備份  |  客戶  |  客戶  |  AWS  | 
|  資料庫軟體修補  |  客戶  |  客戶  |  AWS  | 
|  資料庫軟體安裝  |  客戶  |  客戶  |  AWS  | 
|  作業系統修補  |  客戶  |  客戶  |  AWS  | 
|  作業系統安裝  |  客戶  |  客戶  |  AWS  | 
|  伺服器維護  |  客戶  |  AWS  |  AWS  | 
|  硬體生命週期  |  客戶  |  AWS  |  AWS  | 
|  電源、網路和冷卻  |  客戶  |  AWS  |  AWS  | 

當您自行管理資料庫軟體時，您可以獲得更多的控制權，但也更容易出現使用者錯誤。例如，當您手動進行變更時，可能會意外造成應用程式停機。您可能會花費數小時檢查每項變更，以識別並修正問題。理想情況下，您想要一個受管資料庫服務，可自動化一般資料庫管理員任務，同時支援資料庫和基礎作業系統的特殊權限存取。

## Amazon RDS Custom 的管理模型和優點
<a name="custom-intro.solution"></a>

Amazon RDS Custom 是一種受管資料庫服務，適用於需要存取基礎作業系統和資料庫環境的舊版、自訂和封裝應用程式。RDS Custom 會在 中自動設定、操作和擴展資料庫， AWS 雲端 同時授予您存取資料庫和基礎作業系統的權限。透過此存取權，您可以進行設定、安裝修補程式，以及啟用原生功能，以符合相依應用程式的需求。使用 RDS Custom，您可以使用 AWS 管理主控台 或 執行資料庫工作負載 AWS CLI。

RDS Custom 僅支持 Oracle 資料庫和 Microsoft SQL Server 資料庫引擎。

**Topics**
+ [RDS Custom 中共同的責任模型](#custom-intro.solution.shared)
+ [RDS Custom 中的支援周邊和不支援的組態](#custom-intro.solution.support-perimeter)
+ [RDS Custom 的主要優點](#custom-intro.solution.benefits)

### RDS Custom 中共同的責任模型
<a name="custom-intro.solution.shared"></a>

在 RDS Custom 中，您可以使用 Amazon RDS 的受管功能，但管理主機和自訂作業系統的方式則與 Amazon EC2 中相同。除了在 Amazon RDS 中承擔的責任之外，您還承擔額外的資料庫管理責任。因此，與 Amazon RDS 相比，您對資料庫和資料庫執行個體的管理擁有更多的控制權，同時仍能受益於 RDS 自動化。

共同的責任表示：

1. 使用 RDS Custom 功能時，您擁有程序的一部分。

   例如，在 RDS Custom for Oracle 中，您可以控制要使用哪些 Oracle 資料庫修補程式，以及何時將修補程式套用至資料庫執行個體。

1. 您必須負責確保對 RDS Custom 功能的任何自訂都能正常運作。

   為了防止無效的自訂，RDS Custom 擁有在資料庫執行個體之外執行的自動化軟體。如果基礎 Amazon EC2 執行個體故障，RDS Custom 會自動嘗試透過重新開機或取代 EC2 執行個體來解決這些問題。使用者唯一可見的變更是新的 IP 地址。如需詳細資訊，請參閱[Amazon RDS Custom 主機更換](custom-concept.md#custom-troubleshooting.host-problems)。

下表詳細說明不同 RDS Custom 功能的共同責任模型。


|  功能  |  Amazon EC2 責任  |  Amazon RDS 責任  |  RDS Custom for Oracle 責任  |  RDS Custom for SQL Server 責任  | 
| --- | --- | --- | --- | --- | 
|  應用程式最佳化  |  客戶  |  客戶  |  客戶  |  客戶  | 
|  擴展  |  客戶  |  AWS  |  共同  |  共同  | 
|  高可用性  |  客戶  |  AWS  | AWS |  AWS  | 
|  資料庫備份  |  客戶  |  AWS  |  共同  |  AWS  | 
|  資料庫軟體修補   |  客戶  |  AWS  |  共同  | AWS for RPEV、Customer for CEV1 | 
|  資料庫軟體安裝  |  客戶  |  AWS  |  共同  | AWS for RPEV、Customer for CEV1 | 
|  作業系統修補  |  客戶  |  AWS  |  客戶  | AWS for RPEV、Customer for CEV1 | 
|  作業系統安裝  |  客戶  |  AWS  |  共同  | AWS | 
|  伺服器維護  |  AWS  |  AWS  |  AWS  | AWS | 
|  硬體生命週期  |  AWS  |  AWS  |  AWS  | AWS | 
|  電源、網路和冷卻  |  AWS  |  AWS  |  AWS  | AWS | 

1 自訂引擎版本 (CEV) 是資料庫版本和 Amazon Machine Image (AMI) 的二進位磁碟區快照。RDS 提供的引擎版本 (RPEV) 是預設的 Amazon Machine Image (AMI) 和 Microsoft SQL Server 安裝。

您可以使用 Microsoft SQL Server 建立 RDS Custom 資料庫執行個體。在此案例中：
+ 有兩種授權模式可供選擇：已包含授權 (LI) 和自有媒體 (BYOM)。
+ 使用 LI，您不需要另外購買 SQL Server 授權。 AWS 保留 SQL Server 資料庫軟體的授權。
+ 使用 BYOM 時，您可以提供並安裝自己的 Microsoft SQL Server 二進位檔和授權。

您可以使用 Oracle 資料庫建立 RDS Custom 資料庫執行個體。在此情況下，請執行下列操作：
+ 管理您自己的媒體。

  使用 RDS Custom 時，您可以上傳自己的資料庫安裝檔案和修補程式。您可以從這些檔案建立自訂引擎版本 (CEV)。然後，您可以使用此 CEV 建立 RDS Custom 資料庫執行個體。
+ 管理您自己的授權。

  您可以自行攜帶 Oracle 資料庫授權，並自行管理授權。

### RDS Custom 中的支援周邊和不支援的組態
<a name="custom-intro.solution.support-perimeter"></a>

RDS Custom 提供稱為*支援周邊*的監控功能。此功能可確保您的主機和資料庫環境設定正確。如果您進行的變更會導致資料庫執行個體超出支援周邊的範圍，RDS Custom 會將執行個體狀態變更為 `unsupported-configuration`，直到您手動修正組態問題。如需詳細資訊，請參閱[RDS Custom 支援周邊](custom-concept.md#custom-troubleshooting.support-perimeter)。

### RDS Custom 的主要優點
<a name="custom-intro.solution.benefits"></a>

使用 RDS Custom，您可以執行下列操作：
+ 將許多與 Amazon RDS 相同的管理任務自動化，包括下列各項：
  + 資料庫生命週期管理
  + 自動備份支援時間點復原 (PITR)
  + 監控 RDS Custom 資料庫執行個體的運作狀態，並觀察基礎設施、作業系統和資料庫程序的變更。
  + 根據資料庫執行個體的中斷情況，通知或採取行動來修正問題
+ 安裝第三方應用程式。

  您可以安裝軟體來執行自訂應用程式和代理程式。由於您對主機具有特殊權限存取權，因此您可以修改檔案系統以支援舊版應用程式。
+ 安裝自訂修補程式。

  您可以在 RDS Custom 資料庫執行個體上套用自訂資料庫修補程式或修改作業系統套件。
+ 先暫存內部部署資料庫，再將其移至全受管服務。

  如果您管理自己的內部部署資料庫，則可以將資料庫依原樣暫存至 RDS Custom。熟悉雲端環境之後，您可以將資料庫遷移到全受管 Amazon RDS 資料庫執行個體。
+ 建立您自己的自動化。

  您可以建立、排程及執行報告、管理或診斷工具的自訂自動化指令碼。

# Amazon RDS Custom 架構
<a name="custom-concept"></a>

Amazon RDS Custom 架構是根據 Amazon RDS，但是有重要差異。下列圖表顯示 RDS Custom 架構的關鍵元件。

![\[RDS Custom 架構元件\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/RDS_Custom_gen_architecture.png)


**Topics**
+ [VPC](#custom-concept.components.VPC)
+ [RDS Custom 自動化與監控](#custom-concept.workflow.automation)
+ [Amazon S3](#custom-concept.components.S3)
+ [AWS CloudTrail](#custom-concept.components.CloudTrail)

## VPC
<a name="custom-concept.components.VPC"></a>

與 Amazon RDS 相同，您的 RDS Custom 資料庫執行個體位於 Virtual Private Cloud (VPC) 中。

![\[RDS Custom 資料庫執行個體元件\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/RDS_Custom_instance.png)


RDS Custom 資料庫執行個體包含下列主要元件：
+ Amazon EC2 執行個體
+ 執行個體端點
+ 安裝在 Amazon EC2 執行個體上的作業系統
+ Amazon EBS 儲存體，其中包含任何其他檔案系統

## RDS Custom 自動化與監控
<a name="custom-concept.workflow.automation"></a>

RDS Custom 具有在資料庫執行個體外部執行的自動化軟體。此軟體會與資料庫執行個體上的代理程式以及整體 RDS Custom 環境中的其他元件進行通訊。

RDS Custom 監控和復原功能提供類似於 Amazon RDS 的功能。根據預設，RDS Custom 處於全自動化模式。自動化軟體具有下列主要責任：
+ 收集指標及傳送通知
+ 執行自動執行個體復原

RDS Custom 自動化的一個重要責任是回應 Amazon EC2 執行個體的問題。由於各種原因，主機可能會受損或無法連線。RDS Custom 透過重新開機或取代 Amazon EC2 執行個體來解決這些問題。

**Topics**
+ [Amazon RDS Custom 主機更換](#custom-troubleshooting.host-problems)
+ [RDS Custom 支援周邊](#custom-troubleshooting.support-perimeter)

### Amazon RDS Custom 主機更換
<a name="custom-troubleshooting.host-problems"></a>

如果 Amazon EC2 主機受損，則 RDS Custom 會嘗試將其重新啟動。如果此工作失敗，RDS Custom 會使用 Amazon EC2 中包含的相同停止和啟動功能。取代主機時，客戶唯一可見的變更是新的公有 IP 地址。

**Topics**
+ [停止和啟動主機](#custom-troubleshooting.host-problems.replacement.stop-start)
+ [主機取代的影響](#custom-troubleshooting.host-problems.replacement.host-state)
+ [Amazon EC2 主機的最佳實務](#custom-troubleshooting.host-problems.best-practices)

#### 停止和啟動主機
<a name="custom-troubleshooting.host-problems.replacement.stop-start"></a>

RDS Custom 會自動執行下列步驟，不需要使用者介入：

1. 停止 Amazon EC2 主機。

   EC2 執行個體會執行正常的關機，然後停止執行。所有的 Amazon EBS 磁碟區仍會繼續連結至執行個體，其中的資料也會持續存在。所有存放在執行個體存放區磁碟區中的資料 (RDS Custom 不支援) 或主機電腦的 RAM 中的資料都會遺失。

   如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的[停止及啟動您的執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html)。

1. 啟動 Amazon EC2 主機。

   EC2 執行個體會遷移至新的基礎主機硬體。在某些情況下，RDS Custom 資料庫執行個體會保留在原始主機上。

#### 主機取代的影響
<a name="custom-troubleshooting.host-problems.replacement.host-state"></a>

在 RDS Custom 中，您可以完全控制根裝置磁碟區和 Amazon EBS 儲存磁碟區。根磁碟區可能包含您不想遺失的重要資料和組態。

RDS Custom for Oracle 會在操作後保留所有資料庫和客戶資料，包括根磁碟區資料。不需要使用者介入。在 RDS Custom for SQL Server 上，會保留資料庫資料，但是 `C:` 磁碟機上的任何資料 (包括作業系統和客戶資料) 都會遺失。

在主機取代程序之後，Amazon EC2 主機會擁有新的公有 IP 地址。新主機會保留下表所示的資料和中繼資料。


| 中繼資料或資料 | RDS Custom for Oracle 保留 | RDS Custom for SQL Server 保留 | 
| --- | --- | --- | 
| EC2 執行個體 ID | 是 | 否 | 
| EC2 執行個體中繼資料 | 是 | 是 | 
| 資料儲存磁碟區資料 | 是 | 是 | 
| 根磁碟區資料 | 是 | 否 | 
| 私有 IP 地址 | 是 | 是 | 
| 彈性 IP 位址 | 是 | 是 | 

#### Amazon EC2 主機的最佳實務
<a name="custom-troubleshooting.host-problems.best-practices"></a>

Amazon EC2 主機取代功能涵蓋大多數 Amazon EC2 受損案例。建議您遵循下列最佳實務：
+ 變更組態或作業系統之前，請先備份您的資料。如果根磁碟區或作業系統損毀，主機取代也無法修復它。您唯一的選項是從資料庫快照或時間點復原還原。
+ 請勿手動停止或終止實體 Amazon EC2 主機。這兩個動作都會導致執行個體放在 RDS Custom 支援周邊外面。
+ (RDS Custom for SQL Server) 如果您將其他磁碟區連接到 Amazon EC2 主機，請將其設定為在重新啟動時重新掛載。如果主機受損，RDS Custom 可能會自動停止和啟動主機。

### RDS Custom 支援周邊
<a name="custom-troubleshooting.support-perimeter"></a>

RDS Custom 提供額外的監控功能，稱為*支援周邊*。此額外監控可確保您的 RDS Custom 資料庫執行個體使用支援的 AWS 基礎設施、作業系統和資料庫。

支援周邊會檢查資料庫執行個體是否符合 [修正 RDS Custom for Oracle 中不支援的組態](custom-troubleshooting.md#custom-troubleshooting.fix-unsupported) 和 [修正 RDS Custom for SQL Server 中不支援的組態](custom-troubleshooting-sqlserver.md#custom-troubleshooting-sqlserver.fix-unsupported) 中所列的需求。如果有任何需求不符合，RDS Custom 會將您的資料庫執行個體視為不在支援周邊。

**Topics**
+ [RDS Custom 中不支援的組態](#custom-concept.support-perimeter.unsupported-config)
+ [對不支援的組態進行故障診斷](#custom-concept.support-perimeter.fix-unsupported-config)

#### RDS Custom 中不支援的組態
<a name="custom-concept.support-perimeter.unsupported-config"></a>

如果資料庫執行個體不在支援周邊，RDS Custom 會將資料庫執行個體的狀態變更為 `unsupported-configuration`，並傳送事件通知。修正組態問題之後，RDS Custom 會將資料庫執行個體狀態變更回 `available`。

當資料庫執行個體處於 `unsupported-configuration` 狀態時，以下為真：
+ 您的資料庫可連線。但資料庫執行個體處於 `unsupported-configuration` 狀態時則例外，因為資料庫會意外關閉。
+ 您無法修改資料庫執行個體。
+ 您無法擷取資料庫快照。
+ 不會建立自動備份。
+ (僅適用 RDS Custom for SQL Server 資料庫執行個體) RDS Custom 不會更換故障的基礎 Amazon EC2 執行個體。如需主機更換的詳細資訊，請參閱 [Amazon RDS Custom 主機更換](#custom-troubleshooting.host-problems)。
+ 您可以刪除資料庫執行個體，但大多數其他 RDS Custom API 操作無法使用。
+ RDS Custom 會透過封存重做日誌檔案並將其上傳至 Amazon S3 的方式，繼續支援時間點復原 (PITR)。處於 `unsupported-configuration` 狀態的 PITR 在以下方面有所不同：
  + PITR 可能需要很長的時間才能完全還原到新的 RDS Custom 資料庫執行個體。發生此情況是因為執行個體處於 `unsupported-configuration` 狀態時，您無法拍攝自動或手動快照。
  + PITR 必須從執行個體進入 `unsupported-configuration` 狀態之前擷取的最近快照開始，重新播放更多重做日誌。
  + 在某些情況下，資料庫執行個體處於 `unsupported-configuration` 狀態是因為您所做的變更使得封存的重做日誌檔案無法上傳。範例包括停止 EC2 執行個體、停止 RDS Custom 代理程式，以及卸離 EBS 磁碟區。在這類情況下，PITR 無法將資料庫執行個體還原至最新的可還原時間。

#### 對不支援的組態進行故障診斷
<a name="custom-concept.support-perimeter.fix-unsupported-config"></a>

RDS Custom 針對 `unsupported-configuration` 狀態提供了故障診斷指引。雖然部分指引同時適用於 RDS Custom for Oracle 和 RDS Custom for SQL Server，但其他指引則取決於您的資料庫引擎。如需引擎專屬的故障診斷資訊，請參閱下列主題：
+ [修正 RDS Custom for Oracle 中不支援的組態](custom-troubleshooting.md#custom-troubleshooting.fix-unsupported)
+ [修正 RDS Custom for SQL Server 中不支援的組態](custom-troubleshooting-sqlserver.md#custom-troubleshooting-sqlserver.fix-unsupported)

## Amazon S3
<a name="custom-concept.components.S3"></a>

若您使用 RDS Custom for Oracle，則會將安裝媒體上傳至使用者建立的 Amazon S3 儲存貯體。RDS Custom for Oracle 使用此儲存貯體中的媒體來建立自訂引擎版本 (CEV)。*CEV* 是資料庫版本和 Amazon Machine Image (AMI) 的二進位磁碟區快照。您可從 CEV 建立 RDS Custom 資料庫執行個體。如需詳細資訊，請參閱[使用 Amazon RDS Custom for Oracle 的自訂引擎版本](custom-cev.md)。

若為 RDS Custom for Oracle 和 RDS Custom for SQL Server 兩者，RDS Custom 會自動建立以字串 `do-not-delete-rds-custom-` 為字首的 Amazon S3 儲存貯體。RDS Custom 使用 `do-not-delete-rds-custom-` S3 儲存貯體來儲存下列類型的檔案：
+ AWS CloudTrail RDS Custom 所建立線索的 日誌
+ 支援周邊成品 (請參閱 [RDS Custom 支援周邊](#custom-troubleshooting.support-perimeter))
+ 資料庫重做日誌檔案 (僅限 RDS Custom for Oracle)
+ 交易日誌 (僅限 RDS Custom for SQL Server)
+ 自訂引擎版本成品 (僅限 RDS Custom for Oracle)

當您建立下列任一資源時，RDS Custom 會建立 `do-not-delete-rds-custom-` S3 儲存貯體：
+ RDS Custom for Oracle 的首個 CEV
+ RDS Custom for SQL Server 的首個資料庫執行個體

RDS Custom 為下列各項組合建立一個儲存貯體：
+ AWS 帳戶 ID
+ 引擎類型 (RDS Custom for Oracle 或 RDS Custom for SQL Server)
+ AWS 區域

例如，如果您在單一儲存貯體中建立 RDS Custom for Oracle CEVs AWS 區域，則存在一個儲存`do-not-delete-rds-custom-`貯體。如果您建立多個 RDS Custom for SQL Server 執行個體，且它們位於不同的 中 AWS 區域，則每個執行個體中都會有一個儲存`do-not-delete-rds-custom-`貯體 AWS 區域。如果您在單一 中建立一個 RDS Custom for Oracle 執行個體和兩個 RDS Custom for SQL Server 執行個體 AWS 區域，則有兩個`do-not-delete-rds-custom-`儲存貯體。

## AWS CloudTrail
<a name="custom-concept.components.CloudTrail"></a>

RDS Custom 會自動建立名稱開頭為 的 AWS CloudTrail 線索`do-not-delete-rds-custom-`。RDS Custom 支援依賴來自 CloudTrail 之事件的周邊，來決定您的動作是否會影響 RDS Custom 自動化。如需詳細資訊，請參閱[對不支援的組態進行故障診斷](#custom-concept.support-perimeter.fix-unsupported-config)。

RDS Custom 在您建立第一個資料庫執行個體時建立追蹤。RDS Custom 為下列各項組合建立一個追蹤：
+ AWS 帳戶 ID
+ 引擎類型 (RDS Custom for Oracle 或 RDS Custom for SQL Server)
+ AWS 區域

刪除 RDS Custom 資料庫執行個體時，不會自動刪除此執行個體的 CloudTrail。在此情況下，您的 會 AWS 帳戶 繼續支付未刪除的 CloudTrail。RDS Custom 不負責刪除此資源。若要瞭解如何手動刪除 CloudTrail，請參閱*《AWS CloudTrail 使用者指南》*中的[刪除追蹤](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-delete-trails-console.html)。

# Amazon RDS Custom 的安全性
<a name="custom-security"></a>

熟悉 RDS Custom 的安全考量。

如需 RDS Custom 安全性的詳細資訊，請參閱下列主題。
+ [保護您的 Amazon S3 儲存貯體，避免混淆代理人問題](custom-security.confused-deputy.md)
+ [輪換 RDS Custom for Oracle 憑證以符合合規計畫](custom-security.cred-rotation.md)

## RDS Custom 如何安全地代表您管理任務
<a name="custom-security.security-tools"></a>

RDS Custom 使用下列工具和技術代表您安全地執行操作：

**AWSServiceRoleForRDSCustom 服務連結角色**  
*服務連結角色*是由服務預先定義，內含該服務代您呼叫其他  AWS 服務  所需的所有許可。對於 RDS Custom，`AWSServiceRoleForRDSCustom` 是根據最低權限原則定義的服務連結角色。RDS Custom 會使用 `AmazonRDSCustomServiceRolePolicy` 中的權限 (連接此角色的政策) 來執行大部分的佈建和所有非主機的管理任務。如需詳細資訊，請參閱 [AmazonRDSCustomServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSCustomServiceRolePolicy.html)。  
在主機上執行任務時，RDS Custom 自動化會使用服務連結角色的登入資料來執行 命令 AWS Systems Manager。您可以透過系統管理員指令歷程記錄和  AWS CloudTrail 來稽核命令歷史記錄。系統管理員會使用您的網路設定連線到 RDS Custom 資料庫執行個體。如需詳細資訊，請參閱[步驟 4：設定 RDS Custom for Oracle 的 IAM](custom-setup-orcl.md#custom-setup-orcl.iam-vpc)。

**暫時性 IAM 憑證**  
佈建或刪除資源時，RDS Custom 有時會使用暫時性憑證，其是由呼叫 IAM 主體憑證衍生而來。這些 IAM 憑證受到該主體所連接的 IAM 政策限制，並在操作完成後隨即過期。如需了解使用 RDS Custom 的 IAM 主體所需許可，請參閱 [步驟 5：將所需的許可授予您的 IAM 使用者或角色](custom-setup-orcl.md#custom-setup-orcl.iam-user)。

**Amazon EC2 執行個體設定檔**  
EC2 執行個體設定檔是適用於 IAM 角色的容器，可讓您將角色資訊傳遞至 EC2 執行個體。EC2 執行個體位於 RDS Custom 資料庫執行個體的底層。建立 RDS Custom 資料庫執行個體時，您可以提供執行個體設定檔。在執行以主機為基礎的管理任務 (例如備份) 時，RDS Custom 會使用 EC2 執行個體設定檔憑證。如需詳細資訊，請參閱[手動建立 IAM 角色和執行個體設定檔](custom-setup-orcl.md#custom-setup-orcl.iam)。

**SSH 金鑰對**  
當 RDS Custom 建立資料庫執行個體底層的 EC2 執行個體時，它會代表您建立 SSH 金鑰對。金鑰使用命名前綴 `do-not-delete-rds-custom-ssh-privatekey-db-` 或 `rds-custom!oracle-do-not-delete-db_resource_id-uuid-ssh-privatekey`。 AWS Secrets Manager 會將此 SSH 私有金鑰作為秘密儲存於 AWS 帳戶。Amazon RDS 不會儲存、存取或使用這些憑證。如需詳細資訊，請參閱 [Amazon EC2 金鑰對與 Linux 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)。

## SSL 憑證
<a name="custom-security.ssl"></a>

RDS Custom 資料庫執行個體不支援受管 SSL 憑證。如果您要部署 SSL，可以在自己的錢包中自行管理 SSL 憑證，並建立 SSL 接聽程式，以保護用戶端資料庫之間或資料庫複寫的連線。如需詳細資訊，請參閱 Oracle Database 文件中的[設定 Transport Layer Security 身分驗證](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/configuring-secure-sockets-layer-authentication.html#GUID-6AD89576-526F-4D6B-A539-ADF4B840819F)。

# 保護您的 Amazon S3 儲存貯體，避免混淆代理人問題
<a name="custom-security.confused-deputy"></a>

建立 Amazon RDS Custom for Oracle 的自訂引擎版本 (CEV) 或 RDS Custom for Oracle 的資料庫執行個體時，RDS Custom 會建立 Amazon S3 儲存貯體。S3 儲存貯體儲存如 CEV 成品、重做 (交易) 日誌、支援範圍的組態項目等檔案，以及 AWS CloudTrail 日誌。

您可以使用全域條件內容金鑰來防止全*混淆代理人問題*，使 S3 儲存貯體貯體更加安全。如需詳細資訊，請參閱[防止跨服務混淆代理人問題](cross-service-confused-deputy-prevention.md)。

下列 RDS Custom for Oracle 範例，顯示 S3 儲存貯體政策中使用 `aws:SourceArn` 和 `aws:SourceAccount` 全域條件內容金鑰。對於 RDS Custom for Oracl，請確保包含 CEV 的 Amazon Resource Name (ARN) 和資料庫執行個體。對於 RDS Custom for SQL Server，請確保包含資料庫執行個體的 ARN。

```
...
{
  "Sid": "AWSRDSCustomForOracleInstancesObjectLevelAccess",
  "Effect": "Allow",
  "Principal": {
     "Service": "custom.rds.amazonaws.com"
  },
  "Action": [
     "s3:GetObject",
     "s3:GetObjectVersion",
     "s3:DeleteObject",
     "s3:DeleteObjectVersion",
     "s3:GetObjectRetention",
     "s3:BypassGovernanceRetention"
  ],
  "Resource": "arn:aws:s3:::do-not-delete-rds-custom-123456789012-us-east-2-c8a6f7/RDSCustomForOracle/Instances/*",
  "Condition": {
     "ArnLike": {
        "aws:SourceArn": [
            "arn:aws:rds:us-east-2:123456789012:db:*",
            "arn:aws:rds:us-east-2:123456789012:cev:*/*"
        ]
     },
     "StringEquals": {
        "aws:SourceAccount": "123456789012"
    }
  }
},
...
```

# 輪換 RDS Custom for Oracle 憑證以符合合規計畫
<a name="custom-security.cred-rotation"></a>

有些合規計畫需要定期變更資料庫使用者憑證，例如每 90 天變更一次。RDS Custom for Oracle 會自動輪換部分預先定義資料庫使用者的憑證。

**Topics**
+ [為預先定義使用者自動輪換憑證](#custom-security.cred-rotation.auto)
+ [輪換使用者憑證的指南](#custom-security.cred-rotation.guidelines)
+ [手動輪換使用者憑證](#custom-security.cred-rotation.manual)

## 為預先定義使用者自動輪換憑證
<a name="custom-security.cred-rotation.auto"></a>

如果您的 RDS Custom for Oracle 資料庫執行個體是在 Amazon RDS 中託管，下列預先定義 Oracle 使用者的憑證會每 30 天自動輪換一次。先前使用者的登入資料位於 中 AWS Secrets Manager。


| 資料庫使用者 | 建立者 | 支援的引擎版本 | 備註 | 
| --- | --- | --- | --- | 
|  `SYS`  |  Oracle  |  custom-oracle-ee custom-oracle-ee-cdb custom-oracle-se2 custom-oracle-se2-cdb  |  | 
|  `SYSTEM`  |  Oracle  |  custom-oracle-ee custom-oracle-ee-cdb custom-oracle-se2 custom-oracle-se2-cdb  |  | 
|  `RDSADMIN`  |  RDS  |  custom-oracle-ee custom-oracle-se2  |  | 
|  `C##RDSADMIN`  |  RDS  |  custom-oracle-ee-cdb custom-oracle-se2-cdb  | 帶有 C\$1\$1 字首的使用者名稱僅存在於 CDB 中。如需有關 CDB 的詳細資訊，請參閱 [Amazon RDS Custom for Oracle 架構的概觀](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-creating.html#custom-creating.overview)。 | 
|  `RDS_DATAGUARD`  |  RDS  |  custom-oracle-ee  | 此使用者僅存在於僅供讀取複本、僅供讀取複本的來源資料庫，以及您以 Oracle Data Guard 實際移轉至 RDS Custom 的資料庫。 | 
|  `C##RDS_DATAGUARD`  |  RDS  |  custom-oracle-ee-cdb  | 此使用者僅存在於僅供讀取複本、僅供讀取複本的來源資料庫，以及您以 Oracle Data Guard 實際移轉至 RDS Custom 的資料庫。帶有 C\$1\$1 字首的使用者名稱僅存在於 CDB 中。如需有關 CDB 的詳細資訊，請參閱 [Amazon RDS Custom for Oracle 架構的概觀](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-creating.html#custom-creating.overview)。 | 

自動憑證輪換的例外狀況是您已手動設為待命資料庫的 Oracle 資料庫執行個體之 RDS Custom。RDS 只會輪換您使用 `create-db-instance-read-replica` CLI 命令或 `CreateDBInstanceReadReplica` API 建立的僅供讀取複本憑證。

## 輪換使用者憑證的指南
<a name="custom-security.cred-rotation.guidelines"></a>

為了確保您的憑證會根據合規計畫進行輪換，請注意下列事項：
+ 如果您的資料庫執行個體會自動輪換憑證，請勿手動變更或刪除[預先定義 Oracle 使用者](#auto-rotation)列出之使用者秘密、密碼檔案或密碼。否則，RDS Custom 可能會將您的資料庫執行個體置於支援範圍之外，從而暫停自動輪換。
+ RDS 主要使用者並未預先定義，因此您必須手動變更密碼或在 Secrets Manager 中設定自動輪換。如需詳細資訊，請參閱[輪換 AWS Secrets Manager 秘密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html)。

## 手動輪換使用者憑證
<a name="custom-security.cred-rotation.manual"></a>

針對以下資料庫類別，RDS 不會自動輪換[預先定義 Oracle 使用者](#auto-rotation)列出的使用者憑證：
+ 您手動設定為待命資料庫的資料庫。
+ 內部部署資料庫。
+ 位於支援範圍以外的資料庫執行個體，或處於 RDS Custom 自動化無法執行的狀態。在此情況下，RDS Custom 也不會輪換金鑰。

若您的資料庫屬於上述任何類別，您必須手動輪換使用者憑證。

**手動輪換資料庫執行個體的使用者憑證**

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

1. 請確認**資料庫**中，RDS 目前未備份您的資料庫執行個體，或執行高可用性設定等操作。

1. 在資料庫詳細資訊頁面中，選擇**組態**並記下資料庫執行個體的資源 ID。或者，您可以使用 AWS CLI 命令 `describe-db-instances`。

1. 前往以下位置開啟機密管理員控制台：[https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)。

1. 在搜尋方塊中，輸入資料庫的資源 ID，並使用下列任一命名慣例來搜尋秘密：

   ```
   do-not-delete-rds-custom-resource_id-uuid
   rds-custom!oracle-do-not-delete-resource_id-uuid
   ```

   此秘密會儲存 `RDSADMIN`、`SYS` 和 `SYSTEM` 的密碼。下列範例金鑰適用於具有資源 ID `db-ABCDEFG12HIJKLNMNOPQRS3TUVWX` 和 UUID `123456` 的資料庫執行個體：

   ```
   do-not-delete-rds-custom-db-ABCDEFG12HIJKLNMNOPQRS3TUVWX-123456
   rds-custom!oracle-do-not-delete-db-ABCDEFG12HIJKLNMNOPQRS3TUVWX-123456
   ```
**重要**  
若您的資料庫執行個體是僅供讀取複本並使用 `custom-oracle-ee-cdb` 引擎，則會有兩個具字尾 `db-resource_id-uuid` 的秘密，一個用於主要使用者，另一個用於 `RDSADMIN`、`SYS` 和 `SYSTEM`。若要尋找正確的秘密，請在主機執行下列命令：  

   ```
   cat /opt/aws/rdscustomagent/config/database_metadata.json | python3 -c "import sys,json; print(json.load(sys.stdin)['dbMonitoringUserPassword'])"
   ```
`dbMonitoringUserPassword` 屬性顯示 `RDSADMIN`、`SYS` 和 `SYSTEM` 的秘密。

1. 如果您的資料庫執行個體存在於 Oracle Data Guard 組態中，請使用下列任一命名慣例來搜尋秘密：

   ```
   do-not-delete-rds-custom-resource_id-uuid-dg
   rds-custom!oracle-do-not-delete-resource_id-uuid-dg
   ```

   此秘密會儲存 `RDS_DATAGUARD` 的密碼。下列範例金鑰適用於具有資源 ID `db-ABCDEFG12HIJKLNMNOPQRS3TUVWX` 和 UUID **789012** 的資料庫執行個體：

   ```
   do-not-delete-rds-custom-db-ABCDEFG12HIJKLNMNOPQRS3TUVWX-789012-dg
   rds-custom!oracle-do-not-delete-db-ABCDEFG12HIJKLNMNOPQRS3TUVWX-789012-dg
   ```

1. 對於[預先定義 Oracle 使用者中列出的所有資料庫使用者](#auto-rotation)，請依照[修改 AWS Secrets Manager 秘密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_update-secret.html)中的指示更新密碼。

1. 如果您的資料庫是獨立資料庫或 Oracle Data Guard 組態中的來源資料庫：

   1. 啟動您的 Oracle SQL 用戶端並以 `SYS` 登入。

   1. 針對[預先定義 Oracle 使用者](#auto-rotation)列出的每個資料庫使用者，以下列格式執行 SQL 陳述式：

      ```
      ALTER USER user-name IDENTIFIED BY pwd-from-secrets-manager ACCOUNT UNLOCK;
      ```

      例如，如果 `RDSADMIN` 儲存在 Secrets Manager 的密碼是 `pwd-123`，請執行下列陳述式：

      ```
      ALTER USER RDSADMIN IDENTIFIED BY pwd-123 ACCOUNT UNLOCK;
      ```

1. 若您的資料庫執行個體執行 Oracle 資料庫 12c 版本 1 (12.1)，且由 Oracle Data Guard 管理，請手動將密碼檔案 (`orapw`) 從主要資料庫執行個體複製到每個待命資料庫執行個體。

   若您的資料庫執行個體託管在 Amazon RDS，則密碼檔案位置為 `/rdsdbdata/config/orapw`。對於不在 Amazon RDS 託管的資料庫，在 Linux 和 UNIX 的預設位置是 `$ORACLE_HOME/dbs/orapw$ORACLE_SID`，在 Windows 的預設位置是 `%ORACLE_HOME%\database\PWD%ORACLE_SID%.ora`。

# 使用 RDS Custom for Oracle
<a name="working-with-custom-oracle"></a>

在下列內容，您可以找到建立、管理和維護 RDS Custom for Oracle 資料庫執行個體的指示。

**Topics**
+ [RDS Custom for Oracle 工作流程](custom-concept.workflow.md)
+ [Amazon RDS Custom for Oracle 的資料庫架構](custom-oracle.db-architecture.md)
+ [RDS Custom for Oracle 的功能可用性和支援](custom-oracle-feature-support.md)
+ [RDS Custom for Oracle 需求和限制](custom-reqs-limits.md)
+ [設定您的 Amazon RDS Custom for Oracle 的環境](custom-setup-orcl.md)
+ [使用 Amazon RDS Custom for Oracle 的自訂引擎版本](custom-cev.md)
+ [設定 Amazon RDS Custom for Oracle 的資料庫執行個體](custom-creating.md)
+ [管理 Amazon RDS Custom for Oracle 資料庫執行個體](custom-managing.md)
+ [管理 RDS Custom for Oracle 的多可用區域部署](custom-oracle-multiaz.md)
+ [使用 RDS Custom for Oracle 的 Oracle 複本](custom-rr.md)
+ [備份與還原 Amazon RDS Custom for Oracle DB 資料庫執行個體](custom-backup.md)
+ [使用 RDS Custom for Oracle 中的選項群組](custom-oracle-option-groups.md)
+ [將內部部署資料庫遷移至 RDS Custom for Oracle](custom-migrating-oracle.md)
+ [升級 Amazon RDS Custom for Oracle 的資料庫執行個體](custom-upgrading.md)
+ [針對 Amazon RDS Custom for Oracle 的資料庫問題進行故障診斷](custom-troubleshooting.md)
+ [Amazon RDS Custom for Oracle 的已知問題](custom-known-issues.md)

# RDS Custom for Oracle 工作流程
<a name="custom-concept.workflow"></a>

下圖顯示 RDS Custom for Oracle 的典型工作流程。

![\[RDS Custom for Oracle 架構元件\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/RDS_Custom_architecture_v2.png)


步驟如下：

1. 將資料庫軟體上傳到您的 Amazon S3 儲存貯體。

   如需詳細資訊，請參閱[步驟 3：將您的安裝檔案上傳到 Amazon S3](custom-cev.preparing.md#custom-cev.preparing.s3)。

1. 從您的媒體建立 RDS Custom for Oracle 自訂引擎版本 (CEV)。

   選擇 CDB 架構或傳統非 CDB 架構。如需詳細資訊，請參閱[建立 CEV](custom-cev.create.md)。

1. 從 CEV 建立 RDS Custom for Oracle 資料庫執行個體。

   如需詳細資訊，請參閱[建立 RDS Custom for Oracle 資料庫執行個體](custom-creating.md#custom-creating.create)。

1. 將應用程式連線到資料庫執行個體端點。

   如需詳細資訊，請參閱[使用 SSH 連線到您的 RDS Custom 資料庫執行個體](custom-creating.md#custom-creating.ssh)及[使用工作階段管理員連線至 RDS Custom 資料庫執行個體](custom-creating.ssm.md)。

1. (選用) 存取主機以自訂您的軟體。

1. 監控 RDS Custom 自動化產生的通知和訊息。

## 資料庫安裝檔案
<a name="custom-concept.workflow.db-files"></a>

您對媒體的責任是 Amazon RDS 與和 RDS Custom 之間的關鍵差異。Amazon RDS 是一個全受管服務，提供 Amazon Machine Image (AMI)和資料庫軟體。Amazon RDS 資料庫軟體已預先安裝，因此您只需選擇資料庫引擎和版本，然後建立資料庫。

對於 RDS Custom，您可以提供自己的媒體。當您建立自訂引擎版本時，RDS Custom 會安裝您提供的媒體。RDS Custom 媒體包含您的資料庫安裝檔案和修補程式。此服務模型稱為使用自有媒體 (BYOM)。

## RDS Custom for Oracle 的自訂引擎版本
<a name="custom-concept.workflow.cev"></a>

RDS Custom for Oracle 自訂引擎版本 (CEV) 是資料庫版本和 AMI 的二進位磁碟區快照。依預設，RDS Custom for Oracle 會使用 Amazon EC2 提供的最新 AMI。您也可以選擇重複使用現有的 IAM。

### CEV 清單檔案
<a name="custom-concept.workflow.cev.install"></a>

從 Oracle 下載 Oracle 資料庫安裝檔案之後，您可以將其上傳到 Amazon S3 儲存貯體。建立 CEV 時，您可以在稱為 CEV 清單檔案的 JSON 文件中指定檔案名稱。RDS Custom for Oracle 會使用指定的檔案和 AMI 來建立您的 CEV。

RDS Custom for Oracle 會針對每個支援的 Oracle Database 版本，提供 JSON 清單檔案範本以及我們建議的 .zip 檔案。例如，下列範本適用於 19.17.0.0.0 RU。

```
{
    "mediaImportTemplateVersion": "2020-08-14",
    "databaseInstallationFileNames": [
        "V982063-01.zip"
    ],
    "opatchFileNames": [
        "p6880880_190000_Linux-x86-64.zip"
    ],
    "psuRuPatchFileNames": [
        "p34419443_190000_Linux-x86-64.zip",
        "p34411846_190000_Linux-x86-64.zip"
    ],
    "otherPatchFileNames": [
        "p28852325_190000_Linux-x86-64.zip",
        "p29997937_190000_Linux-x86-64.zip",
        "p31335037_190000_Linux-x86-64.zip",
        "p32327201_190000_Linux-x86-64.zip",
        "p33613829_190000_Linux-x86-64.zip",
        "p34006614_190000_Linux-x86-64.zip",
        "p34533061_190000_Linux-x86-64.zip",
        "p34533150_190000_Generic.zip",
        "p28730253_190000_Linux-x86-64.zip",
        "p29213893_1917000DBRU_Generic.zip",
        "p33125873_1917000DBRU_Linux-x86-64.zip",
        "p34446152_1917000DBRU_Linux-x86-64.zip"
    ]
}
```

您也可以在 JSON 清單檔案中指定安裝參數。例如，您可以為 Oracle 基本目錄、Oracle 主目錄，以及 UNIX/Linux 使用者和群組的 ID 和名稱設定非預設值。如需詳細資訊，請參閱[CEV 資訊清單中的 JSON 欄位](custom-cev.preparing.md#custom-cev.preparing.manifest.fields)。

### CEV 命名格式
<a name="custom-concept.workflow.cev.name"></a>

使用客戶指定的字串命名您的 RDS Custom for Oracle CEV。名稱格式如下，具體取決於 Oracle 資料庫版本：
+ `19.customized_string`
+ `18.customized_string`
+ `12.2.customized_string`
+ `12.1.customized_string`

您可以使用 1–50 個英數字元、字元、底線、破折號和句點。例如，您可以將 CEV 命名為 `19.my_cev1`。

### RDS Custom for Oracle 中的 Oracle 多租戶架構
<a name="custom-concept.workflow.cev.multitenant"></a>

Oracle 多租戶架構可讓 Oracle 資料庫作為容器資料庫 (CDB) 運作。CDB 包含零個、一個或多個顧客建立的插入式資料庫 (PDB)。PDB 是結構描述和物件的可攜性集合，此集合會對應用程式顯示為傳統非 CDB。

建立 RDS Custom for Oracle CEV 時，您可以指定 CDB 或非 CDB 架構。只有當您用來建立 RDS Custom for Oracle CDB 的 CEV 使用 Oracle 多租戶架構時，才能建立該 CDB。如需詳細資訊，請參閱[使用 Amazon RDS Custom for Oracle 的自訂引擎版本](custom-cev.md)。

## 建立 RDS Custom for Oracle 資料庫執行個體
<a name="custom-concept.workflow.instance"></a>

建立 CEV 後，您就可以使用它。您可以建立多個 CEV，也可以從任何 CEV 建立多個 RDS Custom for Oracle 資料庫執行個體。您也可以變更 CEV 的狀態，使其成為可用或非作用中。

您可以使用 Oracle 多租戶架構 (`custom-oracle-ee-cdb` 或 `custom-oracle-se2-cdb` 引擎類型)，或使用傳統的非 CDB 架構 (`custom-oracle-ee` 或 `custom-oracle-se2` 引擎類型) 建立 RDS Custom for Oracle DB 資料庫執行個體。當您建立一個容器資料庫 (CDB) 時，它包含一個插入式資料庫 (PDB)和一個 PDB 種子。您可以使用 Oracle SQL 手動建立額外的 PDB。

若要建立 RDS Custom for Oracle 資料庫執行個體，請使用 `create-db-instance` 命令。在此命令中，指定要使用的 CEV。該程序類似於建立 Amazon RDS 資料庫執行個體的程序。不過，某些參數不同。如需詳細資訊，請參閱[設定 Amazon RDS Custom for Oracle 的資料庫執行個體](custom-creating.md)。

## 資料庫連線
<a name="custom-concept.workflow.db-connection"></a>

與 Amazon RDS 資料庫執行個體相同，RDS Custom 資料庫執行個體位於 虛擬私有雲端 (VPC) 中。您的應用程式會使用 Oracle 接聽程式連線至 Oracle 資料庫。

如果您的資料庫是 CDB，您可以使用接聽程式 `L_RDSCDB_001` 連線至 CDB 根和 PDB。如果您將非 CDB 插入 CDB 中，請務必設定 `USE_SID_AS_SERVICE_LISTENER = ON`，以便遷移的應用程序保持相同的設定。

當您連線至非 CDB 時，主要使用者就是非 CDB 的使用者。當您連線至 CDB 時，主要使用者就是 PDB 的使用者。若要連線至 CDB 根，請登入主機、啟動 SQL 用戶端，然後使用 SQL 命令建立管理使用者。

## RDS Custom 自訂
<a name="custom-concept.workflow.db-customization"></a>

您可以存取 RDS Custom 主機以安裝或自訂軟體。若要避免變更與 RDS Custom 自動化之間發生衝突，您可以在指定期間暫停自動化。在此期間，RDS Custom 不會執行監控或執行個體復原。在期間結束時，RDS Custom 會繼續全自動化。如需詳細資訊，請參閱[暫停和繼續 RDS Custom 資料庫執行個體](custom-managing.customizing-env.md#custom-managing.pausing)。

# Amazon RDS Custom for Oracle 的資料庫架構
<a name="custom-oracle.db-architecture"></a>

RDS Custom for Oracle 同時支援 Oracle 多租戶和非多租戶架構。

**Topics**
+ [支援的 Oracle 資料庫架構](#custom-oracle.db-architecture.types)
+ [支援的引擎類型](#custom-oracle.db-architecture.engine-types)
+ [Oracle 多租戶架構中支援的功能](#custom-oracle.db-architecture.features)

## 支援的 Oracle 資料庫架構
<a name="custom-oracle.db-architecture.types"></a>

Oracle 多租戶架構 (也稱為 CDB 架構) 可讓 Oracle 資料庫作為容器資料庫 (CDB) 運作。CDB 包含插入式資料庫 (PDB)。PDB 是結構描述和物件的集合，此集合會對應用程式顯示為傳統 Oracle 資料庫。如需詳細資訊，請參閱《Oracle 多租戶管理員指南》**中的[多租戶架構簡介](https://docs.oracle.com/en/database/oracle/oracle-database/19/multi/introduction-to-the-multitenant-architecture.html)。

CDB 和非 CDB 架構是互斥的。如果 Oracle 資料庫不是 CDB，則其是非 CDB，因此不能包含 PDB。在 RDS Custom for Oracle 中，僅 Oracle Database 19c 支援 CDB 多租戶架構。因此，如果您使用舊版 Oracle 資料庫建立資料庫執行個體，則只能建立非 CDB。如需詳細資訊，請參閱[多租戶架構考量](custom-creating.md#custom-creating.overview)。

## 支援的引擎類型
<a name="custom-oracle.db-architecture.engine-types"></a>

當您建立 Amazon RDS Custom for Oracle CEV 或資料庫執行個體時，請選擇 CDB 引擎類型或非 CDB 引擎類型：
+ `custom-oracle-ee-cdb` 和 `custom-oracle-se2-cdb`

  這些引擎類型指定 Oracle 多租戶架構。此選項僅適用於 Oracle Database 19c。當您使用多租戶架構建立 RDS for Oracle 資料庫執行個體時，您的 CDB 包含下列容器：
  + CDB 根 (`CDB$ROOT`)
  + PDB 種子 (`PDB$SEED`)
  + 起始 PDB

  您可以使用 Oracle SQL 命令 `CREATE PLUGGABLE DATABASE` 建立更多 PDB。您無法使用 RDS API 建立或刪除 PDB。
+ `custom-oracle-ee` 和 `custom-oracle-se2`

  這些引擎類型指定傳統非 CDB 架構。非 CDB 不能包含插入式資料庫 (PDB)。

如需詳細資訊，請參閱[多租戶架構考量](custom-creating.md#custom-creating.overview)。

## Oracle 多租戶架構中支援的功能
<a name="custom-oracle.db-architecture.features"></a>

RDS Custom for Oracle CDB 執行個體支援下列功能：
+ 備份
+ 從備份進行還原和時間點還原 (PITR)
+ 僅供讀取複本
+ 次要版本升級

# RDS Custom for Oracle 的功能可用性和支援
<a name="custom-oracle-feature-support"></a>

在本主題中，您可以尋找 RDS Custom for Oracle 功能可用性和支援的摘要，以進行快速參考。

**Topics**
+ [AWS 區域 RDS Custom for Oracle 的 和 資料庫版本支援](#custom-reqs-limits.RegionVersionAvailability)
+ [RDS Custom for Oracle 的資料庫版本支援](#custom-reqs-limits.db-version)
+ [RDS Custom for Oracle 的版本和授權支援](#custom-oracle-feature-support.editions)
+ [RDS Custom for Oracle 的資料庫執行個體類別支援](#custom-reqs-limits.instances)
+ [RDS Custom for Oracle 的選項群組支援](#custom-oracle-feature-support.option-groups)

## AWS 區域 RDS Custom for Oracle 的 和 資料庫版本支援
<a name="custom-reqs-limits.RegionVersionAvailability"></a>

功能可用性和支援會因每個資料庫引擎的特定版本以及 AWS 區域而有所不同。如需 RDS Custom for Oracle 的版本和區域可用性的詳細資訊，請參閱 [支援的 RDS Custom 區域和資料庫引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.md)。

## RDS Custom for Oracle 的資料庫版本支援
<a name="custom-reqs-limits.db-version"></a>

RDS Custom for Oracle 支援下列 Oracle 資料庫版本：
+ Oracle 資料庫 19c
+ Oracle 資料庫 18c
+ Oracle 資料庫 12c 版本 2 (12.2)
+ Oracle 資料庫 12c 版本 1 (12.1)

## RDS Custom for Oracle 的版本和授權支援
<a name="custom-oracle-feature-support.editions"></a>

RDS Custom for Oracle 支援 BYOL 模式上的 Enterprise Edition (EE) 和 Standard Edition 2 (SE2)。

請注意 Standard Edition 2 的下列限制：
+ 不支援 Oracle Data Guard。因此，您無法建立 Oracle 僅供讀取複本。
+ 您只能使用具有 16 個或更少 vCPU (最多 4 倍大) 的資料庫執行個體類別。
+ Standard Edition 2 上的 CDB 執行個體最多支援 3 個租用戶資料庫。
+ 您無法在 Enterprise Edition 與 Standard Edition 2 之間遷移資料。

## RDS Custom for Oracle 的資料庫執行個體類別支援
<a name="custom-reqs-limits.instances"></a>

RDS Custom for Oracle 支援下列資料庫執行個體類別。如果您在 Standard Edition 2 上建立資料庫執行個體，則只能使用具有 16 個或更少 vCPU (最多 4 倍大) 的執行個體類別。


| Type | 大小 | 
| --- | --- | 
| db.m7i | db.m7i.large \$1 db.m7i.xlarge \$1 db.m7i.2xlarge \$1 db.m7i.4xlarge \$1 db.m7i.8xlarge \$1 db.m7i.12xlarge \$1 db.m7i.16xlarge \$1 db.m7i.24xlarge \$1 db.m7i.48xlarge \$1 db.m7i.metal-24xl \$1 db.m7i.metal-48xl | 
| db.m6i | db.m6i.large \$1 db.m6i.xlarge \$1 db.m6i.2xlarge \$1 db.m6i.4xlarge \$1 db.m6i.8xlarge \$1 db.m6i.12xlarge \$1 db.m6i.16xlarge \$1 db.m6i.24xlarge \$1 db.m6i.32xlarge \$1 db.m6i.metal | 
| db.m6id | db.m6id.metal | 
| db.m6in | db.m6in.metal | 
| db.m5 | db.m5.large \$1 db.m5.xlarge \$1 db.m5.2xlarge \$1 db.m5.4xlarge \$1 db.m5.8xlarge \$1 db.m5.12xlarge \$1 db.m5.16xlarge \$1 db.m5.24xlarge | 
| db.r7i | db.r7i.large \$1 db.r7i.xlarge \$1 db.r7i.2xlarge \$1 db.r7i.4xlarge \$1 db.r7i.8xlarge \$1 db.r7i.12xlarge \$1 db.r7i.16xlarge \$1 db.r7i.24xlarge \$1 db.r7i.48xlarge \$1 db.r7i.metal-24xl \$1 db.r7i.metal-48xl | 
| db.r6i | db.r6i.large \$1 db.r6i.xlarge \$1 db.r6i.2xlarge \$1 db.r6i.4xlarge \$1 db.r6i.8xlarge \$1 db.r6i.12xlarge \$1 db.r6i.16xlarge \$1 db.r6i.24xlarge \$1 db.r6i.32xlarge \$1 db.r6i.metal | 
| db.r6id | db.r6id.metal | 
| db.r6in | db.r6in.metal | 
| db.r5b | db.r5b.large \$1 db.r5b.xlarge \$1 db.r5b.2xlarge \$1 db.r5b.4xlarge \$1 db.r5b.8xlarge \$1 db.r5b.12xlarge \$1 db.r5b.16xlarge \$1 db.r5b.24xlarge | 
| db.r5 | db.r5.large \$1 db.r5.xlarge \$1 db.r5.2xlarge \$1 db.r5.4xlarge \$1 db.r5.8xlarge \$1 db.r5.12xlarge \$1 db.r5.16xlarge \$1 db.r5.24xlarge | 
| db.x2iedn | db.x2iedn.xlarge \$1 db.x2iedn.2xlarge \$1 db.x2iedn.4xlarge \$1 db.x2iedn.8xlarge \$1 db.x2iedn.16xlarge \$1 db.x2iedn.24xlarge \$1 db.x2iedn.32xlarge \$1 db.x2iedn.metal | 
| db.x2idn | db.x2idn.metal | 
| db.x2iezn | db.x2iezn.2xlarge \$1 db.x2iezn.4xlarge \$1 db.x2iezn.6xlarge \$1 db.x2iezn.8xlarge \$1 db.x2iezn.12xlarge \$1 db.x2iezn.metal | 
| db.t3 | db.t3.medium \$1 db.t3.large \$1 db.t3.xlarge \$1 db.t3.2xlarge | 

## RDS Custom for Oracle 的選項群組支援
<a name="custom-oracle-feature-support.option-groups"></a>

您可以在建立或修改 RDS Custom for Oracle 資料庫執行個體時指定選項群組。如需詳細資訊，請參閱[使用 RDS Custom for Oracle 中的選項群組](custom-oracle-option-groups.md)。

# RDS Custom for Oracle 需求和限制
<a name="custom-reqs-limits"></a>

在本主題中，您可以尋找 Amazon RDS Custom for Oracle 功能可用性和需求的摘要，以進行快速參考。

**Topics**
+ [RDS Custom for Oracle 的一般需求](#custom-reqs-limits.reqs)
+ [RDS Custom for Oracle 的一般限制](#custom-reqs-limits.limits)
+ [RDS Custom for Oracle 的 CEV 和 AMI 限制](#custom-reqs-limits.cev-limits)
+ [建立及修改工作流程的不支援設定](#custom-reqs-limits.unsupported-settings)
+ [您 的資料庫執行個體配額 AWS 帳戶](#custom-reqs-limits.quotas)

## RDS Custom for Oracle 的一般需求
<a name="custom-reqs-limits.reqs"></a>

請務必符合 Amazon RDS Custom for Oracle 的以下需求：
+ 您具有 [My Oracle Support](https://support.oracle.com/portal/) 和 [Oracle Software Delivery Cloud](https://edelivery.oracle.com/osdc/faces/Home.jspx) 的存取權，以便下載 RDS Custom for Oracle 的安裝檔案和修補程式的支援清單。如果您使用未知的修補程式，則自訂引擎版本 (CEV) 建立就會失敗。在此情況下，請聯絡 RDS Custom 支援團隊，並要求新增遺失的修補程式。如需詳細資訊，請參閱[步驟 2：從 Oracle Software Delivery Cloud 下載資料庫安裝檔案和修補程式](custom-cev.preparing.md#custom-cev.preparing.download)。
+ 您具有 Amazon S3 的存取權。由於下列原因，您需要此服務：
  + 您可以將 Oracle 安裝檔案上傳到 S3 儲存貯體。建立 RDS Custom CEV 時，您可以使用上傳的安裝檔案。
  + RDS Custom for Oracle 使用從內部定義 S3 儲存貯體下載的指令碼，對資料庫執行個體執行動作。加入動作和 RDS Custom 自動化需要這些指令碼。
  + RDS Custom for Oracle 會將特定檔案上傳到您客戶帳戶中的 S3 儲存貯體。這些儲存貯體使用以下命名格式：`do-not-delete-rds-custom-`*account\$1id*-*region*-*uuid*。例如，您可能會有名為 `do-not-delete-rds-custom-123456789012-us-east-1-12a3b4` 的儲存貯體。

  如需詳細資訊，請參閱[步驟 3：將您的安裝檔案上傳到 Amazon S3](custom-cev.preparing.md#custom-cev.preparing.s3)及[建立 CEV](custom-cev.create.md)。
+ 您可以使用 [RDS Custom for Oracle 的資料庫執行個體類別支援](custom-oracle-feature-support.md#custom-reqs-limits.instances) 中列出的資料庫執行個體類別來建立 RDS Custom for Oracle 資料庫執行個體。
+ 您的 RDS Custom for Oracle 資料庫執行個體執行 Oracle Linux 8 (建議) 或 Oracle Linux 7。如果您需要 Oracle Linux 7，請聯絡 支援。如需詳細資訊，請參閱[RDS Custom for Oracle 資料庫升級的考量](custom-upgrading-considerations.md)。
+ 您要指定用於 Amazon EBS 儲存的 gp2、gp3 或 io1 固態硬碟。儲存大小上限為 64 TiB。
+ 您有 AWS KMS 金鑰可建立 RDS Custom for Oracle 資料庫執行個體。如需詳細資訊，請參閱[步驟 1：建立或重複使用對稱加密 AWS KMS 金鑰](custom-setup-orcl.md#custom-setup-orcl.cmk)。
+ 您有建立 RDS Custom for Oracle 資料庫執行個體所需的 AWS Identity and Access Management (IAM) 角色和執行個體描述檔。如需詳細資訊，請參閱[步驟 4：設定 RDS Custom for Oracle 的 IAM](custom-setup-orcl.md#custom-setup-orcl.iam-vpc)。
+ 建立 CEV 或 RDS Custom 資料庫執行個體的 AWS Identity and Access Management (IAM) 使用者具有 IAM、CloudTrail 和 Amazon S3 的必要許可。

  如需詳細資訊，請參閱[步驟 5：將所需的許可授予您的 IAM 使用者或角色](custom-setup-orcl.md#custom-setup-orcl.iam-user)。
+ 您可以提供您自己的 Virtual Private Cloud (VPC) 和安全群組組態。如需詳細資訊，請參閱[步驟 6：設定 RDS Custom for Oracle 的 VPC](custom-setup-orcl.md#custom-setup-orc.vpc-config)。
+ 您要提供 RDS Custom for Oracle 可以用來存取其他 AWS 服務的網路組態。如需特定需求，請參閱 [步驟 4：設定 RDS Custom for Oracle 的 IAM](custom-setup-orcl.md#custom-setup-orcl.iam-vpc)。

## RDS Custom for Oracle 的一般限制
<a name="custom-reqs-limits.limits"></a>

下列限制適用於 RDS Custom for Oracle：
+ 您無法修改適用於 Oracle 資料庫執行個體的現有 RDS Custom 資料庫執行個體識別碼。
+ 您無法為 Oracle Database 19c 以外的任何版本指定 Oracle 多租戶架構。
+ 您無法在單一 RDS Custom for Oracle 資料庫執行個體上建立多個 Oracle 資料庫。
+ 您無法停止 RDS Custom for Oracle 資料庫執行個體或其基礎 Amazon EC2 執行個體。無法停止 RDS Custom for Oracle 資料庫執行個體的計費。
+ 您無法使用自動共用記憶體管理，因為 RDS Custom for Oracle 僅支援自動記憶體管理。如需詳細資訊，請參閱《Oracle 資料庫管理員指南》**中的[自動記憶體管理](https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/managing-memory.html#GUID-04EFED7D-D1F1-43C3-B78F-0FF9AFAC02B0)。
+ 務必不要變更主要資料庫執行個體的 `DB_UNIQUE_NAME`。變更名稱會導致任何還原操作停滯。
+ 您無法在同一區域中同時製作超過 20 個快照複本。
+ 您無法使用 RDS Custom for Oracle 資料庫執行個體的 `describe-reserved-db-instances` API。

如需修改 RDS Custom for Oracle 資料庫執行個體的特有限制，請參閱 [修改您的 RDS Custom for Oracle 資料庫執行個體](custom-managing.modifying.md)。如需複寫限制，請參閱 [RDS Custom for Oracle 複本的一般限制](custom-rr.reqs-limitations.md#custom-rr.limitations)。

## RDS Custom for Oracle 的 CEV 和 AMI 限制
<a name="custom-reqs-limits.cev-limits"></a>

下列限制適用於 RDS Custom for Oracle CEV 和 AMI：
+ 您無法提供自己的 AMI 以在 RDS Custom for Oracle CEV 中使用。您可以指定使用 Oracle Linux 8 的預設 AMI，或 RDS Custom for Oracle CEV 先前使用的 AMI。
**注意**  
發現常見漏洞和暴露時，RDS Custom for Oracle 會發行新的預設 AMI。無固定排程可用或保證。RDS Custom for Oracle 傾向於每 30 天發布新的預設 AMI。
+ 您無法修改 CEV 以使用不同的 AMI。
+ 您無法從使用 `custom-oracle-ee` 或 `custom-oracle-se2` 引擎類型的 CEV 建立 CDB 執行個體。CEV 必須使用 `custom-oracle-ee-cdb` 或 `custom-oracle-se2-cdb`。
+ RDS Custom for Oracle 目前不允許您使用 RDS API 呼叫來升級 RDS Custom for Oracle 資料庫執行個體的作業系統。作為解決方法，您可以使用下列命令手動更新作業系統：`sudo yum update --security`。

## 建立及修改工作流程的不支援設定
<a name="custom-reqs-limits.unsupported-settings"></a>

建立或修改 RDS Custom for Oracle 資料庫執行個體時，請務必執行下列動作：
+ 變更資料庫執行個體類別中每個核心的 CPU 核心數量和每個核心的執行緒數量。
+ 開啟儲存體自動擴展。
+ 將備份保留設定為 `0`。
+ 設定 Kerberos 身分驗證。
+ 指定您自己的資料庫參數群組或選項群組。
+ 開啟績效詳情。
+ 開啟自動次要版本升級。

## 您 的資料庫執行個體配額 AWS 帳戶
<a name="custom-reqs-limits.quotas"></a>

確保 RDS Custom 和 Amazon RDS 資料庫執行個體的合併數量不超過您的配額限制。例如，如果您的 Amazon RDS 配額為 40 個資料庫執行個體，則可以擁有 20 個 RDS Custom for Oracle 資料庫執行個體和 20 個 Amazon RDS 資料庫執行個體。

# 設定您的 Amazon RDS Custom for Oracle 的環境
<a name="custom-setup-orcl"></a>

在建立 Amazon RDS Custom for Oracle 資料庫執行個體之前，請執行下列任務。

**Topics**
+ [步驟 1：建立或重複使用對稱加密 AWS KMS 金鑰](#custom-setup-orcl.cmk)
+ [步驟 2：下載並安裝 AWS CLI](#custom-setup-orcl.cli)
+ [步驟 3：擷取 RDS Custom for Oracle 的 CloudFormation 範本](#custom-setup-orcl.cf.downloading)
+ [步驟 4：設定 RDS Custom for Oracle 的 IAM](#custom-setup-orcl.iam-vpc)
+ [步驟 5：將所需的許可授予您的 IAM 使用者或角色](#custom-setup-orcl.iam-user)
+ [步驟 6：設定 RDS Custom for Oracle 的 VPC](#custom-setup-orc.vpc-config)

## 步驟 1：建立或重複使用對稱加密 AWS KMS 金鑰
<a name="custom-setup-orcl.cmk"></a>

*客戶受管金鑰* AWS KMS keys 位於您建立、擁有和管理的 AWS 帳戶中。RDS Custom 需要客戶受管對稱加密 KMS 金鑰。建立 RDS Custom for Oracle 資料庫執行個體時，您要提供 KMS 金鑰識別符。如需詳細資訊，請參閱[設定 Amazon RDS Custom for Oracle 的資料庫執行個體](custom-creating.md)。

您有下列選項：
+ 如果您的 中有現有的客戶受管 KMS 金鑰 AWS 帳戶，您可以搭配 RDS Custom 使用。無需採取進一步動作。
+ 若您已為不同的 RDS Custom 引擎建立客戶受管對稱加密 KMS 金鑰，您可以重複使用相同的 KMS 金鑰。無需採取進一步動作。
+ 若您的帳戶中並無現有的客戶受管對稱加密 KMS 金鑰，請藉由遵循《AWS Key Management Service 開發人員指南》**中的[建立金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)來建立 KMS 金鑰。
+ 如果您要建立 CEV 或 RDS Custom 資料庫執行個體，且 KMS 金鑰位於不同的 AWS 帳戶中，請務必使用 AWS CLI。您無法搭配跨帳戶 KMS 金鑰使用 AWS 主控台。

**重要**  
RDS Custom 不支援 AWS 受管 KMS 金鑰。

請確定您的對稱加密金鑰將 `kms:Decrypt`和 `kms:GenerateDataKey`操作的存取權授予 IAM 執行個體描述檔中的 AWS Identity and Access Management (IAM) 角色。若您的帳戶中有新的對稱加密金鑰，則不需要變更。否則，請確定對稱加密金鑰政策授予這些操作的存取權。

如需詳細資訊，請參閱[步驟 4：設定 RDS Custom for Oracle 的 IAM](#custom-setup-orcl.iam-vpc)。

如需設定 RDS Custom for Oracle 的 IAM 的相關詳細資訊，請參閱 [步驟 4：設定 RDS Custom for Oracle 的 IAM](#custom-setup-orcl.iam-vpc)。

## 步驟 2：下載並安裝 AWS CLI
<a name="custom-setup-orcl.cli"></a>

AWS 為您提供命令列界面來使用 RDS Custom 功能。您可以使用 AWS CLI的第 1 版或第 2 版。

如需下載和安裝 的資訊 AWS CLI，請參閱[安裝或更新最新版本的 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

如果以下任一情況屬實，請略過此步驟：
+ 您計劃只從 存取 RDS Custom AWS 管理主控台。
+ 您已下載 AWS CLI 適用於 Amazon RDS 的 或不同的 RDS Custom 資料庫引擎。

## 步驟 3：擷取 RDS Custom for Oracle 的 CloudFormation 範本
<a name="custom-setup-orcl.cf.downloading"></a>

為了簡化設定，強烈建議您使用 CloudFormation 範本來建立 CloudFormation 堆疊。如果您打算手動設定 IAM 和 VPC，請略過此步驟。

**Topics**
+ [步驟 3a：下載 CloudFormation 範本檔案](#custom-setup-orcl.cf.dl-templates)
+ [步驟 3b：擷取 custom-oracle-iam.json](#custom-setup-orcl.cf.downloading.ca-role)
+ [步驟 3c：擷取 custom-vpc.json](#custom-setup-orcl.cf.downloading.ca-pn)

### 步驟 3a：下載 CloudFormation 範本檔案
<a name="custom-setup-orcl.cf.dl-templates"></a>

CloudFormation 範本是形成堆疊之 AWS 資源的宣告。範本會儲存為 JSON 檔案。

**下載 CloudFormation 範本檔案**

1. 開啟連結 [custom-oracle-iam.zip](samples/custom-oracle-iam.zip) 的內容 (滑鼠右鍵) 功能表，然後選擇 **Save Link As** (另存連結為)。

1. 將檔案儲存到您的電腦。

1. 針對連結 [custom-vpc.zip](samples/custom-vpc.zip) 重複先前的步驟。

   如果您已經為 RDS Custom 設定 VPC，請略過這個步驟。

### 步驟 3b：擷取 custom-oracle-iam.json
<a name="custom-setup-orcl.cf.downloading.ca-role"></a>

開啟您下載的 `custom-oracle-iam.zip` 檔案，然後解壓縮檔案 `custom-oracle-iam.json`。檔案的開頭如下所示。

```
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Parameters": {
    "EncryptionKey": {
      "Type": "String",
      "Default": "*",
      "Description": "KMS Key ARN for encryption of data managed by RDS Custom and by DB Instances."
    }
  },
  "Resources": {
    "RDSCustomInstanceServiceRole": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "RoleName": { "Fn::Sub": "AWSRDSCustomInstanceRole-${AWS::Region}" },
        "AssumeRolePolicyDocument": {
          "Version": "2012-10-17",		 	 	 
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": "ec2.amazonaws.com"
              }
            }
          ]
        },...
```

### 步驟 3c：擷取 custom-vpc.json
<a name="custom-setup-orcl.cf.downloading.ca-pn"></a>

**注意**  
如果您已經為 RDS Custom for Oracle 設定現有的 VPC，請略過這個步驟。如需詳細資訊，請參閱[為 RDS Custom for Oracle 手動設定 VPC](#custom-setup-orcl.vpc)。

開啟您下載的 `custom-vpc.zip` 檔案，然後解壓縮檔案 `custom-vpc.json`。檔案的開頭如下所示。

```
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Parameters": {
    "PrivateVpc": {
      "Type": "AWS::EC2::VPC::Id",
      "Description": "Private VPC Id to use for RDS Custom DB Instances"
    },
    "PrivateSubnets": {
      "Type": "List<AWS::EC2::Subnet::Id>",
      "Description": "Private Subnets to use for RDS Custom DB Instances"
    },
    "RouteTable": {
      "Type": "String",
      "Description": "Route Table that must be associated with the PrivateSubnets and used by S3 VPC Endpoint",
      "AllowedPattern": "rtb-[0-9a-z]+"
    }
  },
  "Resources": {
    "DBSubnetGroup": {
      "Type": "AWS::RDS::DBSubnetGroup",
      "Properties": {
        "DBSubnetGroupName": "rds-custom-private",
        "DBSubnetGroupDescription": "RDS Custom Private Network",
        "SubnetIds": {
          "Ref": "PrivateSubnets"
        }
      }
    },...
```

## 步驟 4：設定 RDS Custom for Oracle 的 IAM
<a name="custom-setup-orcl.iam-vpc"></a>

您透過主控台或 AWS CLI，使用 IAM 角色或 IAM 使用者 (也稱為 IAM 實體)，來建立 RDS Custom 資料庫執行個體。此 IAM 實體必須擁有執行個體建立的必要許可。

您可以使用 CloudFormation 或手動步驟來設定 IAM。

**重要**  
我們強烈建議您使用 設定 RDS Custom for Oracle 環境 CloudFormation。這是最簡單且最不容易出錯的方法。

**Topics**
+ [使用 CloudFormation 設定 IAM](#custom-setup-orcl.cf.config-iam)
+ [手動建立 IAM 角色和執行個體設定檔](#custom-setup-orcl.iam)

### 使用 CloudFormation 設定 IAM
<a name="custom-setup-orcl.cf.config-iam"></a>

當您針對 IAM 使用 CloudFormation 範本時，會建立下列必要資源：
+ 名為 `AWSRDSCustomInstanceProfile-region` 的執行個體設定檔
+ 名為 `AWSRDSCustomInstanceRole-region` 的服務角色
+ 名為 `AWSRDSCustomIamRolePolicy` 且連接至服務角色的存取政策

**若要使用 CloudFormation 設定 IAM**

1. 在 https：//[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) 開啟 CloudFormation 主控台。

1. 啟動「建立堆疊」精靈，然後選擇 **Create Stack** (建立堆疊)。

1. 在 **Create stack** (建立堆疊) 頁面上，執行下列動作：

   1. 針對 **Prepare template** (準備範本)，選擇 **Template is ready** (範本已就緒)。

   1. 針對 **Template source** (範本來源)，選擇 **Upload a template file** (上傳範本檔案)。

   1. 在**選擇檔案**中，導覽並選擇 **custom-oracle-iam.json**。

   1. 選擇**下一步**。

1. 在 **Specify stack details** (指定堆疊詳細資訊) 頁面上，執行下列操作：

   1. 針對**堆疊名稱** 輸入 **custom-oracle-iam**。

   1. 選擇**下一步**。

1. 在 **Configure stack options** (設定堆疊選項) 頁面，選擇 **Next** (下一步)。

1. 在 **Review custom-oracle-iam** (檢閱 custom-oracle-iam) 頁面上，執行下列操作：

   1. 選取 ****I acknowledge that CloudFormation might create IAM resources with custom names**** (確認 CloudFormation 可能使用自訂名稱建立 IAM 資源) 核取方塊。

   1. 選擇**提交**。

   CloudFormation 會建立 RDS Custom for Oracle 需要的 IAM 角色。在左側面板中，當 **custom-oracle-iam** 顯示 **CREATE\$1COMPLETE** 時，請繼續執行下一個步驟。

1. 在左側面板中，選擇 **custom-oracle-iam**。在右側面板中，執行下列作業：

   1. 選擇**堆疊資訊**。您的堆疊具有格式為 **arn:aws:cloudformation:*region*:*account-no*:stack/custom-oracle-iam/*identifier*** 的 ID。

   1. 選擇**資源**。請查看下列事項：
      + 名為 **AWSRDSCustomInstanceProfile-*region*** 的執行個體設定檔
      + 名為 **AWSRDSCustomInstanceRole-*region*** 的服務角色

      建立 RDS Custom 資料庫執行個體時，您必須提供執行個體設定檔 ID。

### 手動建立 IAM 角色和執行個體設定檔
<a name="custom-setup-orcl.iam"></a>

使用 CloudFormation 進行設定是最簡單的方式。或者，您也可以手動設定 IAM。針對手動設定，請執行下列動作：
+ [步驟 1：建立 IAM 角色 AWSRDSCustomInstanceRoleForRdsCustomInstance](#custom-setup-orcl.iam.create-role).
+ [步驟 2：將存取政策新增至 AWSRDSCustomInstanceRoleForRdsCustomInstance](#custom-setup-orcl.iam.add-policy).
+ [步驟 2：將存取政策新增至 AWSRDSCustomInstanceRoleForRdsCustomInstance](#custom-setup-orcl.iam.create-profile).
+ [步驟 4：將 AWSRDSCustomInstanceRoleForRdsCustomInstance 新增至 AWSRDSCustomInstanceProfile](#custom-setup-orcl.iam.add-profile).

#### 步驟 1：建立 IAM 角色 AWSRDSCustomInstanceRoleForRdsCustomInstance
<a name="custom-setup-orcl.iam.create-role"></a>

在此步驟中，您可以使用命名格式 `AWSRDSCustomInstanceRole-region` 來建立角色。使用信任政策，Amazon EC2 可以擔任角色。下列範例假設您已將環境變數 `$REGION` 設為 AWS 區域 ，且您要在其中建立資料庫執行個體。

```
aws iam create-role \
  --role-name AWSRDSCustomInstanceRole-$REGION \
  --assume-role-policy-document '{
    "Version": "2012-10-17",		 	 	 
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
              "Service": "ec2.amazonaws.com"
          }
        }
      ]
    }'
```

#### 步驟 2：將存取政策新增至 AWSRDSCustomInstanceRoleForRdsCustomInstance
<a name="custom-setup-orcl.iam.add-policy"></a>

當您在 IAM 角色中內嵌內遷政策時，內嵌政策會用來做為角色存取 (許可) 政策的一部分。您可以建立 `AWSRDSCustomIamRolePolicy` 政策，允許 Amazon EC2 傳送和接收訊息以及執行各種動作。

下列範例會建立名為 `AWSRDSCustomIamRolePolicy` 的存取政策，並將其新增至 IAM 角色 `AWSRDSCustomInstanceRole-region`。此範例假設您已設定下列環境變數：

`$REGION`  
將此變數設定為您計劃在 AWS 區域 其中建立資料庫執行個體的 。

`$ACCOUNT_ID`  
將此變數設定為您的 AWS 帳戶 數字。

`$KMS_KEY`  
將此變數設為 AWS KMS key 的 Amazon Resource Name (ARN)，您想要用於 RDS Custom 資料庫執行個體。若要指定一個以上的 KMS 金鑰，請將它新增至陳述式 ID (Sid) 11 的 `Resources` 區段。

```
aws iam put-role-policy \
  --role-name AWSRDSCustomInstanceRole-$REGION \
  --policy-name AWSRDSCustomIamRolePolicy \
  --policy-document '{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Action": [
                "ssm:DescribeAssociation",
                "ssm:GetDeployablePatchSnapshotForInstance",
                "ssm:GetDocument",
                "ssm:DescribeDocument",
                "ssm:GetManifest",
                "ssm:GetParameter",
                "ssm:GetParameters",
                "ssm:ListAssociations",
                "ssm:ListInstanceAssociations",
                "ssm:PutInventory",
                "ssm:PutComplianceItems",
                "ssm:PutConfigurePackageResult",
                "ssm:UpdateAssociationStatus",
                "ssm:UpdateInstanceAssociationStatus",
                "ssm:UpdateInstanceInformation",
                "ssm:GetConnectionStatus",
                "ssm:DescribeInstanceInformation",
                "ssmmessages:CreateControlChannel",
                "ssmmessages:CreateDataChannel",
                "ssmmessages:OpenControlChannel",
                "ssmmessages:OpenDataChannel"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "2",
            "Effect": "Allow",
            "Action": [
                "ec2messages:AcknowledgeMessage",
                "ec2messages:DeleteMessage",
                "ec2messages:FailMessage",
                "ec2messages:GetEndpoint",
                "ec2messages:GetMessages",
                "ec2messages:SendReply"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "3",
            "Effect": "Allow",
            "Action": [
                "logs:PutRetentionPolicy",
                "logs:PutLogEvents",
                "logs:DescribeLogStreams",
                "logs:DescribeLogGroups",
                "logs:CreateLogStream",
                "logs:CreateLogGroup"
            ],
            "Resource": [
                "arn:aws:logs:'$REGION':'$ACCOUNT_ID':log-group:rds-custom-instance*"
            ]
        },
        {
            "Sid": "4",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::do-not-delete-rds-custom-*/*"
            ]
        },
        {
            "Sid": "5",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:PutMetricData"
            ],
            "Resource": [
                "*"
            ],
            "Condition": {
                "StringEquals": {
                    "cloudwatch:namespace": [
                        "RDSCustomForOracle/Agent"
                    ]
                }
            }
        },
        {
            "Sid": "6",
            "Effect": "Allow",
            "Action": [
                "events:PutEvents"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "7",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue",
                "secretsmanager:DescribeSecret"
            ],
            "Resource": [
                "arn:aws:secretsmanager:'$REGION':'$ACCOUNT_ID':secret:do-not-delete-rds-custom-*",
                "arn:aws:secretsmanager:'$REGION':'$ACCOUNT_ID':secret:rds-custom!oracle-do-not-delete-*"
            ]
        },
        {
           "Sid": "8",
           "Effect": "Allow",
           "Action": [
             "s3:ListBucketVersions"
           ],
           "Resource": [
             "arn:aws:s3:::do-not-delete-rds-custom-*"
           ]
         },
         {
            "Sid": "9",
            "Effect": "Allow",
            "Action": "ec2:CreateSnapshots",
            "Resource": [
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:volume/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/AWSRDSCustom": "custom-oracle"
                }
            }
          },
          {
            "Sid": "10",
            "Effect": "Allow",
            "Action": "ec2:CreateSnapshots",
            "Resource": [
                "arn:aws:ec2:*::snapshot/*"
            ]
          },
          {
            "Sid": "11",
            "Effect": "Allow",
            "Action": [
              "kms:Decrypt",
              "kms:GenerateDataKey"
            ],
            "Resource": [
              "arn:aws:kms:'$REGION':'$ACCOUNT_ID':key/'$KMS_KEY'"
            ]
          },
          {
            "Sid": "12",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "ec2:CreateAction": [
                        "CreateSnapshots"
                    ]
                }
            }
        },
        {
            "Sid": "13",
            "Effect": "Allow",
            "Action": [
                "sqs:SendMessage",
                "sqs:ReceiveMessage",
                "sqs:DeleteMessage",
                "sqs:GetQueueUrl"
            ],
            "Resource": "arn:aws:sqs:'$REGION':'$ACCOUNT_Id':do-not-delete-rds-custom-*",
            "Condition": {
                "StringLike": {
                    "aws:ResourceTag/AWSRDSCustom": "custom-oracle"
                }
            }
        }
    ]
}'
```

#### 步驟 3：建立 RDS Custom 執行個體設定檔 AWSRDSCustomInstanceProfile
<a name="custom-setup-orcl.iam.create-profile"></a>

執行個體設定檔是包含單一 IAM 角色的容器。RDS Custom 會使用執行個體設定檔，將角色傳遞到執行個體。

如果您使用 CLI 建立角色，則建立角色與執行個體設定檔為不同動作，且可以使用不同名稱。依照下列方式建立 IAM 執行個體設定檔，並以格式 `AWSRDSCustomInstanceProfile-region` 命名。下列範例假設您已將環境變數設定為要在 AWS 區域 其中建立資料庫執行個體`$REGION`的 。

```
aws iam create-instance-profile \
    --instance-profile-name AWSRDSCustomInstanceProfile-$REGION
```

#### 步驟 4：將 AWSRDSCustomInstanceRoleForRdsCustomInstance 新增至 AWSRDSCustomInstanceProfile
<a name="custom-setup-orcl.iam.add-profile"></a>

將 IAM 角色新增至先前建立的執行個體設定檔。下列範例假設您已將環境變數設定為要在 AWS 區域 其中建立資料庫執行個體`$REGION`的 。

```
aws iam add-role-to-instance-profile \
    --instance-profile-name AWSRDSCustomInstanceProfile-$REGION \
    --role-name AWSRDSCustomInstanceRole-$REGION
```

## 步驟 5：將所需的許可授予您的 IAM 使用者或角色
<a name="custom-setup-orcl.iam-user"></a>

確保建立 CEV 或 RDS Custom 資料庫執行個體的 IAM 主體 (使用者或角色) 具有以下其中一個政策：
+ `AdministratorAccess` 政策
+ 具有 Amazon S3 和 AWS KMS、CEV 建立和資料庫執行個體建立所需許可`AmazonRDSFullAccess`的政策

**Topics**
+ [Amazon S3 和 所需的 IAM 許可 AWS KMS](#custom-setup-orcl.s3-kms)
+ [建立 CEV 所需的 IAM 許可](#custom-setup-orcl.cev)
+ [從 CEV 建立資料庫執行個體所需的 IAM 許可](#custom-setup-orcl.db)

### Amazon S3 和 所需的 IAM 許可 AWS KMS
<a name="custom-setup-orcl.s3-kms"></a>

若要建立 CEV 或 RDS Custom for Oracle 資料庫執行個體，您的 IAM 主體需要存取 Amazon S3 和 AWS KMS。以下範例 JSON 政策授予必要許可。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateS3Bucket",
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:PutBucketPolicy",
                "s3:PutBucketObjectLockConfiguration",
                "s3:PutBucketVersioning"
            ],
            "Resource": "arn:aws:s3:::do-not-delete-rds-custom-*"
        },
        {
            "Sid": "CreateKmsGrant",
            "Effect": "Allow",
            "Action": [
                "kms:CreateGrant",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        }
    ]
}
```

------

如需 `kms:CreateGrant` 許可的詳細資訊，請參閱 [AWS KMS key 管理](Overview.Encryption.Keys.md)。

### 建立 CEV 所需的 IAM 許可
<a name="custom-setup-orcl.cev"></a>

若要建立 CEV，您的 IAM 主體需要以下額外許可：

```
s3:GetObjectAcl
s3:GetObject
s3:GetObjectTagging
s3:ListBucket
mediaimport:CreateDatabaseBinarySnapshot
```

以下範例 JSON 政策授予額外的必要許可，以存取儲存貯體 *my-custom-installation-files* 及其內容。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AccessToS3MediaBucket",
            "Effect": "Allow",
            "Action": [
                "s3:GetObjectAcl",
                "s3:GetObject",
                "s3:GetObjectTagging",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::my-custom-installation-files",
                "arn:aws:s3:::my-custom-installation-files/*"
            ]
        },
        {
            "Sid": "PermissionForByom",
            "Effect": "Allow",
            "Action": [
                "mediaimport:CreateDatabaseBinarySnapshot"
            ],
            "Resource": "*"
        }
    ]
}
```

------

您可以使用 S3 儲存貯體政策，將 Amazon S3 的類似許可授予呼叫者的帳戶。

### 從 CEV 建立資料庫執行個體所需的 IAM 許可
<a name="custom-setup-orcl.db"></a>

若要從現有 CEV 建立 RDS Custom for Oracle 資料庫執行個體，IAM 主體需要下列額外許可。

```
iam:SimulatePrincipalPolicy
cloudtrail:CreateTrail
cloudtrail:StartLogging
```

下列範例 JSON 政策授予 AWS CloudTrail驗證 IAM 角色和日誌資訊所需的必要許可。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ValidateIamRole",
            "Effect": "Allow",
            "Action": "iam:SimulatePrincipalPolicy",
            "Resource": "*"
        },
        {
            "Sid": "CreateCloudTrail",
            "Effect": "Allow",
            "Action": [
                "cloudtrail:CreateTrail",
                "cloudtrail:StartLogging"
            ],
            "Resource": "arn:aws:cloudtrail:*:*:trail/do-not-delete-rds-custom-*"
        }
    ]
}
```

------

## 步驟 6：設定 RDS Custom for Oracle 的 VPC
<a name="custom-setup-orc.vpc-config"></a>

根據 Amazon VPC 服務，您的 RDS Custom 資料庫執行個體位於虛擬私有雲端 (VPC)，就像是 Amazon EC2 執行個體或 Amazon RDS 執行個體。您可以提供和設定您自己的 VPC。與 RDS Custom for SQL Server 不同，RDS Custom for Oracle 不會建立存取控制清單或安全群組。您必須連接自己的安全群組、子網路和路由表。

您可以使用 CloudFormation 或手動程序來設定虛擬私有雲端 (VPC)。

**重要**  
我們強烈建議您使用 設定 RDS Custom for Oracle 環境 CloudFormation。這是最簡單且最不容易出錯的方法。

**Topics**
+ [使用 CloudFormation 設定 VPC (建議)](#custom-setup-orcl.cf.config-vpc)
+ [為 RDS Custom for Oracle 手動設定 VPC](#custom-setup-orcl.vpc)

### 使用 CloudFormation 設定 VPC (建議)
<a name="custom-setup-orcl.cf.config-vpc"></a>

若您已經為不同的 RDS Custom 引擎設定 VPC，且要重複使用現有 VPC，請略過此步驟。此區段假設如下：
+ 您已經使用 CloudFormation 建立您的 IAM 執行個體設定檔和角色。
+ 您知道您的路由表 ID。

  若要私有化資料庫執行個體，其須位於私有子網路。若要私有化子網路，則其不能與具有預設網際網路閘道的路由表相關聯。如需詳細資訊，請參閱 *Amazon VPC 使用者指南*中的[設定路由表](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html)。

當您針對 VPC 使用 CloudFormation 範本時，會建立下列資源：
+ 私有 VPC
+ 名為 `rds-custom-private` 的子網路群組
+ 資料庫執行個體用來與相依 AWS 服務通訊時，必須具有下列 VPC 端點：
  + `com.amazonaws.region.ec2messages`
  + `com.amazonaws.region.events`
  + `com.amazonaws.region.logs`
  + `com.amazonaws.region.monitoring`
  + `com.amazonaws.region.s3`
  + `com.amazonaws.region.secretsmanager`
  + `com.amazonaws.region.ssm`
  + `com.amazonaws.region.ssmmessages`

  如果您要建立多可用區域部署：
  + `com.amazonaws.region.sqs`
**注意**  
對於具有現有帳戶的複雜聯網設定，如果存取尚未存在，建議您手動設定相依服務的存取。如需詳細資訊，請參閱[確保您的 VPC 可以存取相依性 AWS 服務](#custom-setup-orcl.vpc.endpoints)。

**若要使用 CloudFormation 設定 VPC**

1. 開啟位於 https：//[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) 的 CloudFormation 主控台。

1. 啟動「建立堆疊」精靈，選擇**建立堆疊**，然後選擇**使用新資源 (標準)**。

1. 在 **Create stack** (建立堆疊) 頁面上，執行下列動作：

   1. 針對 **Prepare template** (準備範本)，選擇 **Template is ready** (範本已就緒)。

   1. 針對 **Template source** (範本來源)，選擇 **Upload a template file** (上傳範本檔案)。

   1. 針對 **Choose file** (選擇檔案)，導覽並選擇 `custom-vpc.json`。

   1. 選擇**下一步**。

1. 在 **Specify stack details** (指定堆疊詳細資訊) 頁面上，執行下列操作：

   1. 針對**堆疊名稱** 輸入 **custom-vpc**。

   1. 針對 **Parameters** (參數)，選擇要用於 RDS Custom 資料庫執行個體的私有子網路。

   1. 選擇要用於 RDS Custom 資料庫執行個體的私有 VPC ID。

   1. 輸入與私有子網路相關聯的路由表。

   1. 選擇**下一步**。

1. 在 **Configure stack options** (設定堆疊選項) 頁面，選擇 **Next** (下一步)。

1. 在**檢閱 custom-vpc** 頁面上，選擇**提交**。

   CloudFormation 會設定您的私有 VPC。在左側面板中，當 **custom-vpc** 顯示 **CREATE\$1COMPLETE** 時，請繼續執行下一個步驟。

1. (選用) 檢閱私有 VPC 的詳細資訊。在**堆疊**窗格中，選擇 **custom-vpc**。在右側窗格中，執行下列作業：

   1. 選擇**堆疊資訊**。您的堆疊具有格式為 **arn:aws:cloudformation:*region*:*account-no*:stack/custom-vpc/*identifier*** 的 ID。

   1. 選擇**資源**。您應該會看到名為 **rds-custom-private** 的子網路群組，以及多個使用 **vpce-*string*** 命名格式的 VPC 端點。每個端點對應至 RDS Custom 需要與 AWS 服務 之通訊的 。如需詳細資訊，請參閱[確保您的 VPC 可以存取相依性 AWS 服務](#custom-setup-orcl.vpc.endpoints)。

   1. 選擇**參數**。您應該會看到私有子網路、私有 VPC 和您在建立堆疊時指定的路由表。在建立資料庫執行個體時，您需要提供 VPC ID 和子網路群組。

### 為 RDS Custom for Oracle 手動設定 VPC
<a name="custom-setup-orcl.vpc"></a>

除了使用 自動建立 VPC 之外 CloudFormation，您也可以手動設定 VPC。當您擁有使用現有資源的複雜聯網設定時，這可能是最佳選項。

**Topics**
+ [確保您的 VPC 可以存取相依性 AWS 服務](#custom-setup-orcl.vpc.endpoints)
+ [設定個體中繼資料服務](#custom-setup-orcl.vpc.imds)

#### 確保您的 VPC 可以存取相依性 AWS 服務
<a name="custom-setup-orcl.vpc.endpoints"></a>

RDS Custom 會將通訊從您的資料庫執行個體傳送到其他 AWS 服務。請確定可從您建立 RDS Custom 資料庫執行個體的子網路存取下列服務：
+ Amazon CloudWatch (`com.amazonaws.region.monitoring`)
+ Amazon CloudWatch Logs (`com.amazonaws.region.logs`)
+ Amazon CloudWatch Events (`com.amazonaws.region.events`)
+ Amazon EC2 (`com.amazonaws.region.ec2` 和 `com.amazonaws.region.ec2messages`)
+ Amazon S3 (`com.amazonaws.region.s3`)
+ AWS Secrets Manager (`com.amazonaws.region.secretsmanager`)
+ AWS Systems Manager (`com.amazonaws.region.ssm` 和 `com.amazonaws.region.ssmmessages`)

若建立多可用區域部署
+ Amazon Simple Queue Service (`com.amazonaws.region.sqs`)

如果 RDS Custom 無法與必要服務進行通訊，則會發佈下列事件：

```
Database instance in incompatible-network. SSM Agent connection not available. Amazon RDS can't connect to the dependent AWS services.
```

```
Database instance in incompatible-network. Amazon RDS can't connect to dependent AWS services. Make sure port 443 (HTTPS) allows outbound connections, and try again. "Failed to connect to the following services: s3 events"
```

若要避免`incompatible-network`錯誤，請確定涉及 RDS Custom 資料庫執行個體之間通訊的 VPC 元件，並 AWS 服務 滿足下列要求：
+ 資料庫執行個體會在連接埠 443 上對其他 AWS 服務進行傳出連線。
+ VPC 允許對來自您 RDS Custom 資料庫執行個體的請求進行傳入回應。
+ RDS Custom 可以正確解析每個 AWS 服務的端點網域名稱。

若您已經為不同的 RDS Custom 資料庫引擎設定 VPC，您可重複使用該 VPC 並略過此程序。

#### 設定個體中繼資料服務
<a name="custom-setup-orcl.vpc.imds"></a>

請確定您的執行個體可以執行下列操作：
+ 使用執行個體中繼資料服務版本 2 (IMDSv2) 存取執行個體中繼資料服務。
+ 允許透過連接埠 80 (HTTP) 與 IMDS 連結 IP 地址進行傳出通訊。
+ 從 `http://169.254.169.254` (IMDSv2 連結) 要求執行個體中繼資料。

如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的[使用 IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)。

RDS Custom for Oracle 自動化預設會藉由在基礎 Amazon EC2 執行個體上設定 `HttpTokens=enabled` 來使用 IMDSv2。不過，您也可以根據需要使用 IMDSV1。如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的[設定執行個體中繼資料選項](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html)。

# 使用 Amazon RDS Custom for Oracle 的自訂引擎版本
<a name="custom-cev"></a>

Amazon RDS Custom for Oracle 的*自訂引擎版本 (CEV)* 是資料庫引擎和特定 Amazon Machine Image (AMI) 的二進位磁碟區快照。根據預設，RDS Custom for Oracle 會使用 RDS Custom 管理的最新可用 AMI，但您可以指定舊的 CEV 中使用的 AMI。您可以將資料庫安裝檔案存放在 Amazon S3 中。RDS Custom 會使用安裝檔案和 AMI，為您建立 CEV。

**Topics**
+ [準備建立 CEV](custom-cev.preparing.md)
+ [建立 CEV](custom-cev.create.md)
+ [修改 CEV 狀態](custom-cev.modify.md)
+ [檢視 Amazon RDS Custom for Oracle 的 CEV 詳細資訊](custom-cev.view.md)
+ [刪除 CEV](custom-cev.delete.md)

# 準備建立 CEV
<a name="custom-cev.preparing"></a>

若要建立 CEV，請存取存放在 Amazon S3 儲存貯體中任何下列版本的安裝檔案和修補程式：
+ Oracle 資料庫 19c
+ Oracle 資料庫 18c
+ Oracle 資料庫 12c 版本 2 (12.2)
+ Oracle 資料庫 12c 版本 1 (12.1)

例如，您可以對 Oracle 資料庫使用 19c 的 2021 年 4 月版 RU/RUR，或任何有效的安裝檔案和修補程式組合。如需 RDS Custom for Oracle 所支援版本和區域的詳細資訊，請參閱[搭配 RDS for Oracle 的 RDS Custom](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.html#Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.ora)。

**Topics**
+ [步驟 1 (選用)：下載清單檔案範本](#custom-cev.preparing.templates)
+ [步驟 2：從 Oracle Software Delivery Cloud 下載資料庫安裝檔案和修補程式](#custom-cev.preparing.download)
+ [步驟 3：將您的安裝檔案上傳到 Amazon S3](#custom-cev.preparing.s3)
+ [步驟 4 （選用）：跨 共用 S3 中的安裝媒體 AWS 帳戶](#custom-cev.preparing.accounts)
+ [步驟 5：準備 CEV 清單檔案](#custom-cev.preparing.manifest)
+ [步驟 6 (選用)：驗證 CEV 清單檔案](#custom-cev.preparing.validating)
+ [步驟 7：新增必要的 IAM 許可](#custom-cev.preparing.iam)

## 步驟 1 (選用)：下載清單檔案範本
<a name="custom-cev.preparing.templates"></a>

*CEV 清單檔案*是 JSON 文件，其中包含 CEV 的資料庫安裝 .zip 檔案清單。若要建立 CEV，請執行下列動作：

1. 識別您要包含在 CEV 中的 Oracle 資料庫安裝檔案。

1. 下載安裝檔案。

1. 建立列出安裝檔案的 JSON 清單檔案。

RDS Custom for Oracle 會針對每個支援的 Oracle Database 版本，提供 JSON 清單檔案範本以及我們建議的 .zip 檔案。例如，下列範本適用於 19.17.0.0.0 RU。

```
{
    "mediaImportTemplateVersion": "2020-08-14",
    "databaseInstallationFileNames": [
        "V982063-01.zip"
    ],
    "opatchFileNames": [
        "p6880880_190000_Linux-x86-64.zip"
    ],
    "psuRuPatchFileNames": [
        "p34419443_190000_Linux-x86-64.zip",
        "p34411846_190000_Linux-x86-64.zip"
    ],
    "otherPatchFileNames": [
        "p28852325_190000_Linux-x86-64.zip",
        "p29997937_190000_Linux-x86-64.zip",
        "p31335037_190000_Linux-x86-64.zip",
        "p32327201_190000_Linux-x86-64.zip",
        "p33613829_190000_Linux-x86-64.zip",
        "p34006614_190000_Linux-x86-64.zip",
        "p34533061_190000_Linux-x86-64.zip",
        "p34533150_190000_Generic.zip",
        "p28730253_190000_Linux-x86-64.zip",
        "p29213893_1917000DBRU_Generic.zip",
        "p33125873_1917000DBRU_Linux-x86-64.zip",
        "p34446152_1917000DBRU_Linux-x86-64.zip"
    ]
}
```

每個範本都有相關聯的 Readme，其中包括下載修補程式的指示、.zip 檔案的 URL，以及檔案總和檢查。您可以依原狀使用這些範本，也可以使用自己的修補程式來修改這些範本。若要檢閱範本，請將 [custom-oracle-manifest.zip](samples/custom-oracle-manifest.zip) 下載至您的本機磁碟，然後使用檔案封存應用程式開啟它。如需詳細資訊，請參閱[步驟 5：準備 CEV 清單檔案](#custom-cev.preparing.manifest)。

## 步驟 2：從 Oracle Software Delivery Cloud 下載資料庫安裝檔案和修補程式
<a name="custom-cev.preparing.download"></a>

找出 CEV 所需的安裝檔案後，請將它們下載至您的本機系統。Oracle 資料庫安裝檔案和修補程式是由 Oracle Software Delivery Cloud 託管。每個 CEV 都需要基礎版本 (例如 Oracle Database 19c 或 Oracle Database 12c Release 2 (12.2))，以及選用的修補程式清單。

**下載 Oracle Database 的資料庫安裝檔案**

1. 移至 [https://edelivery.oracle.com/](https://edelivery.oracle.com/) 並登入。

1. 在搜尋方塊中，輸入 **Oracle Database Enterprise Edition** 或 **Oracle Database Standard Edition 2**，然後選擇**搜尋**。

1. 選擇下列其中一個基礎版本：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-cev.preparing.html)

1. 選擇**繼續**。

1. 清除 **Download Queue** (下載佇列) 核取方塊。

1. 選擇對應至基礎版本的選項：
   + **Oracle Database 19.3.0.0.0 - 長期版本**。
   + **Oracle Database 18.0.0.0.0**
   + **Oracle Database 12.2.0.1.0**。
   + **Oracle Database 12.1.0.2.0**。

1. 在 **Platform/Languages (平台/語言)** 中選擇 **Linux x86-64**。

1. 選擇**繼續**，然後簽署 Oracle 授權合約。

1. 選擇對應至資料庫版本的 .zip 檔案：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-cev.preparing.html)

1. 從 `updates.oracle.com` 或 `support.oracle.com` 將所需的 Oracle 修補程式下載至本機系統。您可在下列位置尋找修補程式的 URL：
   + 您在 [步驟 1 (選用)：下載清單檔案範本](#custom-cev.preparing.templates) 所下載的 .zip 檔案中的讀我檔案
   + 修補程式列示在[適用於 Oracle 的 Amazon Relational Database Service (Amazon RDS) 版本備註](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes)的每個版本更新 (RU) 中

## 步驟 3：將您的安裝檔案上傳到 Amazon S3
<a name="custom-cev.preparing.s3"></a>

使用 AWS CLI將 Oracle 安裝和修補檔案上傳至 Amazon S3。包含安裝檔案的 S3 儲存貯體必須與 CEV 位於相同的 AWS 區域。

本節中的範例使用下列預留位置：
+ `install-or-patch-file.zip` – Oracle 安裝媒體檔案。例如，p32126828\$1190000\$1Linux-x86-64.zip 是修補程式。
+ `amzn-s3-demo-destination-bucket` – 針對您的上傳安裝檔案指定的 Amazon S3 儲存貯體。
+ `123456789012/cev1` – 您的 Amazon S3 儲存貯體的選用字首。
+ `amzn-s3-demo-source-bucket` – Amazon S3 儲存貯體，您可以選擇性在其中暫存檔案。

**Topics**
+ [步驟 3a：確認您的 S3 儲存貯體位於正確的 AWS 區域](#custom-cev.preparing.s3.verify-region)
+ [步驟 3b：確定您的 S3 儲存貯體政策具有正確的許可](#custom-cev.preparing.s3.verify-policy)
+ [步驟 3c：使用 cp 或 sync 命令上傳檔案](#custom-cev.preparing.s3.upload)
+ [步驟 3d：列出 S3 儲存貯體中的檔案](#custom-cev.preparing.s3.list)

### 步驟 3a：確認您的 S3 儲存貯體位於正確的 AWS 區域
<a name="custom-cev.preparing.s3.verify-region"></a>

確認您的 S3 儲存貯體位於您計劃執行 `create-custom-db-engine-version`命令的 AWS 區域中。

```
aws s3api get-bucket-location --bucket amzn-s3-demo-destination-bucket
```

### 步驟 3b：確定您的 S3 儲存貯體政策具有正確的許可
<a name="custom-cev.preparing.s3.verify-policy"></a>

您可以從頭或從來源 CEV 建立 CEV。如果您計劃從來源 CEV 建立新 CEV，請確定您的 S3 儲存貯體政策具有正確的許可：

1. 識別 RDS Custom 保留的 S3 儲存貯體。儲存貯體名稱具有格式 `do-not-delete-rds-custom-account-region-string`。例如，儲存貯體可能名為 `do-not-delete-rds-custom-123456789012-us-east-1-abc123EXAMPLE`。

1. 確定下列許可附加至您的 S3 儲存貯體政策。用您的儲存貯體名稱取代 `do-not-delete-rds-custom-123456789012-us-east-1-abc123EXAMPLE`。

   ```
   {
       "Sid": "AWSRDSCustomForOracleCustomEngineVersionGetObject",
       "Effect": "Allow",
       "Principal": {
           "Service": "custom.rds.amazonaws.com"
       },
       "Action": [
           "s3:GetObject",
           "s3:GetObjectTagging"
       ],
       "Resource": "arn:aws:s3:::do-not-delete-rds-custom-123456789012-us-east-1-abc123EXAMPLE/CustomEngineVersions/*"
   }, ...
   ```

### 步驟 3c：使用 cp 或 sync 命令上傳檔案
<a name="custom-cev.preparing.s3.upload"></a>

請選擇下列其中一個選項：
+ 使用 `aws s3 cp` 來上傳單一 .zip 檔案。

  分別上傳每個安裝 .zip 檔案。請勿將 .zip 檔案合併成單一 .zip 檔案。
+ 使用 `aws s3 sync` 來上傳目錄。

**Example**  
下列範例會將 `install-or-patch-file.zip` 上傳到 RDS Custom Amazon S3 儲存貯體中的 `123456789012/cev1` 資料夾。針對您想要上傳的每個 .zip 分別執行 `aws s3` 命令。  
對於 Linux、macOS 或 Unix：  

```
1. aws s3 cp install-or-patch-file.zip \
2.     s3://amzn-s3-demo-destination-bucket/123456789012/cev1/
```
在 Windows 中：  

```
1. aws s3 cp install-or-patch-file.zip ^
2.     s3://amzn-s3-demo-destination-bucket/123456789012/cev1/
```

**Example**  
下列範例會將您的本機 *cev1* 資料夾上傳到 Amazon S3 儲存貯體中的 *123456789012/cev1* 資料夾。  
對於 Linux、macOS 或 Unix：  

```
aws s3 sync cev1 \
    s3://amzn-s3-demo-destination-bucket/123456789012/cev1/
```
在 Windows 中：  

```
aws s3 sync cev1 ^
    s3://amzn-s3-demo-destination-bucket/123456789012/cev1/
```

**Example**  
下列範例會將 `amzn-s3-demo-source-bucket` 中的所有檔案上傳到 Amazon S3 儲存貯體中的 **`123456789012/cev1`** 資料夾。  
對於 Linux、macOS 或 Unix：  

```
aws s3 sync s3://amzn-s3-demo-source-bucket/ \
    s3://amzn-s3-demo-destination-bucket/123456789012/cev1/
```
在 Windows 中：  

```
aws s3 sync s3://amzn-s3-demo-source-bucket/ ^
    s3://amzn-s3-demo-destination-bucket/123456789012/cev1/
```

### 步驟 3d：列出 S3 儲存貯體中的檔案
<a name="custom-cev.preparing.s3.list"></a>

下列範例會使用 `s3 ls` 命令，列出 RDS Custom Amazon S3 儲存貯體中的檔案。

```
aws s3 ls \
    s3://amzn-s3-demo-destination-bucket/123456789012/cev1/
```

## 步驟 4 （選用）：跨 共用 S3 中的安裝媒體 AWS 帳戶
<a name="custom-cev.preparing.accounts"></a>

就本區段而言，Amazon S3 儲存貯體包含您上傳的 Oracle 安裝檔案便是媒體*儲存貯體*。您的組織可能會在 AWS 帳戶 中使用多個 AWS 區域。如果是這樣，您可能想要使用一個 AWS 帳戶 來填入媒體儲存貯體，並使用另一個 AWS 帳戶 來建立 CEVs。若您不想分享您的媒體儲存貯體，請跳至下一區段。

此區段假設如下：
+ 您可以存取建立媒體儲存貯體的帳戶，以及要在其中建立 CEV 的其他帳戶。
+ 您打算只在一個 AWS 區域中建立 CEV。如果您打算使用多個區域，請在每個區域中建立媒體儲存貯體。
+ 您正在使用 CLI。如果您要使用 Amazon S3 主控台，請採納下列步驟：

**設定媒體儲存貯體以跨 共用 AWS 帳戶**

1. 登入 AWS 帳戶 包含您上傳安裝媒體之 S3 儲存貯體的 。

1. 您可以從空白的 JSON 政策範本，或現有的政策開始採納。

   下列命令會擷取現有的政策，並將其儲存為 *my-policy.json*。在此範例中，包含您安裝檔案的 S3 儲存貯體命名為 *amzn-s3-demo-bucket*。

   ```
   aws s3api get-bucket-policy \ 
       --bucket amzn-s3-demo-bucket \
       --query Policy \
       --output text > my-policy.json
   ```

1. 編輯媒體儲存貯體權限，如下所示：
   + 在範本的 `Resource` 元素，請指定要上傳 Oracle Database 安裝檔案的 S3 儲存貯體。
   + 在 `Principal`元素中，指定 AWS 帳戶 您要用來建立 CEVs 的所有 ARNs。您可以將根、使用者或角色新增至 S3 儲存貯體允許清單。如需詳細資訊，請參閱 *AWS Identity and Access Management 使用者指南*中的 [IAM 識別符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html)。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "GrantAccountsAccess",
               "Effect": "Allow",
               "Principal": {
                   "AWS": [
                       "arn:aws:iam::111122223333:root",
                       "arn:aws:iam::444455556666:user/user-name-with-path",
                       "arn:aws:iam::123456789012:role/role-name-with-path"
                   ]
               },
               "Action": [
                   "s3:GetObject",
                   "s3:GetObjectAcl",
                   "s3:GetObjectTagging",
                   "s3:ListBucket",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket",
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           }
       ]
   }
   ```

------

1. 將政策連接至您的媒體儲存貯體。

   在下列範例中，*amzn-s3-demo-bucket* 是包含您的安裝檔案的 S3 儲存貯體名稱，而 *my-policy.json* 是您的 JSON 檔案名稱。

   ```
   aws s3api put-bucket-policy \
       --bucket amzn-s3-demo-bucket \
       --policy file://my-policy.json
   ```

1. 登入您要在 AWS 帳戶 其中建立 CEVs 。

1. 確認此帳戶可以存取 AWS 帳戶 建立它的 中的媒體儲存貯體。

   ```
   aws s3 ls --query "Buckets[].Name"
   ```

   如需詳細資訊，請參閱*AWS CLI 命令參考*中的 [aws s3 ls](https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html)。

1. 遵循 [建立 CEV](custom-cev.create.md) 中的步驟建立 CEV。

## 步驟 5：準備 CEV 清單檔案
<a name="custom-cev.preparing.manifest"></a>

CEV 清單檔案是包含下列項目的 JSON 文件：
+ (必要) 您上傳至 Amazon S3 的安裝 .zip 檔案清單。RDS Custom 會依資訊清單中列出的順序套用修補程式。
+ (選用) 針對 Oracle 基本目錄、Oracle 主目錄，以及 UNIX/Linux 使用者和群組的識別符和名稱設定非預設值的安裝參數。請注意，您無法修改現有 CEV 或現有資料庫執行個體的安裝參數。當安裝參數具有不同的設定時，您也無法從一個 CEV 升級到另一個 CEV。

如需範例 CEV 清單檔案，請參閱您在 [步驟 1 (選用)：下載清單檔案範本](#custom-cev.preparing.templates) 中下載的 JSON 範本。您也可以在中檢閱 [CEV 清單檔案範例](#custom-cev.preparing.manifest.examples) 中的範例。

**Topics**
+ [CEV 資訊清單中的 JSON 欄位](#custom-cev.preparing.manifest.fields)
+ [建立 CEV 資訊清單](#custom-cev.preparing.manifest.creating)
+ [CEV 清單檔案範例](#custom-cev.preparing.manifest.examples)

### CEV 資訊清單中的 JSON 欄位
<a name="custom-cev.preparing.manifest.fields"></a>

下列資料表說明資訊清單檔案中的 JSON 欄位。


| JSON 欄位 | Description | 
| --- | --- | 
|  `MediaImportTemplateVersion`  |  CEV 資訊清單的版本。日期格式為 `YYYY-MM-DD`。  | 
|  `databaseInstallationFileNames`  |  資料庫安裝檔案的排序清單。  | 
|  `opatchFileNames`  |  用於 Oracle 資料庫引擎的 OPatch 安裝程式排序清單。只有一個值有效。`opatchFileNames` 的值必須以 `p6880880_` 開頭。  | 
|  `psuRuPatchFileNames`  |  此資料庫的 PSU 和 RU 修補程式。  若包含 `psuRuPatchFileNames`，則 `opatchFileNames` 為必要項目。`opatchFileNames` 的值必須以 `p6880880_` 開頭。   | 
|  `OtherPatchFileNames`  |  不在 PSU 和 RU 修補程式清單中的修補程式。RDS Custom 會在套用 PSU 和 RU 修補程式之後套用這些修補程式。  若包含 `OtherPatchFileNames`，則 `opatchFileNames` 為必要項目。`opatchFileNames` 的值必須以 `p6880880_` 開頭。   | 
|  `installationParameters`  |  Oracle 基本目錄、Oracle 主目錄，以及 UNIX/Linux 使用者和群組的識別符和名稱的非預設值設定。您可以設定下列參數： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-cev.preparing.html)  | 

每個 Oracle 資料庫版本都有不同的支援安裝檔案清單。當您建立 CEV 資訊清單時，請務必指定僅適用於 Oracle 的 RDS 自訂所支援的檔案。否則，CEV 建立會失敗並顯示錯誤。支援[適用於 Oracle 的 Amazon Relational Database Service (Amazon RDS) 版本備註](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes)中列出的所有修補程式。

### 建立 CEV 資訊清單
<a name="custom-cev.preparing.manifest.creating"></a>

**建立 CEV 清單檔案**

1. 按照您要套用的順序，列出您計劃套用的所有安裝檔案。

1. 將安裝檔案與 [CEV 資訊清單中的 JSON 欄位](#custom-cev.preparing.manifest.fields) 中所述的 JSON 欄位建立關聯。

1. 執行下列任何一項：
   + 將 CEV 清單檔案建立為 JSON 文字檔案。
   + 在主控台建立 CEV 時，編輯 CEV 清單檔案範本。如需詳細資訊，請參閱[建立 CEV](custom-cev.create.md)。

### CEV 清單檔案範例
<a name="custom-cev.preparing.manifest.examples"></a>

下列範例顯示不同 Oracle 資料庫版本的 CEV 清單檔案。若您在資訊清單中包含 JSON 欄位，請確保不是空的。例如，下列 CEV 清單檔案無效，因為 `otherPatchFileNames` 空白。

```
{
    "mediaImportTemplateVersion": "2020-08-14",
    "databaseInstallationFileNames": [
        "V982063-01.zip"
    ],
    "opatchFileNames": [
        "p6880880_190000_Linux-x86-64.zip"
    ],
    "psuRuPatchFileNames": [
        "p32126828_190000_Linux-x86-64.zip"
    ],
    "otherPatchFileNames": [
    ]
}
```

**主題**
+ [Sample CEV manifest for Oracle Database 12c Release 1 (12.1)](#oracle-cev-manifest-12.1)
+ [Sample CEV manifest for Oracle Database 12c Release 2 (12.2)](#oracle-cev-manifest-12.2)
+ [Sample CEV manifest for Oracle Database 18c](#oracle-cev-manifest-18c)
+ [Sample CEV manifest for Oracle Database 19c](#oracle-cev-manifest-19c)

**Example Oracle 資料庫 12c 版本 1 (12.1) 的 CEV 清單檔案範例**  
在 Oracle 資料庫 12c 版本 1 (12.1) 的 2021 年 7 月 PSU 範例中，RDS Custom 會指定的順序套用修補程式。因此，RDS Custom 會套用 p32768233，接著套用 p32876425，然後套用 p18759211，以此類推。此範例會針對 UNIX/Linux 使用者和群組，以及 Oracle 主目錄和 Oracle 基本目錄設定新值。  

```
{
    "mediaImportTemplateVersion":"2020-08-14",
    "databaseInstallationFileNames":[
        "V46095-01_1of2.zip",
        "V46095-01_2of2.zip"
    ],
    "opatchFileNames":[
        "p6880880_121010_Linux-x86-64.zip"
    ],
    "psuRuPatchFileNames":[
        "p32768233_121020_Linux-x86-64.zip"
    ],
    "otherPatchFileNames":[
        "p32876425_121020_Linux-x86-64.zip",
        "p18759211_121020_Linux-x86-64.zip",
        "p19396455_121020_Linux-x86-64.zip",
        "p20875898_121020_Linux-x86-64.zip",
        "p22037014_121020_Linux-x86-64.zip",
        "p22873635_121020_Linux-x86-64.zip",
        "p23614158_121020_Linux-x86-64.zip",
        "p24701840_121020_Linux-x86-64.zip",
        "p25881255_121020_Linux-x86-64.zip",
        "p27015449_121020_Linux-x86-64.zip",
        "p28125601_121020_Linux-x86-64.zip",
        "p28852325_121020_Linux-x86-64.zip",
        "p29997937_121020_Linux-x86-64.zip",
        "p31335037_121020_Linux-x86-64.zip",
        "p32327201_121020_Linux-x86-64.zip",
        "p32327208_121020_Generic.zip",
        "p17969866_12102210119_Linux-x86-64.zip",
        "p20394750_12102210119_Linux-x86-64.zip",
        "p24835919_121020_Linux-x86-64.zip",
        "p23262847_12102201020_Linux-x86-64.zip",
        "p21171382_12102201020_Generic.zip",
        "p21091901_12102210720_Linux-x86-64.zip",
        "p33013352_12102210720_Linux-x86-64.zip",
        "p25031502_12102210720_Linux-x86-64.zip",
        "p23711335_12102191015_Generic.zip",
        "p19504946_121020_Linux-x86-64.zip"
    ],
    "installationParameters": {
        "unixGroupName": "dba",
        "unixGroupId": 12345,
        "unixUname": "oracle",
        "unixUid": 12345,
        "oracleHome": "/home/oracle/oracle.12.1.0.2",
        "oracleBase": "/home/oracle"
    }
}
```

**Example Oracle 資料庫 12c 版本 2 (12.2) 的 CEV 清單檔案範例**  
在 Oracle 資料庫 12c 版本 2 (12.2) 的 2021 年 10 月 PSU 範例中，RDS Custom 會套用 p33261817，接著套用 p33192662，然後套用 p29213893，以此類推。此範例會針對 UNIX/Linux 使用者和群組，以及 Oracle 主目錄和 Oracle 基本目錄設定新值。  

```
{
    "mediaImportTemplateVersion":"2020-08-14",
    "databaseInstallationFileNames":[
        "V839960-01.zip"
    ],
    "opatchFileNames":[
        "p6880880_122010_Linux-x86-64.zip"
    ],
    "psuRuPatchFileNames":[
        "p33261817_122010_Linux-x86-64.zip"
    ],
    "otherPatchFileNames":[
        "p33192662_122010_Linux-x86-64.zip",
        "p29213893_122010_Generic.zip",
        "p28730253_122010_Linux-x86-64.zip",
        "p26352615_12201211019DBOCT2021RU_Linux-x86-64.zip",
        "p23614158_122010_Linux-x86-64.zip",
        "p24701840_122010_Linux-x86-64.zip",
        "p25173124_122010_Linux-x86-64.zip",
        "p25881255_122010_Linux-x86-64.zip",
        "p27015449_122010_Linux-x86-64.zip",
        "p28125601_122010_Linux-x86-64.zip",
        "p28852325_122010_Linux-x86-64.zip",
        "p29997937_122010_Linux-x86-64.zip",
        "p31335037_122010_Linux-x86-64.zip",
        "p32327201_122010_Linux-x86-64.zip",
        "p32327208_122010_Generic.zip"
    ],
    "installationParameters": {
        "unixGroupName": "dba",
        "unixGroupId": 12345,
        "unixUname": "oracle",
        "unixUid": 12345,
        "oracleHome": "/home/oracle/oracle.12.2.0.1",
        "oracleBase": "/home/oracle"
    }
}
```

**Example Oracle 資料庫 18c 的 CEV 清單檔案範例**  
在下列 Oracle 資料庫 18c 的 2021 年 10 月 PSU 範例中，RDS Custom 會套用 p32126855，接著套用 p28730253，然後套用 p27539475，依此類推。此範例會針對 UNIX/Linux 使用者和群組，以及 Oracle 主目錄和 Oracle 基本目錄設定新值。  

```
{
    "mediaImportTemplateVersion":"2020-08-14",
    "databaseInstallationFileNames":[
        "V978967-01.zip"
    ],
    "opatchFileNames":[
        "p6880880_180000_Linux-x86-64.zip"
    ],
    "psuRuPatchFileNames":[
        "p32126855_180000_Linux-x86-64.zip"
    ],
    "otherPatchFileNames":[
        "p28730253_180000_Linux-x86-64.zip",
        "p27539475_1813000DBRU_Linux-x86-64.zip",
        "p29213893_180000_Generic.zip",
        "p29374604_1813000DBRU_Linux-x86-64.zip",
        "p29782284_180000_Generic.zip",
        "p28125601_180000_Linux-x86-64.zip",
        "p28852325_180000_Linux-x86-64.zip",
        "p29997937_180000_Linux-x86-64.zip",
        "p31335037_180000_Linux-x86-64.zip",
        "p31335142_180000_Generic.zip"
    ]
    "installationParameters": {
        "unixGroupName": "dba",
        "unixGroupId": 12345,
        "unixUname": "oracle",
        "unixUid": 12345,
        "oracleHome": "/home/oracle/18.0.0.0.ru-2020-10.rur-2020-10.r1",
        "oracleBase": "/home/oracle/"
    }
}
```

**Example Oracle 資料庫 19c 的 CEV 清單檔案範例**  
在下列 Oracle 資料庫 19c 的範例中，RDS Custom 會套用 p32126828，接著套用 p29213893，然後套用 p29782284，依此類推。此範例會針對 UNIX/Linux 使用者和群組，以及 Oracle 主目錄和 Oracle 基本目錄設定新值。  

```
{
    "mediaImportTemplateVersion": "2020-08-14",
    "databaseInstallationFileNames": [
        "V982063-01.zip"
    ],
    "opatchFileNames": [
        "p6880880_190000_Linux-x86-64.zip"
    ],
    "psuRuPatchFileNames": [
        "p32126828_190000_Linux-x86-64.zip"
    ],
    "otherPatchFileNames": [
        "p29213893_1910000DBRU_Generic.zip",
        "p29782284_1910000DBRU_Generic.zip",
        "p28730253_190000_Linux-x86-64.zip",
        "p29374604_1910000DBRU_Linux-x86-64.zip",
        "p28852325_190000_Linux-x86-64.zip",
        "p29997937_190000_Linux-x86-64.zip",
        "p31335037_190000_Linux-x86-64.zip",
        "p31335142_190000_Generic.zip"
    ],
    "installationParameters": {
        "unixGroupName": "dba",
        "unixGroupId": 12345,
        "unixUname": "oracle",
        "unixUid": 12345,
        "oracleHome": "/home/oracle/oracle.19.0.0.0.ru-2020-04.rur-2020-04.r1.EE.1",
        "oracleBase": "/home/oracle"
    }
}
```

## 步驟 6 (選用)：驗證 CEV 清單檔案
<a name="custom-cev.preparing.validating"></a>

或者，藉由執行 `json.tool` Python 指令碼來確認資訊清單是有效的 JSON 檔案。例如，如果您變更為包含名為 `manifest.json` 之 CEV 資訊清單的目錄，則執行下列命令。

```
python -m json.tool < manifest.json
```

## 步驟 7：新增必要的 IAM 許可
<a name="custom-cev.preparing.iam"></a>

請確保建立 CEV 的 IAM 主體具有 [步驟 5：將所需的許可授予您的 IAM 使用者或角色](custom-setup-orcl.md#custom-setup-orcl.iam-user) 中所述的必要政策。

# 建立 CEV
<a name="custom-cev.create"></a>

您可以使用 AWS 管理主控台 或 AWS CLI 建立 CEV。指定多租戶或非多租戶架構。如需更多詳細資訊，請參閱 [多租戶架構考量](custom-creating.md#custom-creating.overview)。

一般而言，建立 CEV 大約需要兩個小時。在建立 CEV 之後，您可以使用它來建立或更新 RDS Custom 資料庫執行個體。如需詳細資訊，請參閱[建立 RDS Custom for Oracle 資料庫執行個體](custom-creating.md#custom-creating.create)及[升級 RDS Custom for Oracle 資料庫執行個體](custom-upgrading-modify.md)。

**注意**  
如果您的資料庫執行個體目前使用 Oracle Linux 7.9，請建立使用最新 AMI 的新 CEV，這會使用 Oracle Linux 8。然後修改執行個體以使用新的 CEV。

請注意建立 CEV 的下列要求和限制：
+ 包含您的安裝檔案的 Amazon S3 儲存貯體必須位於與您的 CEV 相同的 AWS 區域 中。否則，建立程序會失敗。
+ CEV 名稱的格式必須是 `major-engine-version.customized_string`，如 `19.cdb_cev1` 中所示。
+ CEV 名稱必須包含 1 到 50 個英數字元、底線、破折號或句點。
+ CEV 名稱不能包含連續的句點，如 `19..cdb_cev1` 中所示。

## 主控台
<a name="custom-cev.create.console"></a>

**若要建立 CEV**

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

1. 在導覽窗格中，選擇 **Custom engine versions** (自訂引擎版本)。

   **Custom engine versions** (自訂引擎版本) 頁面會顯示目前存在的所有 CEV。如果您尚未建立任何 CEV，則頁面為空白。

1. 選擇 **Create custom engine version** (建立自訂引擎版本)。

1. 在**引擎選項**中，執行下列動作：

   1. 針對 **Engine type** (引擎類型)，請選擇 **Oracle**。

   1. 對於**架構設定**，選擇性地選擇**多租用戶架構**以建立 Oracle 多租用戶 CEV，這會使用資料庫引擎 `custom-oracle-ee-cdb` 或 `custom-oracle-se2-cdb`。您只能使用多租戶 CEV 建立 RDS Custom for Oracle CDB。如果未選擇此選項，您的 CEV 是使用引擎 `custom-oracle-ee` 或 `custom-oracle-se2` 的非 CDB。
**注意**  
您選擇的架構是 CEV 的永久特性。您無法將 CEV 修改為稍後使用不同的架構。

   1. 請選擇下列其中一個選項：
      + **建立新 CEV** - 從頭開始建立 CEV。在此情況下，您必須指定 JSON 清單檔案，其會指定資料庫二進位檔案。
      + **從來源建立 CEV** - 在**指定要複製的 CEV** 中，選擇要用作來源 CEV 的現有 CEV。在此情況下，您可以指定新的 Amazon Machine Image (AMI)，但無法指定不同的資料庫二進位檔案。

   1. 在**引擎版本**中，選擇主要引擎版本。

1. 在**版本詳細資訊**中，執行下列動作：

   1. 在**自訂引擎版本名稱**中輸入有效名稱。例如，您輸入名稱 **19.cdb\$1cev1**。

   1. (選用) 輸入 CEV 的描述。

1. 在**安裝媒體**中，執行下列動作：

   1. (選用) 針對 **AMI ID**，將欄位保留空白以使用最新服務提供的 AMI，或輸入您先前用來建立 CEV 的 AMI。若要取得有效的 AMI ID，請使用下列任一技巧：
      + 在主控台中，選擇左側導覽窗格中的**自訂引擎版本**，然後選擇 CEV 的名稱。CEV 使用的 AMI ID 會出現在**組態**索引標籤中。
      + 在 AWS CLI 中，使用 `describe-db-engine-versions` 命令。搜尋輸出找出 `ImageID`。

   1. 針對 **S3 location of manifest files (資訊清單檔案的 S3 位置)**，輸入您在 [步驟 3：將您的安裝檔案上傳到 Amazon S3](custom-cev.preparing.md#custom-cev.preparing.s3) 中指定之 Amazon S3 儲存貯體的位置。例如，​輸入 **s3://my-custom-installation-files/123456789012/cev1/**。
**注意**  
您在其中建立 CEV 的 AWS 區域必須位於與 S3 儲存貯體相同的區域中。

   1. (僅建立新的 CEV) 對於 **CEV 清單檔案**，輸入您已在 [建立 CEV 資訊清單](custom-cev.preparing.md#custom-cev.preparing.manifest.creating) 建立的 JSON 清單檔案。

1. 在 **KMS 金鑰**區段中，選取**輸入金鑰 ARN** 以列出可用的 AWS KMS 金鑰。然後從清單選取 KMS 金鑰。

   RDS Custom 需要 AWS KMS 金鑰。如需更多詳細資訊，請參閱 [步驟 1：建立或重複使用對稱加密 AWS KMS 金鑰](custom-setup-orcl.md#custom-setup-orcl.cmk)。

1. (選用) 選擇**新增標籤**，為 CEV 建立鍵值組。

1. 選擇 **Create custom engine version** (建立自訂引擎版本)。

   如果 JSON 清單檔案的格式無效，主控台會顯示**驗證 CEV 清單檔案時發生錯誤**。修正問題，然後重試。

**Custom engine versions** (自訂引擎版本) 頁面隨即出現。您的 CEV 會顯示狀態 **Creating (正在建立)**。建立 CEV 的程序大約需要兩個小時。

## AWS CLI
<a name="custom-cev.create.CEV"></a>

若要使用 AWS CLI 建立 CEV，請執行 [create-custom-db-engine-version](https://docs.aws.amazon.com/cli/latest/reference/rds/create-custom-db-engine-version.html) 命令。

下列選項是必要的：
+ `--engine` – 指定引擎類型。對於 CDB，指定 `custom-oracle-ee-cdb` 或 `custom-oracle-se2-cdb`。對於非 CDB，指定 `custom-oracle-ee` 或 `custom-oracle-se2`。您只能從使用 `custom-oracle-ee-cdb` 或 `custom-oracle-se2-cdb` 建立的 CEV 建立 CDB。您只能從使用 `custom-oracle-ee` 或 `custom-oracle-se2` 建立的 CEV 建立非 CDB。
+ `--engine-version` - 指定引擎版本。格式是 *major-engine-version*.*customized\$1string*。CEV 名稱必須包含 1 到 50 個英數字元、底線、破折號或句點。CEV 名稱不能包含連續的句點，如 `19..cdb_cev1` 中所示。
+ `--kms-key-id` – 指定 AWS KMS key。
+ `--manifest` – 指定 `manifest_json_string` 或 `--manifest file:file_name`。`manifest_json_string` 中不允許換行字元。請務必轉義 JSON 程式碼中的雙引號 (")，方法是在引號前加上反斜杠 (\$1)。

  下列範例為 19c 顯示了來自 [步驟 5：準備 CEV 清單檔案](custom-cev.preparing.md#custom-cev.preparing.manifest) 的 `manifest_json_string`。此範例會針對 Oracle 基本目錄、Oracle 主目錄，以及 UNIX/Linux 使用者和群組的識別符和名稱設定新值。如果您複製此字串，請在將其貼到命令之前移除所有換行字元。

  `"{\"mediaImportTemplateVersion\": \"2020-08-14\",\"databaseInstallationFileNames\": [\"V982063-01.zip\"],\"opatchFileNames\": [\"p6880880_190000_Linux-x86-64.zip\"],\"psuRuPatchFileNames\": [\"p32126828_190000_Linux-x86-64.zip\"],\"otherPatchFileNames\": [\"p29213893_1910000DBRU_Generic.zip\",\"p29782284_1910000DBRU_Generic.zip\",\"p28730253_190000_Linux-x86-64.zip\",\"p29374604_1910000DBRU_Linux-x86-64.zip\",\"p28852325_190000_Linux-x86-64.zip\",\"p29997937_190000_Linux-x86-64.zip\",\"p31335037_190000_Linux-x86-64.zip\",\"p31335142_190000_Generic.zip\"]\"installationParameters\":{ \"unixGroupName\":\"dba\", \ \"unixUname\":\"oracle\", \ \"oracleHome\":\"/home/oracle/oracle.19.0.0.0.ru-2020-04.rur-2020-04.r1.EE.1\", \ \"oracleBase\":\"/home/oracle/\"}}"`
+ `--database-installation-files-s3-bucket-name` - 指定您已在 [步驟 3：將您的安裝檔案上傳到 Amazon S3](custom-cev.preparing.md#custom-cev.preparing.s3) 中指定的相同儲存貯體名稱。您在其中執行 `create-custom-db-engine-version` 的 AWS 區域必須是與您的 Amazon S3 儲存貯體相同的區域。

您還可以指定下列選項：
+ `--description` - 指定 CEV 的描述。
+ `--database-installation-files-s3-prefix` - 指定您已在 [步驟 3：將您的安裝檔案上傳到 Amazon S3](custom-cev.preparing.md#custom-cev.preparing.s3) 中指定的資料夾名稱。
+ `--image-id` - 指定要重複使用的 AMI ID。若要尋找有效的 ID，請執行 `describe-db-engine-versions` 命令，然後搜尋輸出找出 `ImageID`。根據預設，RDS Custom for Oracle 會使用最新的可用 AMI。

下列範例會建立名為 `19.cdb_cev1` 的 Oracle 多租戶 CEV。此範例會重複使用現有的 AMI，而不是使用最新的可用 AMI。請確保 CEV 的名稱以主要引擎版本號為開頭。

**Example**  
對於 Linux、macOS 或 Unix：  

```
1. aws rds create-custom-db-engine-version \
2.     --engine custom-oracle-se2-cdb \
3.     --engine-version 19.cdb_cev1 \
4.     --database-installation-files-s3-bucket-name us-east-1-123456789012-custom-installation-files \
5.     --database-installation-files-s3-prefix 123456789012/cev1 \
6.     --kms-key-id my-kms-key \
7.     --description "test cev" \
8.     --manifest manifest_string \
9.     --image-id ami-012a345678901bcde
```
在 Windows 中：  

```
1. aws rds create-custom-db-engine-version ^
2.     --engine custom-oracle-se2-cdb ^
3.     --engine-version 19.cdb_cev1 ^
4.     --database-installation-files-s3-bucket-name us-east-1-123456789012-custom-installation-files ^
5.     --database-installation-files-s3-prefix 123456789012/cev1 ^
6.     --kms-key-id my-kms-key ^
7.     --description "test cev" ^
8.     --manifest manifest_string ^
9.     --image-id ami-012a345678901bcde
```

**Example**  
使用 `describe-db-engine-versions` 命令取得 CEV 的詳細資訊。  

```
1. aws rds describe-db-engine-versions \
2.     --engine custom-oracle-se2-cdb \
3.     --include-all
```
下列部分輸出顯示引擎、參數群組、清單檔案，以及其他資訊。  

```
 1. {
 2.     "DBEngineVersions": [
 3.         {
 4.             "Engine": "custom-oracle-se2-cdb",
 5.             "EngineVersion": "19.cdb_cev1",
 6.             "DBParameterGroupFamily": "custom-oracle-se2-cdb-19",
 7.             "DBEngineDescription": "Containerized Database for Oracle Custom SE2",
 8.             "DBEngineVersionDescription": "test cev",
 9.             "Image": {
10.                 "ImageId": "ami-012a345678901bcde",
11.                 "Status": "active"
12.             },
13.             "ValidUpgradeTarget": [],
14.             "SupportsLogExportsToCloudwatchLogs": false,
15.             "SupportsReadReplica": true,
16.             "SupportedFeatureNames": [],
17.             "Status": "available",
18.             "SupportsParallelQuery": false,
19.             "SupportsGlobalDatabases": false,
20.             "MajorEngineVersion": "19",
21.             "DatabaseInstallationFilesS3BucketName": "us-east-1-123456789012-custom-installation-files",
22.             "DatabaseInstallationFilesS3Prefix": "123456789012/cev1",
23.             "DBEngineVersionArn": "arn:aws:rds:us-east-1:123456789012:cev:custom-oracle-se2-cdb/19.cdb_cev1/abcd12e3-4f5g-67h8-i9j0-k1234l56m789",
24.             "KMSKeyId": "arn:aws:kms:us-east-1:732027699161:key/1ab2345c-6d78-9ef0-1gh2-3456i7j89k01",
25.             "CreateTime": "2023-03-07T19:47:58.131000+00:00",
26.             "TagList": [],
27.             "SupportsBabelfish": false,
28. ...
```

## 無法建立 CEV
<a name="custom-cev.create.failure"></a>

如果 CEV 建立的程序失敗，會發生 RDS Custom 問題 `RDS-EVENT-0198` 並且有訊息 `Creation failed for custom engine version major-engine-version.cev_name`，其中包含失敗的詳細資訊。例如，事件會列印遺失的檔案。

您無法修改失敗的 CEV。您只能刪除它，然後在修正失敗原因之後再試一次建立 CEV。如需有關 CEV 建立失敗原因進行疑難排解的詳細資訊，請參閱 [針對 RDS Custom for Oracle 的自訂引擎版本建立進行故障診斷](custom-troubleshooting.md#custom-troubleshooting.cev)。

# 修改 CEV 狀態
<a name="custom-cev.modify"></a>

您可以使用 AWS 管理主控台 或 AWS CLI 修改 CEV。您可以修改 CEV 描述或其可用狀態。您的 CEV 有下列其中一個狀態值：
+ `available` – 您可以使用此 CEV 建立新的 RDS Custom 資料庫執行個體或升級資料庫執行個體。這是新建立的 CEV 的預設狀態。
+ `inactive` – 您無法使用此 CEV 建立或升級 RDS Custom 執行個體。您無法還原資料庫快照以使用此 CEV 建立新的 RDS Custom 資料庫執行個體。

您可以將 CEV 從任何支援狀態變更為任何其他支援狀態。您可以變更狀態，以防止意外使用 CEV，或讓已停產的 CEV 符合再次使用的資格。例如，您可以將 CEV 的狀態從 `available` 變更為 `inactive`，以及從 `inactive` 變更回 `available`。

## 主控台
<a name="custom-cev.modify.console"></a>

**若要修改 CEV**

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

1. 在導覽窗格中，選擇 **Custom engine versions** (自訂引擎版本)。

1. 選擇您想要修改其描述或狀態的 CEV。

1. 在 **Actions** (動作) 中，選擇 **Modify** (修改)。

1. 進行下列任何變更：
   + 針對 **CEV status settings (CEV 狀態設定)**，選擇新的可用性狀態。
   + 針對 **Version description (版本描述)**，輸入新的描述。

1. 選擇 **Modify CEV (修改 CEV)**。

   如果 CEV 正在使用中，主控台會顯示**您無法修改 CEV 狀態**。修正問題，然後重試。

**Custom engine versions** (自訂引擎版本) 頁面隨即出現。

## AWS CLI
<a name="custom-cev.modify.cli"></a>

若要使用 AWS CLI 修改 CEV，請執行 [modify-custom-db-engine-version](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-custom-db-engine-version.html) 命令。您可以藉由執行 [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) 命令來尋找要修改的 CEV。

下列選項是必要的：
+ `--engine engine-type`，其中 *engine-type* 為 `custom-oracle-ee`、`custom-oracle-se2`、`custom-oracle-ee-cdb` 或 `custom-oracle-se2-cdb`
+ `--engine-version cev`，其中 *`cev`* 是您要修改的自訂引擎版本的名稱。
+ `--status`` status`，其中 *`status`* 是您要指派給 CEV 的可用性狀態。

下列範例會將名為 `19.my_cev1` 的 CEV 從目前的狀態變更為 `inactive`。

**Example**  
對於 Linux、macOS 或 Unix：  

```
1. aws rds modify-custom-db-engine-version \
2.     --engine custom-oracle-se2 \ 
3.     --engine-version 19.my_cev1 \
4.     --status inactive
```
在 Windows 中：  

```
1. aws rds modify-custom-db-engine-version ^
2.     --engine custom-oracle-se2 ^
3.     --engine-version 19.my_cev1 ^
4.     --status inactive
```

# 檢視 Amazon RDS Custom for Oracle 的 CEV 詳細資訊
<a name="custom-cev.view"></a>

您可以使用 AWS 管理主控台 或 AWS CLI，檢視 CEV 清單檔案的詳細資訊，以及用來建立 CEV 之命令的詳細資訊。

## 主控台
<a name="custom-cev.view.console"></a>

**檢視 CEV 詳細資訊**

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

1. 在導覽窗格中，選擇 **Custom engine versions** (自訂引擎版本)。

   **Custom engine versions** (自訂引擎版本) 頁面會顯示目前存在的所有 CEV。如果您尚未建立任何 CEV，則頁面為空白。

1. 選擇要檢視的 CEV 名稱。

1. 選擇 **Configuration** (組態) 以檢視清單檔案中指定的安裝參數。  
![\[檢視 CEV 的安裝參數。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/cev-configuration-tab.png)

1. 選擇 **Manifest** (清單檔案) 以檢視在 `create-custom-db-engine-version` 命令的 `--manifest` 選項中指定的安裝參數。您可以複製此文字、視需要取代這些值，然後在新命令中使用它們。  
![\[檢視用來建立 CEV 的命令。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/cev-manifest-tab.png)

## AWS CLI
<a name="custom-cev.view.CEV"></a>

若要使用 AWS CLI 檢視 CEV 的詳細資訊，請執行 [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) 命令。

下列選項是必要的：
+ `--engine engine-type`，其中 *engine-type* 為 `custom-oracle-ee`、`custom-oracle-se2`、`custom-oracle-ee-cdb` 或 `custom-oracle-se2-cdb`
+ `--engine-version major-engine-version.customized_string`

下列範例會建立使用 Enterprise Edition 的非 CDB CEV。CEV 名稱 `19.my_cev1` 開頭為主要引擎版本編號，此為必要項目。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
1. aws rds describe-db-engine-versions \
2.     --engine custom-oracle-ee \
3.     --engine-version 19.my_cev1
```
在 Windows 中：  

```
1. aws rds describe-db-engine-versions ^
2.     --engine custom-oracle-ee ^
3.     --engine-version 19.my_cev1
```
下列部分輸出顯示引擎、參數群組、清單檔案，以及其他資訊。  

```
 1. "DBEngineVersions": [
 2.     {
 3.         "Engine": "custom-oracle-ee",
 4.         "MajorEngineVersion": "19",
 5.         "EngineVersion": "19.my_cev1",
 6.         "DatabaseInstallationFilesS3BucketName": "us-east-1-123456789012-cev-customer-installation-files",
 7.         "DatabaseInstallationFilesS3Prefix": "123456789012/cev1",
 8.         "CustomDBEngineVersionManifest": "{\n\"mediaImportTemplateVersion\": \"2020-08-14\",\n\"databaseInstallationFileNames\": [\n\"V982063-01.zip\"\n],\n\"installationParameters\": {\n\"oracleBase\":\"/tmp\",\n\"oracleHome\":\"/tmp/Oracle\"\n},\n\"opatchFileNames\": [\n\"p6880880_190000_Linux-x86-64.zip\"\n],\n\"psuRuPatchFileNames\": [\n\"p32126828_190000_Linux-x86-64.zip\"\n],\n\"otherPatchFileNames\": [\n\"p29213893_1910000DBRU_Generic.zip\",\n\"p29782284_1910000DBRU_Generic.zip\",\n\"p28730253_190000_Linux-x86-64.zip\",\n\"p29374604_1910000DBRU_Linux-x86-64.zip\",\n\"p28852325_190000_Linux-x86-64.zip\",\n\"p29997937_190000_Linux-x86-64.zip\",\n\"p31335037_190000_Linux-x86-64.zip\",\n\"p31335142_190000_Generic.zip\"\n]\n}\n",
 9.         "DBParameterGroupFamily": "custom-oracle-ee-19",
10.         "DBEngineDescription": "Oracle Database server EE for RDS Custom",
11.         "DBEngineVersionArn": "arn:aws:rds:us-west-2:123456789012:cev:custom-oracle-ee/19.my_cev1/0a123b45-6c78-901d-23e4-5678f901fg23",
12.         "DBEngineVersionDescription": "test",
13.         "KMSKeyId": "arn:aws:kms:us-east-1:123456789012:key/ab1c2de3-f4g5-6789-h012-h3ijk4567l89",
14.         "CreateTime": "2022-11-18T09:17:07.693000+00:00",
15.         "ValidUpgradeTarget": [
16.         {
17.             "Engine": "custom-oracle-ee",
18.             "EngineVersion": "19.cev.2021-01.09",
19.             "Description": "test",
20.             "AutoUpgrade": false,
21.             "IsMajorVersionUpgrade": false
22.         }
23. ]
```

# 刪除 CEV
<a name="custom-cev.delete"></a>

您可以使用 AWS 管理主控台 或 AWS CLI 刪除 CEV。通常需要幾分鐘的時間。

若要刪除 CEV，下列任何一項都無法使用該 CEV：
+ RDS Custom 資料庫執行個體
+ RDS Custom 資料庫執行個體的快照
+ RDS Custom 資料庫執行個體的自動備份

## 主控台
<a name="custom-cev.create.console"></a>

**若要刪除 CEV**

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

1. 在導覽窗格中，選擇 **Custom engine versions** (自訂引擎版本)。

1. 選擇您想要刪除其描述或狀態的 CEV。

1. 對於 **Actions** (動作)，請選擇 **Delete** (刪除)。

   **Delete *cev\$1name*? (是否刪除 cev\$1name？)** 對話方塊隨即顯示。

1. 輸入 **delete me**，然後選擇 **Delete (刪除)**。

   在 **Custom engine versions** (自訂引擎版本) 頁面上，橫幅會顯示您的 CEV 即將刪除。

## AWS CLI
<a name="custom-cev.create.console.cli"></a>

若要使用 AWS CLI 刪除 CEV，請執行 [delete-custom-db-engine-version](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-custom-db-engine-version.html) 命令。

下列選項是必要的：
+ `--engine engine-type`，其中 *engine-type* 為 `custom-oracle-ee`、`custom-oracle-se2`、`custom-oracle-ee-cdb` 或 `custom-oracle-se2-cdb`
+ `--engine-version cev`，其中 *CEV* 是要刪除之自訂引擎版本的名稱

以下範例會刪除名為 `19.my_cev1` 的 CEV。

**Example**  
對於 Linux、macOS 或 Unix：  

```
1. aws rds delete-custom-db-engine-version \
2.     --engine custom-oracle-ee \
3.     --engine-version 19.my_cev1
```
在 Windows 中：  

```
1. aws rds delete-custom-db-engine-version ^
2.     --engine custom-oracle-ee ^
3.     --engine-version 19.my_cev1
```

# 設定 Amazon RDS Custom for Oracle 的資料庫執行個體
<a name="custom-creating"></a>

您可以建立 RDS Custom 資料庫執行個體，然後使用安全通訊殼層 (SSH) 或 AWS Systems Manager與它連線。

如需連線和登入 RDS Custom for Oracle 資料庫執行個體的詳細資訊，請參閱下列主題。
+ [使用工作階段管理員連線至 RDS Custom 資料庫執行個體](custom-creating.ssm.md)
+ [使用 SSH 連線到您的 RDS Custom 資料庫執行個體](#custom-creating.ssh)
+ [以 SYS 身分登入您的 RDS Custom for Oracle 資料庫](custom-creating.sysdba.md)

## 建立 RDS Custom for Oracle 資料庫執行個體
<a name="custom-creating.create"></a>

使用 AWS 管理主控台 或 建立 Amazon RDS Custom for Oracle 資料庫執行個體 AWS CLI。該程序與建立 Amazon RDS 資料庫執行個體的程序類型。如需詳細資訊，請參閱[建立 Amazon RDS 資料庫執行個體](USER_CreateDBInstance.md)。

如果您在 CEV 清單檔案中包含安裝參數，則資料庫執行個體會使用您指定的 Oracle 基本目錄、Oracle 主目錄，以及 UNIX/Linux 使用者和群組的識別符和名稱。Oracle Database 在安裝期間建立的 `oratab` 檔案會指向真實的安裝位置，而不是符號連結。當 RDS Custom for Oracle 執行命令時，其會以設定的作業系統使用者身分執行，而非預設使用者 `rdsdb`。如需詳細資訊，請參閱[步驟 5：準備 CEV 清單檔案](custom-cev.preparing.md#custom-cev.preparing.manifest)。

在您嘗試建立或連線至 RDS Custom 資料庫執行個體之前，請先完成[設定您的 Amazon RDS Custom for Oracle 的環境](custom-setup-orcl.md)中的任務。

### 主控台
<a name="custom-creating.console"></a>

**若要建立 RDS Custom for Oracle 資料庫執行個體**

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

1. 在導覽窗格中，選擇 **Databases** (資料庫)。

1. 選擇 **Create database** (建立資料庫)。

1. 在 **Choose a database creation method (選擇資料庫建立方法)** 中，選取 **Standard Create (標準建立)**。

1. 在**引擎選項**區段中，執行下列動作：

   1. 針對 **Engine type** (引擎類型)，請選擇 **Oracle**。

   1. 針對 **Database management type (引擎管理類型)**，選擇 **Amazon RDS Custom**。

   1. 對於**管理設定**，執行下列其中一項動作：
      + 選取**多租戶架構**以建立容器資料庫 (CDB)。建立時，您的 CDB 包含一個 PDB 種子和一個起始 PDB。
**注意**  
僅 Oracle Database 19c 支援**多租戶架構**設定。
      + 清除**多租戶架構**以建立非 CDB。非 CDB 不能包含 PDB。

   1. 針對**版本**，選擇 **Oracle Enterprise Edition** 或 **Oracle Standard Edition 2**。

   1. 對於**自訂引擎版本**，選擇現有的 RDS Custom 自訂引擎版本 (CEV)。CEV 採用下列格式：`major-engine-version.customized_string`。範例識別符為 `19.cdb_cev1`。

      如果您在上一個步驟中選擇了**多租戶架構**，則只能指定使用 `custom-oracle-ee-cdb` 或 `custom-oracle-se2-cdb` 引擎類型的 CEV。主控台會篩選出以不同引擎類型建立的 CEV。

1. 在 **Templates (範本)** 中，選擇 **Production (生產)**。

1. 在 **Settings** (設定) 區段中，執行下列動作：

   1. 對於**資料庫執行個體識別符**，輸入資料庫執行個體的唯一名稱。

   1. 對於**主要使用者名稱**，輸入使用者名稱。您稍後可以從主控台擷取此值。

      當您連線至非 CDB 時，主要使用者就是非 CDB 的使用者。當您連線至 CDB 時，主要使用者就是 PDB 的使用者。若要連線至 CDB 根，請登入主機、啟動 SQL 用戶端，然後使用 SQL 命令建立管理使用者。

   1. 清除**自動產生密碼**。

1. 選擇**資料庫執行個體類別**。

   如需支援的類別，請參閱 [RDS Custom for Oracle 的資料庫執行個體類別支援](custom-oracle-feature-support.md#custom-reqs-limits.instances)。

1. 在 **Storage** (儲存) 區段中，執行下列動作：

   1. 針對**儲存類型**，選擇 SSD 類型：io1、io2、gp2 或 gp3。您具有下列其他選項：
      + 針對 io1、io2 或 gp3，選擇**佈建 IOPS** 的速率。io1 和 io2 的預設值為 1000，gp3 的預設值為 12000。
      + 對於 gp3，選擇**儲存體輸送量**的速率。預設為 500 MiBps。

   1. 對於**已配置的儲存體**，選擇儲存體大小。預設為 40 GiB。

1. 對於**連線**，指定您的**虛擬私有雲端 (VPC)**、**資料庫子網路群組**和 **VPC 安全群組 (防火牆)**。

1. 針對 **RDS Custom security (RDS Custom 安全)**，請執行下列操作：

   1. 針對 **IAM instance profile (IAM 執行個體設定檔)**，為您的 RDS Custom for Oracle 資料庫執行個體選擇執行個體設定檔。

      IAM 執行個體設定檔必須以 `AWSRDSCustom` 開頭，例如 *AWSRDSCustomInstanceProfileForRdsCustomInstance*。

   1. 針對**加密**，選擇**輸入金鑰 ARN** 以列出可用的 AWS KMS 金鑰。然後從清單選擇您的金鑰。

      RDS Custom 需要 AWS KMS 金鑰。如需詳細資訊，請參閱[步驟 1：建立或重複使用對稱加密 AWS KMS 金鑰](custom-setup-orcl.md#custom-setup-orcl.cmk)。

1. 對於**資料庫選項**，執行下列動作：

   1. (選用) 在**系統 ID (SID)** 中，輸入 Oracle SID 的值，也是 CDB 的名稱。SID 是管理資料庫檔案之 Oracle 資料庫執行個體的名稱。在此內容中，「Oracle 資料庫執行個體」一詞特指系統全區域 (SGA) 和 Oracle 背景程序。如果您未指定 SID，值會預設為 **RDSCDB**。

   1. (選用) 對於**初始資料庫名稱**，輸入一個名稱。預設值為 **ORCL**。在多租戶架構中，初始資料庫名稱是 PDB 名稱。
**注意**  
SID 和 PDB 名稱必須不同。

   1. 針對**選項群組**，選擇選項群組或接受預設值。
**注意**  
RDS Custom for Oracle 唯一支援的選項是 `Timezone`。如需詳細資訊，請參閱[Oracle 時區](custom-managing.timezone.md)。

   1. 對於**備份保留期**，選擇一值。您無法選擇 **0 天**。

   1. 在其餘區段，指定您偏好的 RDS Custom 資料庫執行個體的設定。如需每項設定的相關資訊，請參閱 [資料庫執行個體的設定](USER_CreateDBInstance.Settings.md)。以下設定不會出現在主控台中，也不受支援：
      + **處理器功能**
      + **儲存體自動調整規模**
      + **Database authentication (資料庫身分驗證)** 中的 **Password and Kerberos authentication (密碼和 Kerberos 身分驗證)** 選項 (僅支援 **Password authentication (密碼身分驗證)**)
      + **Performance Insights** (績效詳情)
      + **Log exports (日誌匯出)**
      + **Enable auto minor version upgrade (啟用自動次要版本升級)**
      + **刪除保護**

1. 選擇**建立資料庫**。
**重要**  
建立 RDS Custom for Oracle 資料庫執行個體時，您可能會收到下列錯誤：服務連結角色正在建立的程序中。請稍後再試。如果收到這個訊息，請等待幾分鐘的時間然後再次嘗試建立資料庫執行個體。

   **View credential details** (檢視憑證詳細資訊) 按鈕會顯示在 **Databases** (資料庫) 頁面上。

   若要檢視 RDS Custom 資料庫執行個體的主要使用者名稱和密碼，請選擇 **View credential details** (檢視憑證詳細資訊)。

   若要以主要使用者的身分連線至資料庫執行個體，請使用出現的使用者名稱和密碼。
**重要**  
您無法再次於主控台中檢視主要使用者密碼。如果您沒有記錄下來，您可能需要進行變更。若要在 RDS Custom 資料庫執行個體可供使用之後變更主要使用者密碼，請登入資料庫並執行 `ALTER USER` 命令。您無法使用主控台中的**修改**選項來重設密碼。

1. 選擇 **Databases** (資料庫) 以檢視 RDS Custom 資料庫執行個體的清單。

1. 選擇您剛剛建立的 RDS Custom 資料庫執行個體。

   在 RDS 主控台上，新 RDS Custom 資料庫執行個體的詳細資訊即會出現：
   + 在 RDS Custom 資料庫執行個體建立完成且可供使用之前，資料庫執行個體會處於 **Creating (建立中)** 狀態。狀態變更為 **Available (可用)** 時，您便能連線至資料庫執行個體。視執行個體類別和分配的儲存空間而定，新的資料庫執行個體可能需要幾分鐘才能使用。
   + **Role (角色)** 具有 **Instance (RDS Custom) (執行個體 (RDS Custom))** 值。
   + **RDS Custom automation mode** (RDS Custom 自動化模式) 具有 **Full automation** (全自動化) 值。此設定表示資料庫執行個體提供自動監控和執行個體復原。

### AWS CLI
<a name="custom-creating.CLI"></a>

您可以使用 [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) AWS CLI 命令建立 RDS Custom 資料庫執行個體。

下列選項是必要的：
+ `--db-instance-identifier`
+ `--db-instance-class` (如需支援執行個體類別的清單，請參閱 [RDS Custom for Oracle 的資料庫執行個體類別支援](custom-oracle-feature-support.md#custom-reqs-limits.instances))
+ `--engine engine-type`，其中 *engine-type* 為 `custom-oracle-ee`、`custom-oracle-se2`、`custom-oracle-ee-cdb` 或 `custom-oracle-se2-cdb`
+ `--engine-version cev` (其中 *`cev`* 是您在 [建立 CEV](custom-cev.create.md) 中指定的自訂引擎版本的名稱)
+ `--kms-key-id my-kms-key`
+ `--backup-retention-period days` (其中 *`days`* 是大於 `0` 的值)
+ `--no-auto-minor-version-upgrade`
+ `--custom-iam-instance-profile AWSRDSCustomInstanceProfile-us-east-1` (其中 *`region`* 是您要在其中建立資料庫執行個體的 AWS 區域 )

下列範例會建立名稱為 `my-cfo-cdb-instance` 的 RDS Custom 資料庫執行個體。資料庫是具有非預設名稱 *MYCDB* 的 CDB。非預設 PDB 名稱為 *MYPDB*。備份保留期為 3 天。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
 1. aws rds create-db-instance \
 2.     --engine custom-oracle-ee-cdb \
 3.     --db-instance-identifier my-cfo-cdb-instance \
 4.     --engine-version 19.cdb_cev1 \
 5.     --db-name MYPDB \
 6.     --db-system-id MYCDB \
 7.     --allocated-storage 250 \
 8.     --db-instance-class db.m5.xlarge \
 9.     --db-subnet-group mydbsubnetgroup \
10.     --master-username myuser \
11.     --master-user-password mypassword \
12.     --backup-retention-period 3 \
13.     --port 8200 \
14.     --kms-key-id my-kms-key \
15.     --no-auto-minor-version-upgrade \
16.     --custom-iam-instance-profile AWSRDSCustomInstanceProfile-us-east-1
```
在 Windows 中：  

```
 1. aws rds create-db-instance ^
 2.     --engine custom-oracle-ee-cdb ^
 3.     --db-instance-identifier my-cfo-cdb-instance ^
 4.     --engine-version 19.cdb_cev1 ^
 5.     --db-name MYPDB ^
 6.     --db-system-id MYCDB ^
 7.     --allocated-storage 250 ^
 8.     --db-instance-class db.m5.xlarge ^
 9.     --db-subnet-group mydbsubnetgroup ^
10.     --master-username myuser ^
11.     --master-user-password mypassword ^
12.     --backup-retention-period 3 ^
13.     --port 8200 ^
14.     --kms-key-id my-kms-key ^
15.     --no-auto-minor-version-upgrade ^
16.     --custom-iam-instance-profile AWSRDSCustomInstanceProfile-us-east-1
```
指定此處所顯示提示以外的密碼，作為安全最佳實務。

使用 `describe-db-instances` 命令取得執行個體的詳細資訊。

**Example**  

```
1. aws rds describe-db-instances --db-instance-identifier my-cfo-cdb-instance
```
下列部分輸出顯示引擎、參數群組及其他資訊。  

```
 1.         {   
 2.             "DBInstanceIdentifier": "my-cfo-cdb-instance",
 3.             "DBInstanceClass": "db.m5.xlarge",
 4.             "Engine": "custom-oracle-ee-cdb",
 5.             "DBInstanceStatus": "available",
 6.             "MasterUsername": "admin",
 7.             "DBName": "MYPDB",
 8.             "DBSystemID": "MYCDB",
 9.             "Endpoint": {
10.                 "Address": "my-cfo-cdb-instance.abcdefghijkl.us-east-1.rds.amazonaws.com",
11.                 "Port": 1521,
12.                 "HostedZoneId": "A1B2CDEFGH34IJ"
13.             },
14.             "AllocatedStorage": 100,
15.             "InstanceCreateTime": "2023-04-12T18:52:16.353000+00:00",
16.             "PreferredBackupWindow": "08:46-09:16",
17.             "BackupRetentionPeriod": 7,
18.             "DBSecurityGroups": [],
19.             "VpcSecurityGroups": [
20.                 {
21.                     "VpcSecurityGroupId": "sg-0a1bcd2e",
22.                     "Status": "active"
23.                 }
24.             ],
25.             "DBParameterGroups": [
26.                 {
27.                     "DBParameterGroupName": "default.custom-oracle-ee-cdb-19",
28.                     "ParameterApplyStatus": "in-sync"
29.                 }
30.             ],
31. ...
```

## 多租戶架構考量
<a name="custom-creating.overview"></a>

如果您使用 Oracle 多租戶架構 (`custom-oracle-ee-cdb` 或 `custom-oracle-se2-cdb` 引擎類型) 建立 Amazon RDS Custom for Oracle 資料庫執行個體，則您的資料庫就是容器資料庫 (CDB)。如果您未指定 Oracle 多租戶架構，則您的資料庫是使用 `custom-oracle-ee` 或 `custom-oracle-se2` 引擎類型的傳統式非 CDB。非 CDB 不能包含插入式資料庫 (PDB)。如需詳細資訊，請參閱[Amazon RDS Custom for Oracle 的資料庫架構](custom-oracle.db-architecture.md)。

當您建立 RDS Custom for Oracle CDB 執行個體時，請考慮下列事項：
+ 您只能從 Oracle Database 19c CEV 建立多租戶資料庫。
+ 您只能在 CEV 使用 `custom-oracle-ee-cdb` 或 `custom-oracle-se2-cdb` 引擎類型時建立 CDB 執行個體。
+ 如果您使用 Standard Edition 2 建立 CDB 執行個體，CDB 最多可包含 3 個 PDB。
+ 依預設，您的 CDB 會命名為 `RDSCDB` (其也是 Oracle 系統 ID (Oracle SID) 的名稱)。您可以選擇不同名稱。
+ 您的 CDB 只包含一個起始 PDB。PDB 名稱預設為 `ORCL`。您可以針對起始 PDB 選擇不同的名稱，但 Oracle SID 和 PDB 名稱不能相同。
+ RDS Custom for Oracle 不會為 PDB 提供 API。若要建立其他 PDB，請使用 Oracle SQL 命令 `CREATE PLUGGABLE DATABASE`。RDS Custom for Oracle 不會限制您可以建立的 PDB 數目。通常，您負責建立和管理 PDB，如同內部部署中一般。
+ 您無法使用 RDS API 建立、修改和刪除 PDB：您必須使用 Oracle SQL 陳述式。當您使用 Oracle SQL 建立 PDB 時，我們建議您隨後取得手動快照，以防您需要執行時間點復原 (PITR)。
+ 您無法使用 Amazon RDS API 重新命名現有的 PDB。您也不能使用 `modify-db-instance` 命令重新命名 CDB。
+ CDB 根的開放模式在主要資料庫上為 `READ WRITE`，而在掛載的待命資料庫上則為 `MOUNTED`。RDS Custom for Oracle 嘗試在開啟 CDB 時開啟所有 PDB。如果 RDS Custom for Oracle 無法開啟所有 PDB，它會發出事件 `tenant database shutdown`。

## RDS Custom 服務連結角色
<a name="custom-creating.slr"></a>

*服務連結角色*可讓 Amazon RDS Custom 存取 中的資源 AWS 帳戶。它會讓使用 RDS Custom 更簡單，因為您不需要手動新增必要許可。RDS Custom 會定義其服務連結角色的許可，除非另有定義，否則僅有 RDS Custom 可以擔任其角色。定義的許可包括信任政策和許可政策，並且該許可政策不能連接到任何其他 IAM 實體。

當您建立 RDS Custom 資料庫執行個體時，Amazon RDS 和 RDS Custom 服務連結角色兩者都會建立 (如果尚未存在) 並且使用。如需詳細資訊，請參閱[使用 Amazon RDS 的服務連結角色](UsingWithRDS.IAM.ServiceLinkedRoles.md)。

第一次建立 RDS Custom for Oracle 資料庫執行個體時，您可能會收到下列錯誤：服務連結角色正在建立的程序中。請稍後再試。如果收到這個訊息，請等待幾分鐘的時間然後再次嘗試建立資料庫執行個體。

## 在 RDS Custom for Oracle 資料庫執行個體上安裝其他軟體元件
<a name="custom-install-add-software"></a>

在新建立的資料庫執行個體中，您的資料庫環境包含 Oracle 二進位檔、資料庫和資料庫接聽程式。您可能想要在資料庫執行個體的主機作業系統上安裝其他軟體。例如，您可能想要安裝 Oracle Application Express (APEX)、Oracle Enterprise Manager (OEM) 代理程式或 Guardium S-TAP 代理程式。如需指導方針和高階指示，請參閱詳細的 AWS 部落格文章在 [Amazon RDS Custom for Oracle 上安裝其他軟體元件](https://aws.amazon.com//blogs/database/install-additional-software-components-on-amazon-rds-custom-for-oracle/)。

# 使用工作階段管理員連線至 RDS Custom 資料庫執行個體
<a name="custom-creating.ssm"></a>

在建立 RDS Custom 資料庫執行個體之後，您可以使用 AWS Systems Manager Session Manager 連線到該執行個體。當您的資料庫執行個體無法公開存取時，這是偏好的技術。

工作階段管理員可讓您透過瀏覽器型 Shell 或透過 AWS CLI 存取 Amazon EC2 執行個體。如需詳細資訊，請參閱 [AWS Systems Manager 工作階段管理員](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html)。

## 主控台
<a name="custom-managing.ssm.console"></a>

**若要使用工作階段管理員連線至資料庫執行個體**

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

1. 在導覽窗格中選擇 **Databases** (資料庫)，然後選擇您要連線的 RDS Custom 資料庫執行個體。

1. 選擇 **Configuration (組態)**。

1. 請記下資料庫執行個體的 **Resource ID (資源 ID)**。例如，資源 ID 可能是 `db-ABCDEFGHIJKLMNOPQRS0123456`。

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 尋找 EC2 執行個體的名稱，然後按一下與其相關聯的執行個體 ID。例如，執行個體 ID 可能是 `i-abcdefghijklm01234`。

1. 選擇**連線**。

1. 選擇 **Session Manager (工作階段管理員)**。

1. 選擇**連線**。

   您的工作階段會開啟一個視窗。

## AWS CLI
<a name="custom-managing.ssm.CLI"></a>

您可以使用 AWS CLI 連線至 RDS Custom 資料庫執行個體。此技術需要 AWS CLI 的工作階段管理員外掛程式。若要了解如何安裝外掛程式，請參閱[安裝 AWS CLI 的工作階段管理員外掛程式](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)。

若要尋找 RDS Custom 資料庫執行個體的資料庫資源 ID，請使用 `aws rds [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html)`。

```
aws rds describe-db-instances \
    --query 'DBInstances[*].[DBInstanceIdentifier,DbiResourceId]' \
    --output text
```

下列範例輸出顯示 RDS Custom 執行個體的資源 ID。字首是 `db-`。

```
db-ABCDEFGHIJKLMNOPQRS0123456
```

若要尋找資料庫執行個體的 EC2 執行個體 ID，請使用 `aws ec2 describe-instances`。以下範例使用 `db-ABCDEFGHIJKLMNOPQRS0123456` 做為資源 ID。

```
aws ec2 describe-instances \
    --filters "Name=tag:Name,Values=db-ABCDEFGHIJKLMNOPQRS0123456" \
    --output text \
    --query 'Reservations[*].Instances[*].InstanceId'
```

以下範例輸出顯示 EC2 執行個體 ID。

```
i-abcdefghijklm01234
```

使用 `aws ssm start-session` 命令，在 `--target` 參數中提供 EC2 執行個體 ID。

```
aws ssm start-session --target "i-abcdefghijklm01234"
```

成功的連線看起來如下。

```
Starting session with SessionId: yourid-abcdefghijklm1234
[ssm-user@ip-123-45-67-89 bin]$
```

## 使用 SSH 連線到您的 RDS Custom 資料庫執行個體
<a name="custom-creating.ssh"></a>

Secure Shell 通訊協定 (SSH) 是一種支援透過不安全網路進行加密通訊的網路通訊協定。建立 RDS Custom 資料庫執行個體之後，您可以使用 SSH 用戶端連線到此執行個體。如需詳細資訊，請參閱[使用 SSH 連線至您的 Linux 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html)。

您的 SSH 連線技術取決於您的資料庫執行個體是否為私有，這表示它不接受來自公用網際網路的連線。在這種情況下，您必須使用 SSH 通道將 ssh 公用程式連線到執行個體。這項技術會在現有的 SSH 工作階段內使用專用資料串流 (通道) 傳輸資料。您可以使用 AWS Systems Manager來設定 SSH 通道。

**注意**  
支援存取私有執行個體的各種策略。若要了解如何使用堡壘主機，將 SSH 用戶端連線到私有執行個體，請參閱 [AWS上的 Linux 堡壘主機](https://aws.amazon.com/solutions/implementations/linux-bastion/)。若要了解如何設定連接埠轉送，請參閱[使用 AWS Systems Manager Session Manager進行連接埠轉送](https://aws.amazon.com/blogs/aws/new-port-forwarding-using-aws-system-manager-sessions-manager/)。

如果您的資料庫執行個體位於公有子網路且具有公開可用的設定，則不需要 SSH 通道。您可以像使用公有 Amazon EC2 執行個體一樣使用 SSH 進行連線。

若要將 SSH 用戶端連線到您的資料庫執行個體，請完成下列步驟：

1. [步驟 1：將您的資料庫執行個體設定為允許 SSH 連線](#custom-managing.ssh.port-22)

1. [步驟 2：擷取您的 SSH 私密金鑰和 EC2 執行個體 ID](#custom-managing.ssh.obtaining-key)

1. [步驟 3：使用 ssh 公用程式連線到 EC2 執行個體](#custom-managing.ssh.connecting)

### 步驟 1：將您的資料庫執行個體設定為允許 SSH 連線
<a name="custom-managing.ssh.port-22"></a>

若要確保您的資料庫執行個體能夠接受 SSH 連線，請執行下列動作：
+ 請確定您的資料庫執行個體安全群組允許 TCP 連接埠 22 上的傳入連線。

  若要了解如何設定資料庫執行個體的安全群組，請參閱 [使用安全群組控制存取](Overview.RDSSecurityGroups.md)。
+ 如果您不打算使用 SSH 通道，請確保您的資料庫執行個體位於公有子網路且可公開存取。

  在主控台中，可在資料庫詳細資訊頁面的**連線能力與安全性**索引標籤上**公開存取**相關欄位。若要在 CLI 中檢查您的設定，請執行下列命令：

  ```
  aws rds describe-db-instances \
  --query 'DBInstances[*].{DBInstanceIdentifier:DBInstanceIdentifier,PubliclyAccessible:PubliclyAccessible}' \
  --output table
  ```

  若要變更資料庫執行個體的協助工具設定，請參閱 [修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。

### 步驟 2：擷取您的 SSH 私密金鑰和 EC2 執行個體 ID
<a name="custom-managing.ssh.obtaining-key"></a>

若要使用 SSH 連線到資料庫執行個體，您需要與執行個體相關聯的 SSH 金鑰對。RDS Custom 會代表您建立 SSH 金鑰對，使用命名慣例 `do-not-delete-rds-custom-ssh-privatekey-resource_id-uuid` 或 `rds-custom!oracle-do-not-delete-resource_id-uuid-ssh-privatekey`、 AWS Secrets Manager 將您的 SSH 私有金鑰存放為秘密。

使用 AWS 管理主控台 或 擷取您的 SSH 私密金鑰 AWS CLI。如果您的執行個體具有公用 DNS，且您不打算使用 SSH 通道，亦請擷取 DNS 名稱。您可以指定 DNS 名稱進行公有連線。

#### 主控台
<a name="custom-managing.ssh.obtaining-key.console"></a>

**擷取秘密 SSH 金鑰**

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

1. 在導覽窗格中選擇 **Databases** (資料庫)，然後選擇您要連線的 RDS Custom 資料庫執行個體。

1. 選擇 **Configuration (組態)**。

1. 請記下 **Resource ID (資源 ID)** 值。例如，資料庫執行個體資源 ID 可能是 `db-ABCDEFGHIJKLMNOPQRS0123456`。

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 尋找 EC2 執行個體的名稱，然後選擇與其相關聯的執行個體 ID。例如，EC2 執行個體 ID 可能是 `i-abcdefghijklm01234`。

1. 在 **Details (詳細資訊)** 中尋找 **Key pair name (金鑰對名稱)**。配對名稱包含資料庫執行個體資源 ID。例如，配對名稱可能是 `do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c` 或 `rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey`。

1. 如果您的 EC2 執行個體是公有的，請記下**公有 IPv4 DNS**。例如，公有網域名稱系統 (DNS) 地址可能是 `ec2-12-345-678-901.us-east-2.compute.amazonaws.com`。

1. 在 https：//[https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/) 開啟 AWS Secrets Manager 主控台。

1. 選擇與金鑰對具有相同名稱的密碼。

1. 選擇 **Retrieve secret value (擷取秘密值)**。

1. 將 SSH 私有金鑰複製到文字檔，然後以 `.pem` 副檔名儲存檔案。例如，將檔案儲存為 `/tmp/do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem` 或 `/tmp/rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey.pem`。

#### AWS CLI
<a name="custom-managing.ssh.obtaining-key.CLI"></a>

若要擷取 SSH 私有金鑰並將其儲存在 .pem 檔案中，您可以使用 AWS CLI。

1. 使用 `aws rds [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html)` 尋找 RDS Custom 資料庫執行個體的資料庫資源 ID。

   ```
   aws rds describe-db-instances \
       --query 'DBInstances[*].[DBInstanceIdentifier,DbiResourceId]' \
       --output text
   ```

   下列範例輸出顯示 RDS Custom 執行個體的資源 ID。字首是 `db-`。

   ```
   db-ABCDEFGHIJKLMNOPQRS0123456
   ```

1. 使用 `aws ec2 describe-instances` 尋找資料庫執行個體的 EC2 執行個體 ID。以下範例使用 `db-ABCDEFGHIJKLMNOPQRS0123456` 做為資源 ID。

   ```
   aws ec2 describe-instances \
       --filters "Name=tag:Name,Values=db-ABCDEFGHIJKLMNOPQRS0123456" \
       --output text \
       --query 'Reservations[*].Instances[*].InstanceId'
   ```

   以下範例輸出顯示 EC2 執行個體 ID。

   ```
   i-abcdefghijklm01234
   ```

1. 若要尋找金鑰名稱，請指定 EC2 執行個體 ID。下列範例描述 EC2 執行個體 `i-0bdc4219e66944afa`。

   ```
   aws ec2 describe-instances \
       --instance-ids i-0bdc4219e66944afa \
       --output text \
       --query 'Reservations[*].Instances[*].KeyName'
   ```

   下列範例輸出會顯示金鑰名稱，該名稱使用命名格式 `do-not-delete-rds-custom-ssh-privatekey-resource_id-uuid` 或 `rds-custom!oracle-do-not-delete-resource_id-uuid-ssh-privatekey`。

   ```
   do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c
   rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey
   ```

1. 使用 `aws secretsmanager` 將私有金鑰儲存在以金鑰命名的 .pem 檔案中。

   下列範例會將金鑰 `do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c` 儲存在 `/tmp` 目錄中。

   ```
   aws secretsmanager get-secret-value \
       --secret-id do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c \
       --query SecretString \
       --output text >/tmp/do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem
   ```

   下列範例會將金鑰 `rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey` 儲存在 `/tmp` 目錄中。

   ```
   aws secretsmanager get-secret-value \
       --secret-id rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey \
       --query SecretString \
       --output text >/tmp/rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey.pem
   ```

### 步驟 3：使用 ssh 公用程式連線到 EC2 執行個體
<a name="custom-managing.ssh.connecting"></a>

您的連線技術取決於您要連線到私有資料庫執行個體還是連線到公有執行個體。私有連線需要您透過 AWS Systems Manager設定 SSH 通道。

**使用 ssh 公用程式連線到 EC2 執行個體**

1. 若為私人連線，請修改 SSH 組態檔，以透過 Proxy 將命令傳送至 AWS Systems Manager Session Manager。若為公有連線，請跳至步驟 2。

   將下列這幾行新增至 `~/.ssh/config`。針對名稱開頭為 `i-` 或 `mi-` 的主機，這些行會透過 Proxy 傳送 SSH 命令。

   ```
   Host i-* mi-*
       ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
   ```

1. 變更為包含 .pem 檔案的目錄。使用 `chmod`，將許可設定為 `400`。

   下列範例會變更為 `/tmp` 目錄，並設定 .pem 檔案 `do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem` 的許可。

   ```
   cd /tmp
   chmod 400 do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem
   ```

   下列範例會變更為 `/tmp` 目錄，並設定 .pem 檔案 `rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey.pem` 的許可。

   ```
   cd /tmp
   chmod 400 rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey.pem
   ```

1. 執行 ssh 公用程式，指定 .pem 檔案和公有 DNS 名稱 (進行公用連線) 或 EC2 執行個體 ID (進行私有連線)。以使用者 `ec2-user` 身分登入。

   下列範例會使用 DNS 名稱 `ec2-12-345-678-901.us-east-2.compute.amazonaws.com` 連線至公有執行個體。

   ```
   # .pem file using naming prefix do-not-delete
   ssh -i \
     "do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem" \
     ec2-user@ec2-12-345-678-901.us-east-2.compute.amazonaws.com
   
   # .pem file using naming prefix rds-custom!oracle-do-not-delete
   ssh -i \
     "rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey.pem" \
     ec2-user@ec2-12-345-678-901.us-east-2.compute.amazonaws.com
   ```

   下列範例會使用 EC2 執行個體 ID `i-0bdc4219e66944afa` 連線到私有執行個體。

   ```
   # .pem file using naming prefix do-not-delete
   ssh -i \
     "do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem" \
     ec2-user@i-0bdc4219e66944afa
   
   # .pem file using naming prefix rds-custom!oracle-do-not-delete
   ssh -i \
     "rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey.pem" \
     ec2-user@i-0bdc4219e66944afa
   ```

# 以 SYS 身分登入您的 RDS Custom for Oracle 資料庫
<a name="custom-creating.sysdba"></a>

在建立 RDS Custom 資料庫執行個體之後，您可以使用者 `SYS` 身分登入 Oracle 資料庫，這將給予您 `SYSDBA` 權限。您有以下登入選項：
+ 從 Secrets Manager 取得 `SYS` 密碼，並在 SQL 用戶端中指定此密碼。
+ 使用作業系統身分驗證來登入您的資料庫。在此情況下，您不需要密碼。

## 為您的 RDS Custom for Oracle 資料庫尋找 SYS 密碼
<a name="custom-creating.sysdba.pwd"></a>

您可以在 API 呼叫中指定主要使用者名稱，以 `SYS` 或 `SYSTEM` 身分登入 Oracle 資料庫。`SYS` 和 `SYSTEM` 的密碼存放在 Secrets Manager 中。

秘密使用命名格式 `do-not-delete-rds-custom-resource_id-uuid` 或 `rds-custom!oracle-do-not-delete-resource_id-uuid`。您可以使用 AWS 管理主控台尋找密碼。

### 主控台
<a name="custom-creating.sysdba.pwd.console"></a>

**在 Secrets Manager 中為您的資料庫尋找 SYS 密碼**

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

1. 在 RDS 主控台中，完成下列步驟︰

   1. 在導覽窗格中，選擇 **Databases** (資料庫)。

   1. 選擇 RDS Custom for Oracle 資料庫執行個體的名稱。

   1. 選擇 **Configuration (組態)**。

   1. 複製**資源 ID** 下方的值。例如，您的資源 ID 可能是 **db-ABC12CDE3FGH4I5JKLMNO6PQR7**。

1. 前往以下位置開啟機密管理員控制台：[https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)。

1. 在 Secrets Manager 主控台中，完成下列步驟︰

   1. 在左側導覽窗格中，選擇**秘密**。

   1. 依您在步驟 2.d 中複製的資源 ID 篩選秘密。

   1. 選擇使用命名格式 **do-not-delete-rds-custom-*resource\$1id*-*uuid*** 或 **rds-custom\$1oracle-do-not-delete-*resource\$1id*-*uuid*** 的秘密。*resource\$1id* 是您在步驟 2.d 中複製的資源 ID。

      例如，如果您的資源 ID 是 **db-ABC12CDE3FGH4I5JKLMNO6PQR7**，而 UUID 是 **1234ab**，則您的秘密名為 **do-not-delete-rds-custom-db-ABC12CDE3FGH4I5JKLMNO6PQR7-1234ab** 或 **rds-custom\$1oracle-do-not-delete-db-ABC12CDE3FGH4I5JKLMNO6PQR7-1234ab**。

   1. 在**秘密值**中，選擇**擷取秘密值**。

   1. 在**金鑰/值**中，複製**密碼**的值。

1. 在資料庫執行個體上安裝 SQL\$1Plus，然後以 `SYS` 身分登入資料庫。如需詳細資訊，請參閱[步驟 3：將您的 SQL 連線至 Oracle 資料庫執行個體](CHAP_GettingStarted.CreatingConnecting.Oracle.md#CHAP_GettingStarted.Connecting.Oracle)。

## 使用作業系統身分驗證，登入 RDS Custom for Oracle 資料庫
<a name="custom-creating.sysdba.pwd"></a>

作業系統使用者 `rdsdb` 擁有 Oracle 資料庫二進位檔案。您可以切換到 `rdsdb` 使用者並登入 RDS Custom for Oracle 資料庫，無需密碼。

1. 使用 連線至資料庫執行個體 AWS Systems Manager。如需詳細資訊，請參閱[使用工作階段管理員連線至 RDS Custom 資料庫執行個體](custom-creating.ssm.md)。

1. 切換到 `rdsdb` 使用者。

   ```
   sudo su - rdsdb
   ```

1. 使用作業系統身分驗證來登入您的資料庫。您可以使用 `sqlplus / as sysdba` 或 `sql` 別名。

   ```
   $ sqlplus / as sysdba
   
   SQL*Plus: Release 21.0.0.0.0 - Production on Wed Apr 12 20:11:08 2023
   Version 21.9.0.0.0
   
   Copyright (c) 1982, 2020, Oracle.  All rights reserved.
   
   
   Connected to:
   Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
   Version 19.10.0.0.0
   ```

   或者，您可以使用 `sql` 別名。

   ```
   $ sql
   ```

# 管理 Amazon RDS Custom for Oracle 資料庫執行個體
<a name="custom-managing"></a>

Amazon RDS Custom 支援 Amazon RDS 資料庫執行個體一般管理任務的子集。接著，您可以使用 AWS 管理主控台 和 AWS CLI 尋找支援的 RDS Custom for Oracle 管理任務的指示。

**Topics**
+ [使用 RDS Custom for Oracle 中的容器資料庫 (CDB)](custom-managing.multitenant.md)
+ [使用 RDS Custom for Oracle 的高可用性](custom-managing.ha.md)
+ [自訂 RDS Custom 環境](custom-managing.customizing-env.md)
+ [修改您的 RDS Custom for Oracle 資料庫執行個體](custom-managing.modifying.md)
+ [變更 RDS Custom for Oracle 資料庫執行個體的字元集](custom-managing.character-set.md)
+ [在 RDS Custom for Oracle 中設定 NLS\$1LANG 值](custom-managing.nlslang.md)
+ [支援透明資料加密](#custom-managing.tde)
+ [標記 RDS Custom for Oracle 資源](custom-managing.tagging.md)
+ [刪除 RDS Custom for Oracle 資料庫執行個體](custom-managing.deleting.md)

# 使用 RDS Custom for Oracle 中的容器資料庫 (CDB)
<a name="custom-managing.multitenant"></a>

您可以使用 Oracle 多租戶架構 (`custom-oracle-ee-cdb` 或 `custom-oracle-se2-cdb` 引擎類型)，或使用傳統的非 CDB 架構 (`custom-oracle-ee` 或 `custom-oracle-se2` 引擎類型) 建立 RDS Custom for Oracle DB 資料庫執行個體。當您建立一個容器資料庫 (CDB) 時，它包含一個插入式資料庫 (PDB)和一個 PDB 種子。您可以使用 Oracle SQL 手動建立額外的 PDB。

## PDB 和 CDB 名稱
<a name="custom-managing.pdb-names"></a>

建立 RDS Custom for Oracle CDB 執行個體時，您會指定初始 PDB 的名稱。依預設，您的初始 PDB 會命名為 `ORCL`。您可以選擇不同名稱。

根據預設，您的 CDB 會命名為 `RDSCDB`。您可以選擇不同名稱。CDB 名稱也是 Oracle 系統識別符 (SID) 的名稱，可唯一識別管理 CDB 的記憶體和程序。如需 Oracle SID 的詳細資訊，請參閱《Oracle 資料庫概念》**中的 [Oracle 系統識別符 (SID)](https://docs.oracle.com/en/database/oracle/oracle-database/19/cncpt/oracle-database-instance.html#GUID-8BB8140D-63ED-454E-AAC3-1964F80D102D)。

您無法使用 Amazon RDS API 重新命名現有的 PDB。您也不能使用 `modify-db-instance` 命令重新命名 CDB。

## PDB 管理
<a name="custom-managing.pdb-creation"></a>

在 RDS Custom for Oracle 共同責任模型中，您負責管理 PDB 並建立任何額外的 PDB。RDS Custom 不會限制 PDB 的數目。您可以透過連線至 CDB 根並執行 SQL 陳述式，來手動建立、修改和刪除 PDB。在 Amazon EBS 資料磁碟區上建立 PDB，以防止資料庫執行個體超出支援周邊。

若要修改您的 CDB 或 PDB，請完成下列步驟：

1. 暫停自動化以防止干擾 RDS Custom 動作。

1. 修改您的 CDB 或 PDB。

1. 備份任何已修改的 PDB。

1. 繼續 RDS Custom 自動化。

## 自動復原 CDB 根
<a name="custom-managing.cdb-root"></a>

RDS Custom 會以其將非 CDB 保持開啟狀態的同一方式，將 CDB 根保持開啟狀態。如果 CDB 根的狀態變更，監控和復原自動化會嘗試將 CDB 根復原到所需的狀態。當根 CDB 關閉 (`RDS-EVENT-0004`) 或重新啟動 (`RDS-EVENT-0006`) 時，您會收到 RDS 事件通知，類似於非 CDB 架構。RDS Custom 會嘗試在資料庫執行個體啟動時以 `READ WRITE` 模式開啟所有 PDB。如果某些 PDB 無法開啟，RDS Custom 會發佈下列事件：`tenant database shutdown`。

# 使用 RDS Custom for Oracle 的高可用性
<a name="custom-managing.ha"></a>

RDS Custom for Oracle 透過多可用區域部署提供內建的高可用性。或者，您可以根據您的使用案例，使用 Oracle Data Guard 做為客戶管理的選項。

## 多可用區域部署 (全受管)
<a name="rds-custom-oracle-multiaz-deployments"></a>

在 RDS Custom for Oracle 的多可用區域部署中，Amazon RDS 會自動佈建，並在不同的可用區域 (AZ) 中維持同步待命複本。主要資料庫執行個體會在待命複本的可用區域間進行同步複製，以提供資料備援。Enterprise Edition 和 Standard Edition 2 都支援多可用區域部署。如需詳細資訊，請參閱 [管理 RDS Custom for Oracle 的多可用區域部署](custom-oracle-multiaz.md)。

## Oracle Data Guard (客戶自管)
<a name="rds-custom-oracle-data-guard"></a>

或者，您也可以手動設定 Oracle Data Guard 在 RDS Custom for Oracle 資料庫執行個體之間複寫資料，以達到高可用性。主要資料庫執行個體會自動將資料同步至待命執行個體。只有 Enterprise Edition 支援 Oracle Data Guard。

您可以使用下列方式設定高可用性環境：
+ 在不同 AZ 中設定待命執行個體，以因應 AZ 故障。
+ 將待命資料庫放置於掛載或唯讀模式。唯讀模式需要 Oracle Active Data Guard 授權。
+ 從主要資料庫容錯移轉或切換至待命資料庫，而不會遺失資料。
+ 透過設定內部部署執行個體的高可用性，然後容錯移轉或切換至 RDS Custom for Oracle 待命資料庫來遷移資料。

若要了解如何設定 Oracle Data Guard 以獲得高可用性，請參閱 AWS 部落格[使用僅供讀取複本建置 RDS Custom for Oracle 的高可用性](https://aws.amazon.com/blogs/database/build-high-availability-for-amazon-rds-custom-for-oracle-using-read-replicas/)。可執行以下任務：
+ 使用虛擬私有網路 (VPN) 通道為您的高可用性執行個體加密傳輸中的資料。RDS Custom for Oracle 不會自動設定傳輸中加密。
+ 設定 Oracle 快速容錯移轉觀察程式 (FSFO) 來監控您的高可用性執行個體。
+ 當滿足必要條件時，允許觀察程式執行自動容錯移轉。

# 自訂 RDS Custom 環境
<a name="custom-managing.customizing-env"></a>

RDS Custom for Oracle 包含內建功能，可讓您自訂資料庫執行個體環境，而無需暫停自動化。例如，您可以使用 RDS API 自訂環境，如下所示：
+ 建立並還原資料庫快照以建立複製環境。
+ 建立僅供讀取複本。
+ 修改儲存體設定。
+ 變更 CEV 以套用版本更新

對於某些自訂，例如變更字元集，您無法使用 RDS API。在這些情況下，您需要以根使用者身分存取 Amazon EC2 執行個體，或以 `SYSDBA` 身分登入 Oracle 資料庫，才能手動變更環境。

若要手動自訂執行個體，您必須暫停並繼續 RDS Custom 自動化。此暫停可確保您的自訂不會干擾 RDS Custom 自動化。如此一來，您就可以避免中斷支援周邊，這會將執行個體置於 `unsupported-configuration` 狀態，直到您修正了基本問題為止。當您修改 RDS Custom for Oracle 資料庫執行個體時，暫停和繼續是唯一支援的自動化任務。

## 自訂 RDS Custom 環境的一般步驟
<a name="custom-managing.pausing.general-steps"></a>

若要自訂 RDS Custom 資料庫執行個體，請完成下列步驟：

1. 使用主控台或 CLI 在指定期間暫停 RDS Custom 自動化。

1. 識別基礎 Amazon EC2 執行個體。

1. 使用 SSH 金鑰或 AWS Systems Manager連線至基礎 Amazon EC2 執行個體。

1. 在資料庫或作業系統層驗證您目前的組態設定。

   您可以透過比較初始組態與變更的組態來驗證您的變更。根據自訂類型，使用作業系統工具或資料庫查詢。

1. 視需要自訂您的 RDS Custom for Oracle 資料庫執行個體。

1. 如有需要，重新啟動您的執行個體或資料庫。
**注意**  
在內部部署 Oracle CDB 中，您可以使用內建命令或在啟動觸發條件之後，為 PDB 保留指定的開啟模式。當 CDB 重新啟動時，此機制會將 PDB 帶至指定的狀態。開啟您的 CDB 時，RDS Custom 自動化會捨棄任何使用者指定的保留狀態，並嘗試開啟所有 PDB。如果 RDS Custom 無法開啟所有 PDB，則會發出下列事件：`The following PDBs failed to open: list-of-PDBs`。

1. 驗證新的組態設定，方法是將這些設定與先前的設定進行比較。

1. 採取下列其中一種方式繼續 RDS Custom 自動化：
   + 手動繼續自動化。
   + 等待暫停期間結束。在此情況下，RDS Custom 會自動繼續監控和執行個體復原。

1. 驗證 RDS Custom 自動化架構

   如果您已正確地遵循上述步驟，RDS Custom 會啟動自動備份。主控台中的執行個體狀態會顯示**可用**。

如需最佳實務和step-by-step說明，請參閱 AWS 部落格文章[對 Amazon RDS Custom for Oracle 執行個體進行組態變更：第 1 部分](https://aws.amazon.com/blogs/database/part-1-make-configuration-changes-to-an-amazon-rds-custom-for-oracle-instance/)，以及[重新建立 Amazon RDS Custom for Oracle 資料庫：第 2 部分](https://aws.amazon.com/blogs/database/part-2-recreate-an-amazon-rds-custom-for-oracle-database/)。

## 暫停和繼續 RDS Custom 資料庫執行個體
<a name="custom-managing.pausing"></a>

您可以使用主控台或 CLI，暫停和繼續資料庫執行個體的自動化。

### 主控台
<a name="custom-managing.pausing.console"></a>

**若要暫停或繼續 RDS Custom 自動化**

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

1. 在導覽窗格中選擇 **Databases** (資料庫)，然後選擇您要修改的 RDS Custom 資料庫執行個體。

1. 選擇 **Modify (修改)**。**Modify DB instance (修改資料庫執行個體)** 頁面隨即出現。

1. 針對 **RDS Custom automation mode** (RDS Custom 自動化模式)，選擇下列其中一個選項：
   + **Paused** (暫停) 會暫停 RDS Custom 資料庫執行個體的監控和執行個體復原。輸入您想要的 **Automation mode duration** (自動化模式持續時間) 的暫停持續時間 (以分鐘為單位)。最小值為 60 分鐘 (預設值)。最大值為 1,440 分鐘。
   + **Full automation (全自動化)** 會繼續自動化。

1. 選擇 **Continue (繼續)** 以檢查修改的摘要。

   訊息隨即顯示，指出 RDS Custom 將會立即套用變更。

1. 如果您的變更正確，請選擇 **Modify DB instance (修改資料庫執行個體)**。或者，選擇 **Back (上一步)** 以編輯變更，或是選擇 **Cancel (取消)** 以取消變更。

   在 RDS 主控台上，修改的詳細資訊即會出現。如果您暫停了自動化，您的 RDS Custom 資料庫執行個體的 **Status (狀態)** 會指出 **Automation paused (自動化已暫停)**。

1. (選用) 在導覽窗格中，選擇 **Databases** (資料庫)，然後再執行 RDS Custom 資料庫執行個體。

   在 **Summary** (摘要) 窗格中，**RDS Custom automation mode** (RDS Custom 自動化模式) 會指出自動化狀態。如果暫停自動化，則值為 **Paused (暫停)。自動化會在 *num* 分鐘內繼續**。

### AWS CLI
<a name="custom-managing.pausing.CLI"></a>

若要暫停或繼續 RDS Custom 自動化，請使用 `modify-db-instance` AWS CLI 命令。使用所需的參數 `--db-instance-identifier` 識別資料庫執行個體。使用下列參數控制自動化模式：
+ `--automation-mode` 會指定資料庫執行個體的暫停狀態。有效值為 `all-paused` (會暫停自動化) 以及 `full` (會繼續自動化)。
+ `--resume-full-automation-mode-minutes` 會指定暫停的持續時間。預設值為 60 分鐘。

**注意**  
無論您指定 `--no-apply-immediately` 或 `--apply-immediately`，RDS Custom 會盡快以非同步的方式套用修改。

在命令回應中，`ResumeFullAutomationModeTime` 會以 UTC 時間戳記的形式表示繼續時間。當自動化模式為 `all-paused` 時，您可以使用 `modify-db-instance` 來繼續自動化模式或延長暫停時間。不支援其他 `modify-db-instance` 加密選項。

下列範例會暫停 `my-custom-instance` 的自動化 90 分鐘。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --automation-mode all-paused \
    --resume-full-automation-mode-minutes 90
```
在 Windows 中：  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --automation-mode all-paused ^
    --resume-full-automation-mode-minutes 90
```

下列範例會將暫停持續時間延長額外 30 分鐘。30 分鐘會新增至 `ResumeFullAutomationModeTime` 中顯示的原始時間。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --automation-mode all-paused \
    --resume-full-automation-mode-minutes 30
```
在 Windows 中：  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --automation-mode all-paused ^
    --resume-full-automation-mode-minutes 30
```

下列範例會繼續 `my-custom-instance` 的全自動化。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --automation-mode full \
```
在 Windows 中：  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --automation-mode full
```
在下面的部分範例輸出中，待定 `AutomationMode` 值為 `full`。  

```
{
    "DBInstance": {
        "PubliclyAccessible": true,
        "MasterUsername": "admin",
        "MonitoringInterval": 0,
        "LicenseModel": "bring-your-own-license",
        "VpcSecurityGroups": [
            {
                "Status": "active",
                "VpcSecurityGroupId": "0123456789abcdefg"
            }
        ],
        "InstanceCreateTime": "2020-11-07T19:50:06.193Z",
        "CopyTagsToSnapshot": false,
        "OptionGroupMemberships": [
            {
                "Status": "in-sync",
                "OptionGroupName": "default:custom-oracle-ee-19"
            }
        ],
        "PendingModifiedValues": {
            "AutomationMode": "full"
        },
        "Engine": "custom-oracle-ee",
        "MultiAZ": false,
        "DBSecurityGroups": [],
        "DBParameterGroups": [
            {
                "DBParameterGroupName": "default.custom-oracle-ee-19",
                "ParameterApplyStatus": "in-sync"
            }
        ],
        ...
        "ReadReplicaDBInstanceIdentifiers": [],
        "AllocatedStorage": 250,
        "DBInstanceArn": "arn:aws:rds:us-west-2:012345678912:db:my-custom-instance",
        "BackupRetentionPeriod": 3,
        "DBName": "ORCL",
        "PreferredMaintenanceWindow": "fri:10:56-fri:11:26",
        "Endpoint": {
            "HostedZoneId": "ABCDEFGHIJKLMNO",
            "Port": 8200,
            "Address": "my-custom-instance.abcdefghijk.us-west-2.rds.amazonaws.com"
        },
        "DBInstanceStatus": "automation-paused",
        "IAMDatabaseAuthenticationEnabled": false,
        "AutomationMode": "all-paused",
        "EngineVersion": "19.my_cev1",
        "DeletionProtection": false,
        "AvailabilityZone": "us-west-2a",
        "DomainMemberships": [],
        "StorageType": "gp2",
        "DbiResourceId": "db-ABCDEFGHIJKLMNOPQRSTUVW",
        "ResumeFullAutomationModeTime": "2020-11-07T20:56:50.565Z",
        "KmsKeyId": "arn:aws:kms:us-west-2:012345678912:key/aa111a11-111a-11a1-1a11-1111a11a1a1a",
        "StorageEncrypted": false,
        "AssociatedRoles": [],
        "DBInstanceClass": "db.m5.xlarge",
        "DbInstancePort": 0,
        "DBInstanceIdentifier": "my-custom-instance",
        "TagList": []
    }
```

# 修改您的 RDS Custom for Oracle 資料庫執行個體
<a name="custom-managing.modifying"></a>

修改 Amazon RDS 資料庫執行個體類似於修改 Amazon RDS 執行個體，但是您只能執行下列動作。您可以變更如下設定：
+ DB instance class (資料庫執行個體類別)
+ 儲存體配置和類型
+ Backup retention period (備份保留期間)
+ 刪除保護
+ Option group (選項群組)
+ CEV (請參閱 [升級 RDS Custom for Oracle 資料庫執行個體](custom-upgrading-modify.md))
+ 站點

**Topics**
+ [修改資料庫執行個體儲存體時的需求和限制](#custom-managing.storage-modify)
+ [修改資料庫執行個體類別時的需求和限制](#custom-managing.instance-class-reqs)
+ [當您修改執行個體類別時，RDS Custom 如何建立您的資料庫執行個體](#custom-managing.instance-class-resources)
+ [修改您的 RDS Custom for Oracle 資料庫執行個體](#custom-managing.modifying.procedure)

## 修改資料庫執行個體儲存體時的需求和限制
<a name="custom-managing.storage-modify"></a>

修改 RDS Custom for Oracle 資料庫執行個體的儲存體時，請考慮下列需求和限制：
+ 針對 RDS Custom for Oracle 配置的儲存體下限為 40 GiB，上限為 64 TiB。
+ 與 Amazon RDS 一樣，您無法減少配置的儲存體。這是 Amazon EBS 磁碟區的限制。
+ 針對 RDS Custom 資料庫執行個體不支援儲存體自動擴展。
+ 手動連接至 RDS Custom 資料庫執行個體的任何儲存磁碟區都在支援周邊外面。

  如需詳細資訊，請參閱[RDS Custom 支援周邊](custom-concept.md#custom-troubleshooting.support-perimeter)。
+ RDS Custom 不支援磁帶 (標準) Amazon EBS 儲存體。您只能選擇 io1、io2、gp2 或 gp3 SSD 儲存類型。

如需 Amazon EBS 儲存體的詳細資訊，請參閱 [Amazon RDS 資料庫執行個體儲存體](CHAP_Storage.md)。如需與儲存體修改相關的一般資訊，請參閱 [使用適合 Amazon RDS 資料庫執行個體的儲存體](USER_PIOPS.StorageTypes.md)。

## 修改資料庫執行個體類別時的需求和限制
<a name="custom-managing.instance-class-reqs"></a>

修改 RDS Custom for Oracle 資料庫執行個體的執行個體類別時，請考慮下列需求和限制：
+ 您的資料庫執行個體必須處於 `available` 狀態。
+ 您的資料庫執行個體必須在根磁碟區、資料磁碟區和二進位磁碟區上至少具有 100 MiB 的可用空間。
+ 使用預設彈性網絡介面 (ENI) 時，您只能將單一彈性 IP (EIP) 指派給 RDS Custom for Oracle 資料庫執行個體。如果您將多個 ENI 連接到資料庫執行個體，修改操作會失敗。
+ 所有 RDS Custom for Oracle 標籤都必須存在。
+ 如果您使用 RDS Custom for Oracle 複寫，請注意下列需求和限制：
  + 對於主要資料庫執行個體和僅供讀取複本，您一次只能變更一個資料庫執行個體的執行個體類別。
  + 如果您的 RDS Custom for Oracle 資料庫執行個體具有內部部署主要或複本資料庫，請務必在修改完成後手動更新內部部署資料庫執行個體上的私有 IP 地址。此動作對於保留 Oracle DataGuard 功能是必要的。RDS Custom for Oracle 會在修改成功時發佈事件。
  + 當主要複本或僅供讀取複本資料庫執行個體已設定 FSFO (快速啟動容錯移轉) 時，您無法修改 RDS Custom for Oracle 資料庫執行個體類別。

## 當您修改執行個體類別時，RDS Custom 如何建立您的資料庫執行個體
<a name="custom-managing.instance-class-resources"></a>

當您修改執行個體類別時，RDS Custom 如何建立您的資料庫執行個體
+ 建立 Amazon EC2 執行個體。
+ 從最新的資料庫快照建立根磁碟區。RDS Custom for Oracle 不會保留在最新資料庫快照之後新增至根磁碟區的資訊。
+ 建立 Amazon CloudWatch 警示。
+ 如果您刪除了原始金鑰對，請建立 Amazon EC2 SSH 金鑰對。否則，RDS Custom for Oracle 會保留原始金鑰對。
+ 使用您啟動修改時連接至資料庫執行個體的標籤建立新資源。當標籤直接連接至基礎資源時，RDS Custom 不會將這些標籤傳輸至新資源。
+ 將最近修改的二進位磁碟區和資料磁碟區傳輸到新的資料庫執行個體。
+ 傳輸彈性 IP 地址 (EIP)。如果資料庫執行個體可公開存取，則 RDS Custom 會在傳輸 EIP 之前，暫時將公用 IP 地址連接至新的資料庫執行個體。如果資料庫執行個體無法公開存取，RDS Custom 不會建立公用 IP 地址。

## 修改您的 RDS Custom for Oracle 資料庫執行個體
<a name="custom-managing.modifying.procedure"></a>

您可以使用 主控台或 RDS API 修改資料庫執行個體類別 AWS CLI或儲存體。

### 主控台
<a name="custom-managing.modifying.procedure.CON"></a>

**修改 RDS Custom for Oracle 資料庫執行個體**

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

1. 在導覽窗格中，選擇 **Databases (資料庫)**。

1. 選擇想要修改的資料庫執行個體。

1. 選擇 **Modify (修改)**。

1. (選用) 在**執行個體組態**中，選擇**資料庫執行個體類別**的值。如需支援的類別，請參閱 [RDS Custom for Oracle 的資料庫執行個體類別支援](custom-oracle-feature-support.md#custom-reqs-limits.instances)。

1. (選用) 在**儲存體**中，視需要進行下列變更：

   1. 針對 **Allocated storage (配置儲存)** 輸入新的值。必須大於目前的值，並且從 40 GiB-64 TiB。

   1. 將**儲存類型的**值變更為**一般用途 SSD (gp2)**、**一般用途 SSD (gp3)**、**佈建 IOPS (io1)** 或**佈建 IOPS (io2)**。

   1. 如果您指定**一般用途 SSD (gp2)** 以外的儲存類型，您可以變更**佈建 IOPS** 值。

1. (選用) 在**其他組態**中，視需要執行下列變更：

   1. (選用) 在**選項群組**中，選擇新的選項群組。如需詳細資訊，請參閱[使用 RDS Custom for Oracle 中的選項群組](custom-oracle-option-groups.md)。

1. 選擇 **Continue** (繼續)。

1. 選擇 **Apply immediately (立即套用)** 或 **Apply during the next scheduled maintenance window (在下次排定的維護時段套用)**。

1. 選擇 **Modify DB instance (修改資料庫執行個體)**。

### AWS CLI
<a name="custom-managing.modifying.procedure.CLI"></a>

若要修改 RDS Custom for Oracle 資料庫執行個體的儲存體，請使用 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) AWS CLI 命令。視需要設定下列參數：
+ `--db-instance-class` - 新的執行個體類別。如需支援的類別，請參閱 [RDS Custom for Oracle 的資料庫執行個體類別支援](custom-oracle-feature-support.md#custom-reqs-limits.instances)。
+ `--allocated-storage` – 要配置給資料庫執行個體的儲存量 (以 GiB 為單位)。必須大於目前的值，並且從 40—65,536 GiB。
+ `--storage-type` – 儲存類型：gp2、gp3、io1 或 io2。
+ `--iops` – 如果使用 io1、io2 或 gp3 儲存類型，則為資料庫執行個體佈建 IOPS。
+ `--apply-immediately` – 使用 `--apply-immediately` 可立即套用儲存變更。

  或使用 `--no-apply-immediately` (預設值) 在下個維護時段套用變更。

下列範例會將 的資料庫執行個體類別`my-cfo-instance`變更為 `db.m5.16xlarge`。命令也會將儲存體大小變更為 `1024`(1 TiB)、將儲存體類型變更為 `io2`、將 IOPS 佈建為 `3000`，並將選項群組變更為 `cfo-ee-19-mt`。

**Example**  
針對 Linux、macOS 或 Unix：  

```
aws rds modify-db-instance \
    --db-instance-identifier my-cfo-instance \
    --db-instance-class db.m5.16xlarge \
    --storage-type io2 \
    --iops 3000 \
    --allocated-storage 1024 \
    --option-group cfo-ee-19-mt \
    --apply-immediately
```
在 Windows 中：  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-cfo-instance ^
    --db-instance-class db.m5.16xlarge ^
    --storage-type io2 ^
    --iops 3000 ^
    --allocated-storage 1024 ^
    --option-group cfo-ee-19-mt ^
    --apply-immediately
```

# 變更 RDS Custom for Oracle 資料庫執行個體的字元集
<a name="custom-managing.character-set"></a>

RDS Custom for Oracle 預設為字元集 US7ASCII。您可以指定不同的字元集，以滿足語言或多位元組字元需求。當您使用 RDS Custom for Oracle 時，您可以暫停自動化，然後手動變更資料庫的字元集。

若要變更 RDS Custom to Oracle 資料庫執行個體的字元集，需符合下列需求：
+ 新佈建的 RDS Custom 執行個體具有空白資料庫或未含應用程式資料的入門資料庫，您只能在此類執行個體上變更字元。對於所有其他情況，請使用 DMU (Database Migration Assistant for Unicode) 變更字元集。
+ 您只能變更 RDS for Oracle 支援的字元集。如需更多詳細資訊，請參閱 [支援的資料庫字元集](Appendix.OracleCharacterSets.md#Appendix.OracleCharacterSets.db-character-set.supported)。

**變更 RDS Custom for Oracle 資料庫執行個體的字元集**

1. 暫停 RDS Custom 自動化。如需更多詳細資訊，請參閱 [暫停和繼續 RDS Custom 資料庫執行個體](custom-managing.customizing-env.md#custom-managing.pausing)。

1. 以具有 `SYSDBA` 權限的使用者身分登入您的資料庫。

1. 以受限制模式重新啟動資料庫、變更字元集，然後以正常模式重新啟動資料庫。

   在您的 SQL 用戶端中執行下列指令碼：

   ```
   SHUTDOWN IMMEDIATE;
   STARTUP RESTRICT;
   ALTER DATABASE CHARACTER SET INTERNAL_CONVERT AL32UTF8;
   SHUTDOWN IMMEDIATE;
   STARTUP;
   SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET';
   ```

   確認輸出顯示正確的字元集。

   ```
   VALUE
   --------
   AL32UTF8
   ```

1. 繼續 RDS Custom 自動化。如需更多詳細資訊，請參閱 [暫停和繼續 RDS Custom 資料庫執行個體](custom-managing.customizing-env.md#custom-managing.pausing)。

# 在 RDS Custom for Oracle 中設定 NLS\$1LANG 值
<a name="custom-managing.nlslang"></a>

*地區設定*是處理語言和文化需求的一組資訊，這些資訊對應至特定語言和國家。若要指定 Oracle 軟體的地區設定行為，請在您的用戶端主機上設定 `NLS_LANG` 環境變數。此變數會設定用戶端應用程式在資料庫工作階段中所使用的語言、地區和字元集。

對於 RDS Custom for Oracle，您只能在 `NLS_LANG` 變數中設定語言：區域和字元使用預設值。該語言用於 Oracle 資料庫訊息、定序，日期名稱和月份名稱。每個支援的語言都有唯一名稱，例如美國英文、法文或德文。如果未指定語言，值預設為美國英文。

在建立 RDS Custom for Oracle 資料庫之後，您可以在用戶端主機上將 `NLS_LANG` 設定為英文以外的語言。若要查看 Oracle Database 支援的語言清單，請登入您的 RDS Custom for Oracle 資料庫並執行下列查詢：

```
SELECT VALUE FROM V$NLS_VALID_VALUES WHERE PARAMETER='LANGUAGE' ORDER BY VALUE;
```

您可以在主機命令列上設定 `NLS_LANG`。下列範例會在 Linux 上使用 Z Shell，將用戶端應用程式的語言設定為德文。

```
export NLS_LANG=German
```

您的應用程式會在啟動時讀取 `NLS_LANG` 值，然後在連線時將其傳達至資料庫。

如需詳細資訊，請參閱《Oracle Database 全球化支援指南》**中的[使用 NLS\$1LANG 環境變數選擇地區設定](https://docs.oracle.com/en/database/oracle/oracle-database/21/nlspg/setting-up-globalization-support-environment.html#GUID-86A29834-AE29-4BA5-8A78-E19C168B690A)。

## 支援透明資料加密
<a name="custom-managing.tde"></a>

RDS Custom 支援 RDS Custom for Oracle 資料庫執行個體的透明資料加密 (TDE)。

不過，您無法像在 RDS for Oracle 中一樣，使用自訂選項群組中的選項啟用 TDE。您可以手動開啟 TDE。如需使用 Oracle 透明資料加密的詳細資訊，請參閱 Oracle 文件中的[使用透明資料加密來保護儲存的資料](http://docs.oracle.com/cd/E11882_01/network.112/e40393/asotrans.htm#BABFGJAG)。

# 標記 RDS Custom for Oracle 資源
<a name="custom-managing.tagging"></a>

您可以將 RDS Custom 資源標記為與 Amazon RDS 資源一樣，但是有一些重要差異：
+ 請勿建立或修改 RDS Custom 自動化所需的 `AWSRDSCustom` 標籤。如果您這樣做，可能會破壞自動化。
+ `Name` 標籤會新增至字首值為 `do-not-delete-rds-custom` 或 `rds-custom!oracle-do-not-delete` 的 RDS Custom 資源。金鑰的任何客戶傳遞值都會遭到覆寫。
+ 在建立期間新增至 RDS Custom 資料庫執行個體的標籤會傳播至所有其他相關的 RDS Custom 資源。
+ 當您在建立資料庫執行個體之後將標籤新增至 RDS Custom 資源時，不會傳播標籤。

如需資源標記的一般資訊，請參閱 [標記 Amazon RDS 資源](USER_Tagging.md)。

# 刪除 RDS Custom for Oracle 資料庫執行個體
<a name="custom-managing.deleting"></a>

**警告**  
刪除資料庫執行個體是永久動作。除非您有備份或快照，否則無法在刪除後復原資料庫執行個體。  
當您刪除 RDS Custom 資料庫執行個體時， AWS 會自動刪除基礎 Amazon EC2 執行個體和 EBS 磁碟區。在透過 Amazon RDS 刪除資料庫執行個體之前，請勿手動終止 Amazon EC2 執行個體或刪除 EBS 磁碟區。手動刪除這些資源會導致資料庫執行個體刪除和最終快照建立失敗，以防止任何復原的可能性。

若要刪除 RDS Custom 資料庫執行個體，請執行以下操作：
+ 提供資料庫執行個體的名稱。
+ 清除讓您建立資料庫執行個體最終資料庫快照的選項。
+ 選擇或清除保留自動化備份的選項。

您可以使用主控台或 CLI 刪除 RDS Custom 資料庫執行個體。刪除資料庫執行個體所需的時間會因備份保留期 (也就是要刪除的備份數量) 和要刪除的資料數量而有所不同。

## 主控台
<a name="custom-managing.deleting.console"></a>

**若要刪除 RDS Custom 資料庫執行個體**

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

1. 在導覽窗格中選擇 **Databases** (資料庫)，然後選擇您要刪除的 RDS Custom 資料庫執行個體。RDS Custom 資料庫執行個體會顯示角色 **Instance (RDS Custom) (執行個體 (RDS Custom))**。

1. 對於 **Actions** (動作)，請選擇 **Delete** (刪除)。

1. 若要保留自動備份，請選擇 **Retain automated backups (保留自動備份)**。

1. 在方塊中輸入 **delete me**。

1. 選擇 **刪除**。

## AWS CLI
<a name="custom-managing.deleting.CLI"></a>

您可以使用 [delete-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-instance.html) AWS CLI 命令刪除 RDS Custom 資料庫執行個體。使用所需的參數 `--db-instance-identifier` 識別資料庫執行個體。其餘參數與 Amazon RDS 資料庫執行個體的參數相同，但是有下列例外：
+ `--skip-final-snapshot` 是必要的。
+ `--no-skip-final-snapshot` 不支援。
+ `--final-db-snapshot-identifier` 不支援。

下列範例會刪除名為 `my-custom-instance` 的 RDS Custom 資料庫執行個體，並保留自動化備份。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
aws rds delete-db-instance \
    --db-instance-identifier my-custom-instance \
    --skip-final-snapshot \
    --no-delete-automated-backups
```
在 Windows 中：  

```
aws rds delete-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --skip-final-snapshot ^
    --no-delete-automated-backups
```

# 管理 RDS Custom for Oracle 的多可用區域部署
<a name="custom-oracle-multiaz"></a>

在 RDS Custom for Oracle 的多可用區域資料庫執行個體部署中，Amazon RDS 會自動佈建，並在不同的可用區域 (AZ) 中維持同步待命複本。主要資料庫執行個體會在待命複本的可用區域間進行同步複製，以提供資料備援。

多可用區域資料庫執行個體部署可在計劃的系統維護期間增強可用性。在進行已規劃的資料庫維護或發生意外的服務中斷時，Amazon RDS 會自動容錯移轉到最新的次要資料庫執行個體。資料庫作業可迅速恢復，而不需要手動介入。主要和待命執行個體使用相同的端點，而此端點的實體網路地址在容錯移轉過程中會轉移到次要複本。當容錯移轉發生時，您不必重新設定應用程式。

下圖顯示 RDS Custom for Oracle 的多可用區域架構：

![\[Amazon RDS architecture with primary DB instance and standby replica in separate availability zones.\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/custom-oracle-multiaz-architecture.png)


Amazon RDS 主控台會顯示待命複本的可用區域 (次要 AZ)。您也可以使用 `describe-db-instances` CLI 命令或 `DescribeDBInstances` API 操作來尋找次要 AZ。

## RDS Custom for Oracle 多可用區域部署的區域和版本可用性
<a name="custom-oracle-multiaz-availability"></a>

下列 Enterprise Edition (EE) 和 Standard Edition 2 (SE2) 版本支援 RDS Custom for Oracle 的多可用區域部署：
+ Oracle 資料庫 19c
+ Oracle 資料庫 12c 版本 2 (12.2)
+ Oracle 資料庫 12c 版本 1 (12.1)

**注意**  
Oracle Database 18c 不支援 RDS Custom for Oracle 的多可用區域部署。

RDS Custom for Oracle 的多可用區域部署可在所有可用 RDS Custom for Oracle 的區域使用。如需詳細了解 RDS Custom for Oracle 多可用區域部署的區域可用性，請參閱 [支援的 RDS Custom for Oracle 區域和資料庫引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.md#Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.ora)。

## RDS Custom for Oracle 的多可用區域部署限制
<a name="custom-oracle-multiaz-limitations"></a>

RDS Custom for Oracle 多可用區部署具有下列限制：
+ 如果您的資料庫執行個體是在 2025 年 6 月 30 日之前所建立，則無法從單一可用區轉換為多可用區域部署。您的基礎自訂引擎版本 (CEV) 是使用較舊的服務提供的 AMI 所建置，該 AMI 缺乏多可用區域支援。您必須在 2025 年 6 月 30 日之後，利用您使用服務所提供 AMI 建立的 CEV 將資料庫遷移至新的資料庫執行個體。如需詳細資訊，請參閱[使用 2025 年 6 月 30 日之前所建立 CEV 之資料庫執行個體的遷移步驟](custom-oracle-multiaz-prerequisites.md#migration-using-older-CEVs)。
+ 您無法建立跨區域多可用區域部署。
+ 您無法設定待命資料庫執行個體來接受資料庫讀取活動。
+ 當您搭配使用自訂引擎版本 (CEV) 與多可用區域部署時，待命資料庫執行個體也會使用相同的 CEV。待命資料庫執行個體不能使用不同的 CEV。
+ 您無法在多可用區域部署執行個體上建立僅供讀取複本，也無法將僅供讀取複本的主要執行個體修改為具有多可用區域部署。
+ 相較於單一可用區域部署，多可用區部署的 RDS Custom for Oracle DB 資料庫執行個體會有增加的寫入和遞交延遲。這可能是資料庫執行個體之間的同步資料複寫造成。如果您的部署容錯移轉到待命複本，則延遲可能會有所變更，雖然 AWS 是以可用區域之間的低延遲網路連線進行設計。

## 建立 RDS Custom for Oracle 的多可用區域部署
<a name="custom-oracle-multiaz-creating"></a>

若要使用多可用區域部署建立 RDS Custom for Oracle 資料庫執行個體，請依照 [設定您的 Amazon RDS Custom for Oracle 的環境](custom-setup-orcl.md) 中的步驟，使用先決條件設定您的環境。

**重要**  
為了簡化設定，我們建議您使用網路設定說明中提供的最新 CloudFormation 範本檔案。如需詳細資訊，請參閱[使用 部署 RDS Custom for Oracle AWS CloudFormation](custom-oracle-multiaz-deployment.md)。

您可以在 Amazon RDS 主控台的資料庫執行個體建立期間，選擇**多可用區域**選項，透過多可用區域部署建立 RDS Custom for Oracle 執行個體。或者，您可以在 AWS CLI的 Amazon RDS `create-db-instance` 命令中指定 `--multi-az` 參數。

# RDS Custom for Oracle 中多可用區域部署的先決條件
<a name="custom-oracle-multiaz-prerequisites"></a>

RDS Custom for Oracle 的多可用區域部署與 RDS for Oracle 的多可用區域不同。與 RDS for Oracle 的多可用區域不同，您必須先符合 RDS Custom for Oracle 的先決條件，才能建立多可用區域資料庫執行個體。這是因為 RDS Custom 會在您自己的帳戶中執行，這會需要許可。此外，您需要使用最新的服務提供之 AMI 在 CEV 上建立多可用區域執行個體，以支援多可用區域部署。

若您未完成先決條件，異地同步備份資料庫執行個體就可能無法執行，或自動還原為單一可用區資料庫執行個體。如需先決條件的詳細資訊，請參閱 [RDS Custom for Oracle 中多可用區域部署的先決條件](#custom-oracle-multiaz-prerequisites)。

從單一可用區域轉換為多可用區域時，RDS Custom for Oracle 需要特定的先決條件。未完成的先決條件會導致多可用區域設定失敗。使用手動設定或網路設定說明中提供的最新 CloudFormation 範本檔案。如需詳細資訊，請參閱[步驟 3：擷取 RDS Custom for Oracle 的 CloudFormation 範本](custom-setup-orcl.md#custom-setup-orcl.cf.downloading)。

 若要手動完成先決條件，請遵循 [在 RDS Custom for Oracle 中將單一可用區域部署轉換為多可用區域部署](custom-oracle-multiaz-modify-single-to-multi.md) 中的步驟，並注意下列事項：
+ 確保您的 RDS Custom for Oracle 資料庫執行個體使用 2025 年 6 月 30 日之後建立的 CEV 搭配最新的服務提供之 AMI。
+ 更新 Amazon RDS 安全群組輸入和輸出規則，以允許連接埠 1120。
+ 建立新的 Amazon SQS VPC 端點，讓 Amazon RDS RDS Custom for Oracle DB 資料庫執行個體與 Amazon SQS 通訊。
+ 更新執行個體設定檔角色中的 Amazon SQS 權限。

**重要**  
請勿在未暫停 RDS Custom for Oracle 自動化的情況下登入執行個體，手動重新啟動多可用區域主要資料庫執行個體。

## 使用 2025 年 6 月 30 日之前所建立 CEV 之資料庫執行個體的遷移步驟
<a name="migration-using-older-CEVs"></a>

如果您在 2025 年 6 月 30 日之前建立 RDS Custom for Oracle 資料庫執行個體，則無法直接將其修改為多可用區域部署，因為基礎 CEV 是以缺少多可用區域支援的較舊服務提供的 AMI 所建置。您必須使用 2025 年 6 月 30 日之後建立的 CEV 將資料庫遷移至新的執行個體。針對遷移執行下列動作。

1. 使用最新的服務提供之 AMI (2025 年 6 月 30 日之後) **從來源建立 CEV**。

1. 使用新的 CEV **啟動新的資料庫執行個體**。

1. 使用下列其中一種方法，將**資料庫從不支援多可用區域部署的現有資料庫執行個體遷移**至新建立的執行個體：
   + [使用 Data Guard 將 Oracle 資料庫實體遷移至 Amazon RDS Custom](https://aws.amazon.com/blogs//database/physical-migration-of-oracle-databases-to-amazon-rds-custom-using-data-guard/)
   + [使用 RMAN 複製將 Oracle 資料庫實體遷移至 Amazon RDS Custom](https://aws.amazon.com/blogs//database/physical-migration-of-oracle-databases-to-amazon-rds-custom-using-rman-duplication/)

# 在 RDS Custom for Oracle 中將單一可用區域部署轉換為多可用區域部署
<a name="custom-oracle-multiaz-modify-single-to-multi"></a>

您可以將現有的多可用區域相容 RDS Custom for Oracle 執行個體從單一可用區域部署轉換為多可用區域部署。當您修改資料庫執行個體時，Amazon RDS 會執行多個動作：
+ 拍攝主要資料庫執行個體的快照。
+ 從快照為待命複本建立新磁碟區。這些磁碟區會在背景中初始化，並在資料完全初始化之後達到最大磁碟區效能。
+ 開啟主要和待命資料庫執行個體之間的同步區塊層級複本。

**重要**  
建議您避免在尖峰活動期間，將 RDS Custom for Oracle 資料庫執行個體從單一可用區域修改為生產資料庫執行個體上的多可用區域部署。

AWS 當您從單一可用區轉換為異地同步備份時， 會使用快照來建立待命執行個體，以避免停機時間，但在轉換為異地同步備份期間和之後，效能可能會受到影響。對於對寫入延遲敏感的工作負載而言，這個影響可能很重大。雖然此功能可以從快照中快速還原大量磁碟區，但由於是同步複寫，可能會導致 I/O 作業延遲。此延遲可能會影響您的資料庫效能。

## 設定先決條件，以使用 CloudFormation 將單一可用區修改為多可用區部署
<a name="custom-oracle-multiaz-modify-cf-prereqs"></a>

請依照 [步驟 3：擷取 RDS Custom for Oracle 的 CloudFormation 範本](custom-setup-orcl.md#custom-setup-orcl.cf.downloading) 再次設定您的 VPC 和 IAM 設定檔，以在 IAM 設定檔中新增 SQS VPC 端點和 SQS 許可。

## 設定先決條件，以手動將單一可用區修改為多可用區部署
<a name="custom-oracle-multiaz-modify-manual-prereqs"></a>

如果您選擇手動設定先決條件，請執行以下任務。

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台

1. 選擇**端點**。**Create Endpoint** (建立端點) 頁面隨即出現。

1. 在**服務類別**中，選擇​ **AWS 服務**。

1. 在**服務**中，搜尋 `SQS`。

1. 在 **VPC** 中，選擇部署 RDS Custom for Oracle 資料庫執行個體的 VPC。

1. 在**子網路**中，選擇部署 RDS Custom for Oracle 資料庫執行個體的子網路。

1. 在**安全群組**中，選擇部署 RDS Custom for Oracle 資料庫執行個體的安全群組。

1. 針對**政策**，選擇**自訂**。

1. 在自訂政策中，將 `AWS partition`、`Region`、`accountId` 和 `IAM-Instance-role` 取代為您自己的值。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Condition": {
                "StringLike": {
                    "aws:ResourceTag/AWSRDSCustom": "custom-oracle"
                }
            },
            "Action": [
                "SQS:SendMessage",
                "SQS:ReceiveMessage",
                "SQS:DeleteMessage",
                "SQS:GetQueueUrl"
            ],
            "Resource": "arn:aws:sqs:us-east-1:111122223333:do-not-delete-rds-custom-*",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/{IAM-Instance-role}"
            }
        }
    ]
}
```

------

以 Amazon SQS 存取權限更新**執行個體設定檔**。用您的數值取代 `AWS partition`、`Region` 和 `accountId`。

```
{
    "Sid": "13",
    "Effect": "Allow",
    "Action": [
        "SQS:SendMessage",
        "SQS:ReceiveMessage",
        "SQS:DeleteMessage",
        "SQS:GetQueueUrl"
    ],
    "Resource": [
        {
            "Fn::Sub": "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:do-not-delete-rds-custom-*"
        }
    ],
    "Condition": {
        "StringLike": {
            "aws:ResourceTag/AWSRDSCustom": "custom-oracle"
        }
    }
}
```

更新 Amazon RDS 安全群組輸入和輸出規則，以允許連接埠 1120。
+ 在**安全群組**中，選擇部署 RDS Custom for Oracle 資料庫執行個體的群組。
+ 針對**輸入規則**，請建立**自訂 TCP** 規則，以允許來自來源群組的連接埠。
+ 針對**輸出規則**，請建立**自訂 TCP** 規則，以允許到目的地群組的連接埠。

## 使用 RDS 主控台 AWS CLI或 RDS API 修改
<a name="custom-oracle-multiaz-modify-console-cli-api"></a>

完成先決條件後，您可以使用 Amazon RDS 主控台 AWS CLI或 Amazon RDS API，將 RDS Custom for Oracle 資料庫執行個體從單一可用區修改為異地同步備份部署。

### 主控台
<a name="custom-oracle-multiaz-modify-console"></a>

**將現有 RDS Custom for Oracle 單一可用區域修改為多可用區域部署**

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

1. 在 Amazon RDS 主控台，選擇 **Databases (資料庫)**。**Databases (資料庫)** 窗格隨即出現。

1. 選擇您想要修改的 RDS Custom for Oracle 資料庫執行個體。

1. 從**動作**中，選擇**轉換為多可用區部署**。

1. 在**確認**頁面上，選擇**立即套用**，來立即套用變更。選擇此選項並不會產生停機時間，但可能會對效能產生影響。或者，您也可以選擇在下個維護時段套用更新。如需詳細資訊，請參閱[使用排程修改設定](USER_ModifyInstance.ApplyImmediately.md)。

1. 在**確認**頁面上，選擇**轉換為多可用區**。

### AWS CLI
<a name="custom-oracle-multiaz-modify-cli"></a>

若要使用 轉換為多可用區域資料庫執行個體部署 AWS CLI，請呼叫 [modify-db-instance](https://docs.aws.amazon.com//cli/latest/reference/rds/modify-db-instance.html) 命令並設定 `--multi-az`選項。指定資料庫執行個體識別符，以及您要修改的其他選項值。如需每個選項的詳細資訊，請參閱[資料庫執行個體的設定](USER_ModifyInstance.Settings.md)。

**Example 範例**  
下列代碼包含 `--multi-az` 選項，以修改 `mycustomdbinstance`。使用 `--no-apply-immediately`，會在下一次維護時段期間由系統套用變更。使用 `--apply-immediately` 可立即套用變更。如需詳細資訊，請參閱[使用排程修改設定](USER_ModifyInstance.ApplyImmediately.md)。  
針對 Linux、macOS 或 Unix：  

```
aws rds modify-db-instance \
    --db-instance-identifier mycustomdbinstance \
    --multi-az \
    [--no-apply-immediately | --apply-immediately]
```
針對 Windows：  

```
aws rds modify-db-instance ^
    --db-instance-identifier mycustomdbinstance ^
    --multi-az ^
    [--no-apply-immediately | --apply-immediately]
```

### RDS API
<a name="custom-oracle-multiaz-modify-api"></a>

若要使用 Amazon RDS API 轉換為多個可用區資料庫執行個體部署，請呼叫 [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 作業，並將 `MultiAZ` 參數設為 true。

# 在 RDS Custom for Oracle 中將多可用區域部署轉換為單一可用區域部署
<a name="custom-oracle-multiaz-modify-multi-to-single"></a>

您可以將現有 RDS Custom for Oracle 資料庫執行個體從多可用區域部署修改為單一可用區域部署。

## 主控台
<a name="custom-oracle-multiaz-multi-to-single-console"></a>

**將 RDS Custom for Oracle 資料庫執行個體從多可用區域部署修改為單一可用區域部署。**

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

1. 在 Amazon RDS 主控台，選擇 **Databases (資料庫)**。**Databases (資料庫)** 窗格隨即出現。

1. 選擇您想要修改的 RDS Custom for Oracle 資料庫執行個體。

1. 針對**多可用區部署**，請選擇**否**。

1. 在**確認**頁面上，選擇**立即套用**，來立即套用變更。選擇此選項並不會產生停機時間，但可能會對效能產生影響。或者，您也可以選擇在下個維護時段套用更新。如需詳細資訊，請參閱[使用排程修改設定](USER_ModifyInstance.ApplyImmediately.md)。

1. 在**確認**頁面上，選擇**修改資料庫執行個體**。

## AWS CLI
<a name="custom-oracle-multiaz-multi-to-single-cli"></a>

若要使用 修改單一可用區部署的多可用區部署 AWS CLI，請呼叫 [modify-db-instance](https://docs.aws.amazon.com//cli/latest/reference/rds/modify-db-instance.html) 命令並包含 `--no-multi-az`選項。指定資料庫執行個體識別符，以及您要修改的其他選項值。如需每個選項的詳細資訊，請參閱[資料庫執行個體的設定](USER_ModifyInstance.Settings.md)。

**Example 範例**  
下列代碼包含 `--no-multi-az` 選項，以修改 `mycustomdbinstance`。使用 `--no-apply-immediately`，會在下一次維護時段期間由系統套用變更。使用 `--apply-immediately` 可立即套用變更。如需詳細資訊，請參閱[使用排程修改設定](USER_ModifyInstance.ApplyImmediately.md)。  
針對 Linux、macOS 或 Unix：  

```
aws rds modify-db-instance \
    --db-instance-identifier mycustomdbinstance \
    --no-multi-az \
    [--no-apply-immediately | --apply-immediately]
```
針對 Windows：  

```
aws rds modify-db-instance ^
    --db-instance-identifier mycustomdbinstance ^
    --no-multi-az ^
    [--no-apply-immediately | --apply-immediately]
```

## RDS API
<a name="custom-oracle-multiaz-multi-to-single-api"></a>

若要使用 Amazon RDS API 將多多可用區域部署修改為單一可用區域部署，請呼叫 [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 操作並將參數 `MultiAZ` 設為 `false`。

# 在 RDS Custom for Oracle 多可用區域部署中自訂作業系統
<a name="custom-oracle-multiaz-os-customization"></a>

透過 RDS Custom for Oracle 多可用區域部署，您可以自訂作業系統，並在主要和待命 EC2 執行個體上安裝第三方軟體。與 Amazon RDS 不同，RDS Custom for Oracle 會提供資料庫環境和基礎作業系統的管理存取權，讓您除了 Oracle 資料庫之外，還可以安裝監控工具、安全代理程式或自訂應用程式。

當您在多可用區域部署上自訂作業系統時，您有責任確保自訂同時存在於主要和待命執行個體上。此方法可確保多可用區域容錯移轉期間的應用程式連續性，並在兩個執行個體之間維持一致的功能。

## 在 RDS Custom for Oracle 多可用區域部署中自訂作業系統的需求
<a name="cfo-os-maz-reqs"></a>

在多可用區域部署中自訂作業系統之前，請注意下列要求：
+ 僅在 `/rdsdbdata` 掛載點上安裝第三方軟體。資料磁碟區 (`/rdsdbdata`) 是在多可用區域部署中複寫的唯一資料。作業系統修補期間會取代根磁碟區 (`/`)，資料庫修補期間則會取代二進位磁碟區 (`/rdsdbbin`)。根磁碟區和二進位磁碟區上安裝的軟體在修補期間遺失。
+ 確保所有自訂符合 AWS 和 Oracle 授權條款及條件。
+ 在您從單一可用區域轉換為多可用區域之前，請確定 `/etc/sysctl.conf` 中的 HugePages 設定正常運作。

## 識別 RDS Custom for Oracle 多可用區域部署中的 EC2 執行個體
<a name="cfo-os-maz-identify-instances"></a>

自訂多可用區域執行個體時，請識別哪些 Amazon EC2 執行個體是 RDS Custom for Oracle 部署的主要和待命執行個體。

**識別主要和待命 EC2 執行個體**

1. 前往 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)，開啟 Amazon RDS 主控台。

1. 在導覽窗格中，選擇 **Databases** (資料庫)。

1. 選擇多可用區域 RDS Custom for Oracle 資料庫執行個體。

1. 在**組態**區段中，記下**資源 ID** (格式：`db-nnnnnnn`)。

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 在搜尋方塊中，輸入步驟 4 的資源 ID。

1. 搜尋結果會顯示兩個執行個體：您的主要和次要執行個體。具有作用中 RDS Custom for Oracle 資料庫的執行個體是主要執行個體。

## 在建立 RDS Custom for Oracle 多可用區域部署之前自訂作業系統
<a name="cfo-os-maz-convert"></a>

在此案例中，您目前的部署是單一可用區域資料庫執行個體。您可以自訂作業系統，然後將資料庫執行個體轉換為多可用區域部署。如果您要安裝第三方軟體，且已在多個磁碟區上修改檔案，則建議使用此技術。

**在將單一可用區域轉換為多可用區域之前自訂作業系統**

1. 使用 AWS Systems Manager Session Manager 或 SSH 連線到單一可用區部署中的 EC2 執行個體。

1. 執行下列其中一項自訂：
   + 在資料磁碟區上安裝第三方軟體 (`/rdsdbdata`)。
   + 在根磁碟區 (`/`) 上自訂檔案。

1. 測試您的軟體或根磁碟區自訂，以確保其正常運作。

1. 遵循 [在 RDS Custom for Oracle 中將單一可用區域部署轉換為多可用區域部署](custom-oracle-multiaz-modify-single-to-multi.md) 中的指示，將單一可用區域資料庫執行個體轉換為多可用區域部署。

1. 確認您的自訂存在於多可用區域部署的兩個執行個體上。如需詳細資訊，請參閱[識別 RDS Custom for Oracle 多可用區域部署中的 EC2 執行個體](#cfo-os-maz-identify-instances)。

## 在建立 RDS Custom for Oracle 多可用區域部署之後自訂作業系統
<a name="cfo-maz-soft-root"></a>

如果您有結束的多可用區域部署，可以使用 AWS Systems Manager 或使用手動技術來部署自訂。

### 使用 在異地同步備份部署中自訂作業系統 AWS Systems Manager
<a name="cfo-os-maz-systems-manager"></a>

對於現有的多可用區域資料庫執行個體，我們建議使用 Systems Manager 作為最可靠的方式，將自訂同時套用至主要和待命執行個體。此方法可確保一致性。如需此服務的一般簡介，請參閱[什麼是 AWS Systems Manager？](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)。若要了解如何同時在兩個資料庫執行個體上安裝軟體，請參閱[安裝或更新 Distributor 套件](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-working-with-packages-deploy.html)。

### 在多可用區域部署中手動自訂作業系統
<a name="cfo-os-maz-create"></a>

在此案例中，您的異地同步備份部署已存在，但您不會使用 AWS Systems Manager 來部署自訂。您可以透過下列其中一種方式來手動自訂作業系統：

**在主要執行個體上自訂作業系統並複寫變更**  
多可用區域部署會自動複寫 `rdsdbdata` 磁碟區。您可以使用下列方式來自訂作業系統：  
+ 直接在 `/rdsdbdata` 掛載點上安裝第三方軟體。
+ 若要修改根磁碟區 (`/`) 上的檔案，請在資料磁碟區上建立檔案，然後建立從根磁碟區檔案到資料磁碟區檔案的符號連結。

**分別自訂主要和待命執行個體上的作業系統**  
在此方法中，您會自訂主要執行個體上的作業系統。然後，您會在待命執行個體上執行相同的自訂。

**自訂主要執行個體上的作業系統，使其自動進行複寫**

1. 使用 [識別 RDS Custom for Oracle 多可用區域部署中的 EC2 執行個體](#cfo-os-maz-identify-instances) 中的程序來識別主要和待命資料庫執行個體。

1. 使用 Session Manager 或 SSH 連線到主 EC2 執行個體。

1. 根據您的業務需求，使用下列任一技術：  
**安裝第三方軟體**  
在 `/rdsdbdata` 掛載點上安裝您的軟體。  

   ```
   sudo mkdir -p /rdsdbdata/custom-software
   cd /rdsdbdata/custom-software
   # Install your software here
   ```  
**自訂根磁碟區**  
建立從根磁碟區上的作業系統組態檔案到資料磁碟區上檔案的符號連結。例如，建立檔案 `/rdsdbdata/customizations/sysctl.conf`，然後在 `/etc/sysctl.conf` 建立指向 `/rdsdbdata/customizations/sysctl.conf` 的符號連結。  

   ```
   sudo mkdir -p /rdsdbdata/customizations
   sudo mv /etc/sysctl.conf /rdsdbdata/customizations/sysctl.conf
   sudo ln -sf /rdsdbdata/customizations/sysctl.conf /etc/sysctl.conf
   ```

1. 測試您的軟體或根磁碟區自訂，以確保其正常運作。

1. 連線至待命執行個體，並確認同步複寫已將您的軟體或根磁碟區自訂複製到 `/rdsdbdata` 目錄。

## 在 RDS Custom for Oracle 多可用區域部署中自訂二進位磁碟區
<a name="cfo-os-maz-bin"></a>

您可以將資料庫修補程式套用至 RDS Custom for Oracle 多可用區域部署中的二進位磁碟區 (`/rdsdbbin`)。您必須將修補程式套用至主要和待命執行個體。請考量下列準則：
+ 當您執行一次性修補程式時，建議您使用資訊清單中包含的新一次性修補程式來建立新的 CEV。
+ 若要手動套用一次性修補程式，請務必在主要和次要 EC2 執行個體中解壓縮一次性修補程式。僅在主要多可用區域執行個體上才需要套用修補程式並執行 `datapatch`。
+ 如果您使用不同的 CEV 修補資料庫，則會取代二進位磁碟區。請務必在新 CEV 的資訊清單中包含一次性修補程式。

## 自訂作業系統的最佳實務
<a name="cfo-os-maz-bp"></a>

在 RDS Custom for Oracle 多可用區域執行個體上自訂作業系統時，請遵循下列最佳實務：

**在非生產環境中測試**  
在將自訂項目套用至生產執行個體之前，請務必在非生產環境中測試這些自訂項目。

**記錄所有變更**  
維護所有自訂的詳細文件，以供日後參考和故障診斷。建議您將自訂項目存放在指令碼中，以便萬一有狀況時可隨時套用。

**在兩個執行個體上驗證**  
定期驗證自訂是否存在，並在主要和待命執行個體上正常運作。

**使用 Systems Manager 保持一致性**  
使用 Systems Manager 跨執行個體一致套用變更，尤其是現有的多可用區域部署。

# 使用 部署 RDS Custom for Oracle AWS CloudFormation
<a name="custom-oracle-multiaz-deployment"></a>

使用提供的 AWS CloudFormation 範本自動化 RDS Custom for Oracle 部署。在部署資源之前，請先完成下列先決條件。

## 先決條件
<a name="custom-oracle-prerequisites"></a><a name="custom-oracle-required-files"></a>

**下載必要的 Oracle 檔案**

您需要特定的 Oracle 安裝檔案，才能建立 CloudFormation範本。在部署之前先下載這些檔案。

1. 導覽至 [Oracle Database 19c (19.3)](https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html)

1. 找到並下載 `LINUX.X64_193000_db_home.zip` 檔案

1. 將檔案重新命名為 `V982063-01.zip`

1. 下載剩餘的修補程式，選取**平台或語言**做為 `Linux x86-64`

### 最新的 OPatch 公用程式
<a name="custom-oracle-opatch"></a>

[修補程式 6880880](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=6880880)

### 2023 年 1 月 PSU 修補程式
<a name="custom-oracle-jan-2023-patches"></a>

**資料庫 PSU 和 RU 修補程式**
+ [修補程式 34765931](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=34765931)
+ [修補程式 34786990](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=34786990)

**其他必要的修補程式**
+ [修補程式 35099667](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=35099667)
+ [修補程式 35099674](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=35099674)
+ [修補程式 28730253](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=28730253)
+ [修補程式 29213893](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=29213893)
+ [修補程式 35012866](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=35012866)

### 2023 年 4 月 PSU 修補程式
<a name="custom-oracle-apr-2023-patches"></a>

**資料庫 PSU 和 RU 修補程式**
+ [修補程式 35042068](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=35042068)
+ [修補程式 35050341](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=35050341)

**其他必要的修補程式**
+ [修補程式 28730253](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=28730253)
+ [修補程式 29213893](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=29213893)
+ [修補程式 33125873](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=33125873)
+ [修補程式 35220732](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=35220732)
+ [修補程式 35239280](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=35239280)

### Amazon S3 儲存貯體設定
<a name="custom-oracle-s3-setup"></a>

1. 在 中建立 Amazon S3 儲存貯體 AWS 帳戶，或選擇現有的儲存貯體。

1. 在儲存貯體中建立資料夾結構，如下所示。

   ```
   <bucket-name>/
   └── oracle_cev/
       ├── V982063-01.zip
       ├── p6880880_190000_Linux-x86-64.zip
       ├── p34765931_190000_Linux-x86-64.zip
       ├── p34786990_190000_Linux-x86-64.zip
       ├── p35099667_190000_Linux-x86-64.zip
       ├── p35099674_190000_Generic.zip
       ├── p28730253_190000_Linux-x86-64.zip
       ├── p29213893_1918000DBRU_Generic.zip
       ├── p35012866_1918000DBRU_Linux-x86-64.zip
       ├── p35042068_190000_Linux-x86-64.zip
       ├── p35050341_190000_Linux-x86-64.zip
       ├── p29213893_1919000DBRU_Generic.zip
       ├── p33125873_1919000DBRU_Linux-x86-64.zip
       ├── p35220732_190000_Linux-x86-64.zip
       └── p35239280_190000_Generic.zip
   ```

1. 上傳您先前下載到適當資料夾的所有 Oracle 檔案。

## 使用 部署 RDS Custom for Oracle AWS CloudFormation
<a name="custom-oracle-deployment-steps"></a>

### 步驟 1：準備 CloudFormation 範本
<a name="custom-oracle-step1-prereqs"></a>

您必須先下載並設定建立必要先決條件的 CloudFormation 範本，才能部署 RDS Custom for Oracle。

**複製並儲存範本**

1. 前往[使用單一和多個可用區域部署 RDS Custom for Oracle](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbinstance.html#aws-resource-rds-dbinstance--examples--Deploying_RDS_Custom_for_Oracle_with_single_and_multiple_Availability_Zones)

1. 以您偏好的格式 (YAML 或 JSON) 複製範本

1. 以 YAML 或 JSON 格式儲存檔案。例如 `rds-custom-oracle-prereqs.yaml`

**在 AWS 主控台中啟動堆疊**

1. 開啟 AWS 主控台並導覽至 AWS CloudFormation

1. 選擇**建立堆疊** > **使用新資源 (標準)**

1. 選取**選擇現有的範本** 

1. 選取**上傳範本檔案** > **選擇檔案**

1. 選取您先前下載的範本檔案

1. 保留預設參數值

1. 選取**下一步**以建立堆疊

**替代方案：使用 AWS CLI**

您可以使用 AWS CLI而不是使用主控台來建立堆疊：

```
aws cloudformation create-stack \
  --stack-name rds-custom-oracle \
  --template-body file://rds-custom-oracle-prereqs.yaml \
  --capabilities CAPABILITY_NAMED_IAM
```

### 步驟 2：建立自訂引擎版本 (CEV) 和 Amazon RDS 執行個體
<a name="custom-oracle-step2-cev-rds"></a>

**複製並儲存範本**

1. 前往[使用單一和多個可用區域部署 RDS Custom for Oracle](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbinstance.html#aws-resource-rds-dbinstance--examples--Deploying_RDS_Custom_for_Oracle_with_single_and_multiple_Availability_Zones)

1. 以您偏好的格式 (YAML 或 JSON) 複製範本

1. 如有需要，請在範本中更新下列參數：
   + `BucketName`
   + `CEVS3Prefix`
   + 資料庫主密碼 (取代 \$1\$1\$1\$1\$1\$1\$1\$1\$1\$1\$1\$1\$1)

1. 以 YAML 或 JSON 格式儲存檔案

### 步驟 3：使用 AWS 主控台部署
<a name="custom-oracle-step3-console-deploy"></a>

1. 開啟 AWS 主控台並導覽至 AWS CloudFormation

1. 選擇**建立堆疊** > **使用新資源 (標準)**

1. 選取**選擇現有的範本** 

1. 選取**上傳範本檔案** > **選擇檔案**

1. 選取您先前下載的範本檔案

1. 將參數保留為預設值

1. 填入如下參數：

   ```
   BucketName: rds-custom-id
   CEVS3Prefix: oracle_cev
   CEVCreation: Yes
   ```

1. 檢閱組態，然後選取**下一步**以建立堆疊

**選用：使用 部署 AWS CLI**

```
aws cloudformation create-stack \
  --stack-name rds-custom-oracle \
  --template-body file://rds-custom-oracle.yaml \
  --parameters \
    ParameterKey=BucketName,ParameterValue=rds-custom-id \
    ParameterKey=CEVS3Prefix,ParameterValue=oracle_cev \
    ParameterKey=CEVCreation,ParameterValue=Yes \
  --capabilities CAPABILITY_NAMED_IAM
```

## 已建立部署資源
<a name="custom-oracle-deployment-resources"></a>

範本會建立以下資源：
+ 具有公有和私有子網路的 Amazon VPC
+ Security groups (安全群組)
+ Amazon VPC 端點
+ (IAM) 角色和政策
+ AWS KMS 用於加密的金鑰
+ 自訂引擎版本 (CEV)
+ 適用於單一可用區和多可用區組態的 RDS Custom for Oracle 執行個體

## 監控您的部署進度
<a name="custom-oracle-monitoring-deployment"></a>

建立 CloudFormation 堆疊之後，請監控其進度，以確保成功部署。部署程序包括建立自訂引擎版本 (CEV) 和 RDS 執行個體。

若要監控部署進度：

1. 開啟 CloudFormation 主控台。

1. 選擇您的堆疊名稱。

1. 選擇**事件**索引標籤來檢視進度並識別任何錯誤。

**注意**  
CEV 建立通常需要 2-3 小時。CEV 建立成功完成後，Amazon RDS 會自動開始建立 Amazon RDS 執行個體。

## 部署後
<a name="custom-oracle-post-deployment"></a>

堆疊建立程序完成後，請執行下列部署後驗證和組態步驟：

1. 從 Amazon RDS 主控台頁面，導覽至**自訂引擎版本**以驗證 CEV 建立。

1. 確認 Amazon RDS 執行個體已建立且可用

1. 測試 Amazon RDS 執行個體的連線

1. 視需要設定監控和備份策略

## 清除
<a name="custom-oracle-cleanup"></a>

若要移除所有資源，請執行下列 AWS CLI 命令：

```
aws cloudformation delete-stack --stack-name rds-custom-oracle
```

## 疑難排解
<a name="custom-oracle-troubleshooting"></a>

如果您在部署期間遇到問題，請使用下列解決方案來解決常見問題。

CEV 建立失敗  
+ 確認所有必要的修補程式都已上傳至 Amazon S3
+ 檢查 IAM 許可。
+ 驗證修補程式版本是否正確；如需必要修補程式的清單，請參閱 [先決條件](#custom-oracle-prerequisites)。

Amazon RDS 執行個體建立失敗  
+ 檢查 VPC/子網路組態
+ 驗證安全群組規則
+ 確認 CEV 可用

# 使用 RDS Custom for Oracle 的 Oracle 複本
<a name="custom-rr"></a>

您可以建立執行 Oracle Enterprise Edition 的 RDS Custom for Oracle 資料庫執行個體的 Oracle 複本。同時支援容器資料庫 (CDB) 和非 CDB。Standard Edition 2 不支援 Oracle Data Guard。

建立 RDS Custom for Oracle 複本與建立 RDS for Oracle 複本過程類似，但有一些重要差異。如需建立和管理 Oracle 複本的一般資訊，請參閱 [使用資料庫執行個體僅供讀取複本](USER_ReadRepl.md) 和 [使用適用於 Amazon RDS for Oracel 的僅供讀取複本](oracle-read-replicas.md)。

**Topics**
+ [RDS Custom for Oracle 複本的概觀](#custom-rr.overview)
+ [RDS Custom for Oracle 複本的指南和限制](custom-rr.reqs-limitations.md)
+ [將 RDS Custom for Oracle 複本升級為獨立的資料庫執行個體](custom-rr.promoting.md)
+ [在 RDS Custom for Oracle 主要執行個體和複本執行個體之間設定 VPN 通道](cfo-standby-vpn-tunnel.md)

## RDS Custom for Oracle 複本的概觀
<a name="custom-rr.overview"></a>

RDS Custom for Oracle 複本的架構是 RDS for Oracle 複本的類比。主要資料庫執行個體會以非同步方式複寫到一或多個 Oracle 複本。

![\[RDS Custom for Oracle 支援 Oracle 複本\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/read-replica-custom-oracle.png)


### 複本數上限
<a name="custom-rr.overview.number"></a>

與 RDS for Oracle 相同，您的 RDS Custom for Oracle 主要資料庫執行個體最多可以建立 5 個受管的 Oracle 複本。您也可以自行建立手動設定 (外部) 的 Oracle 複本。外部複本不會計入您的資料庫執行個體限制。外部複本也屬於 RDS Custom 支援範圍之外。如需支援周邊的詳細資訊，請參閱 [RDS Custom 支援周邊](custom-concept.md#custom-troubleshooting.support-perimeter)。

### 複本命名慣例
<a name="custom-rr.overview.names"></a>

Oracle 複本名稱是以資料庫唯一名稱為基礎。格式為 `DB_UNIQUE_NAME_X`，按附加字母順序排序。例如，如果您的資料庫唯一名稱為 `ORCL`，則前兩個複本會命名為 `ORCL_A` 和 `ORCL_B`。前六個字母 A—F 會保留給 RDS Custom。RDS Custom 會從主要資料庫執行個體將資料庫參數複製到複本。如需詳細資訊，請參閱 Oracle 文件中的 [DB\$1UNIQUE\$1NAME](https://docs.oracle.com/database/121/REFRN/GUID-3547C937-5DDA-49FF-A9F9-14FF306545D8.htm#REFRN10242)。

### 複本備份保留
<a name="custom-rr.overview.backups"></a>

根據預設，RDS Custom Oracle 複本會使用與主要資料庫執行個體相同的備份保留期間。您可以將備份保留期修改為 1 - 35 天。RDS Custom 支援備份、還原和時間點復原 (PITR)。如需備份和還原 RDS Custom 資料庫執行個體的詳細資訊，請參閱 [備份與還原 Amazon RDS Custom for Oracle DB 資料庫執行個體](custom-backup.md)。

**注意**  
建立 Oracle 複本時，RDS Custom 會暫時暫停重做日誌的清理。如此一來，RDS Custom 可確保新的 Oracle 複本可供使用之後，將這些日誌套用至新的 Oracle 複本。

### 複本提升
<a name="custom-rr.overview.promotion"></a>

您可以使用主控台、`promote-read-replica` AWS CLI 指令，或 `PromoteReadReplica` API 在 RDS Custom for Oracle 中提升受管的 Oracle 複本。如果您刪除主要資料庫執行個體，且所有複本都正常運作，則 RDS Custom for Oracle 會自動將受管複本提升為獨立執行個體。如果複本已暫停自動提升或位於支援範圍以外，您必須先修正複本，RDS Custom 才可以自動提升複本。您只能手動提升外部 Oracle 複本。

# RDS Custom for Oracle 複本的指南和限制
<a name="custom-rr.reqs-limitations"></a>

建立 RDS Custom for Oracle 複本時，並非所有 RDS Oracle 複本選項都支援。

**Topics**
+ [RDS Custom for Oracle 複本的一般指南](#custom-rr.guidelines)
+ [RDS Custom for Oracle 複本的一般限制](#custom-rr.limitations)
+ [RDS Custom for Oracle 複本的網路需求和限制](#custom-rr.network)
+ [RDS Custom for Oracle 的外部複本限制](#custom-rr.external-replica-reqs)

## RDS Custom for Oracle 複本的一般指南
<a name="custom-rr.guidelines"></a>

使用 RDS Custom for Oracle 的時候，請遵循下列指示：
+ 您只能在 Oracle Enterprise Edition 中使用 RDS Custom for Oracle 複寫。不支援 Standard Edition 2。
+ 強烈建議您實作 VPN 通道來加密主要與待命執行個體之間的通訊。如需詳細資訊，請參閱[在 RDS Custom for Oracle 主要執行個體和複本執行個體之間設定 VPN 通道](cfo-standby-vpn-tunnel.md)。
+ 請不要修改 `RDS_DATAGUARD` 使用者。此使用者是為 RDS Custom for Oracle 自動化保留的。修改此使用者可能會導致意外結果，例如，無法為您的 RDS Custom for Oracle 資料庫執行個體建立 Oracle 複本。
+ 請勿變更複本使用者密碼。管理 RDS Custom 主機上的 Oracle Data Guard 組態時會需要該密碼。如果您變更密碼，RDS Custom for Oracle 可能會將 Oracle 複本置於支援範圍以外。如需詳細資訊，請參閱[RDS Custom 支援周邊](custom-concept.md#custom-troubleshooting.support-perimeter)。

  密碼會存放在 中 AWS Secrets Manager，並標記資料庫資源 ID。每個 Oracel 複本在 Secrets Manager 中都有自己的秘密。秘密使用下列任一命名格式。

  ```
  do-not-delete-rds-custom-db-DB_resource_id-uuid-dg
  rds-custom!oracle-do-not-delete-DB_resource_id-uuid-dg
  ```
+ 請勿變更主要資料庫執行個體的 `DB_UNIQUE_NAME`。變更名稱會導致任何還原操作停滯。
+ 請勿在 RDS Custom CDB 的 `CREATE PLUGGABLE DATABASE` 命令中指定子句 `STANDBYS=NONE`。這樣一來，如果發生容錯移轉，待命 CDB 會包含所有 PDB。

## RDS Custom for Oracle 複本的一般限制
<a name="custom-rr.limitations"></a>

RDS Custom for Oracle 複本具有下列限制：
+ 您僅能在唯讀模式下建立 RDS Custom for Oracle 複本。不過，您可以手動將掛載複本的模式變更為唯讀，再從唯讀變更為掛載。如需詳細資訊，請參閱 [create-db-instance-read-replica](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html) AWS CLI 命令的文件。
+ 您無法建立跨區域 RDS Custom for Oracle 複本。
+ 您無法變更 Oracle Data Gard `CommunicationTimeout` 值的參數。此參數針對 Oracle 資料庫執行個體設定為 15 秒。

## RDS Custom for Oracle 複本的網路需求和限制
<a name="custom-rr.network"></a>

確定您的網路組態支援 RDS Custom for Oracle 複本。考慮下列各項：
+ 請務必針對主要資料庫執行個體和所有複本，對於虛擬私有雲端 (VPC) 內的輸入和輸出通訊啟用連接埠 1140。這對於僅供讀取複本之間的 Oracle Data Guard 通訊而言是必要的。
+ RDS Custom for Oracle 會於建立 Oracle 複本時驗證網路。如果主要資料庫執行個體和新的複本無法透過網路連線，則 RDS Custom for Oracle 不會建立複本，並將其置於 `INCOMPATIBLE_NETWORK` 狀態。
+ 對於外部 Oracle 複本 (例如您在 Amazon EC2 或內部部署建立的複本)，請針對 Oracle Data Guard 複寫使用另一個連接埠和接聽程式。嘗試使用連接埠 1140 可能會導致與 RDS Custom 自動化發生衝突。
+ `/rdsdbdata/config/tnsnames.ora` 檔案包含對應至接聽程式通訊協定位址的網路服務名稱。請注意以下要求和建議：
  + 在處理 Oracle 複本操作時，`tnsnames.ora` 中字首為 `rds_custom_` 的項目是為 RDS Custom 保留的。

    在 `tnsnames.ora` 中建立手動項目時，不使用此字首。
  + 在某些情況下，您可能想要手動切換或容錯移轉，或使用容錯移轉技術，例如快速啟動容錯移轉 (FSFO)。若是如此，請確定手動將 `tnsnames.ora` 項目從主要資料庫執行個體同步到所有待命執行個體。此建議適用於由 RDS Custom 管理的 Oracle 複本和外部 Oracle 複本。

    RDS Custom 自動化只會在主要資料庫執行個體上更新 `tnsnames.ora` 項目。同時務必在新增或移除 Oracle 複本時同步。

    如果您未同步 `tnsnames.ora` 檔案並手動切換或容錯移轉，則主要資料庫執行個體上的 Oracle Data Guard 可能無法與 Oracle 複本通訊。

## RDS Custom for Oracle 的外部複本限制
<a name="custom-rr.external-replica-reqs"></a>

 RDS Custom for Oracle 外部複本 (包含內部部署複本) 具有下列限制：
+ RDS Custom for Oracle 不會對外部 Oracle 複本在手動容錯移轉 (例如 FSFO) 時偵測執行個體角色變更。

  RDS Custom for Oracle 不會偵測受管複本的變更。角色變更會記錄在事件日誌中。您也可以使用 [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) AWS CLI 命令來查看新狀態。
+ RDS Custom for Oracle 不會偵測外部 Oracle 複本的高複寫延遲。

  RDS Custom for Oracle 不會偵測受管複本的延遲。高複寫延遲會產生 `Replication has stopped` 事件。您也可以使用 [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) AWS CLI 命令查看複寫狀態，但更新時可能會有延遲。
+ 若您刪除主要資料庫執行個體，RDS Custom for Oracle 不會自動提升外部 Oracle 複本。

  自動提升功能僅適用於受管的 Oracle 複本。如需手動提升僅 Oracle 複本的相關資訊，請參閱白皮書[使用 Amazon RDS Custom for Oracle 上的 Data Guard 來啟用高可用性](https://d1.awsstatic.com/whitepapers/enabling-high-availability-with-data-guard-on-amazon-rds-custom-for-oracle.pdf)。

# 將 RDS Custom for Oracle 複本升級為獨立的資料庫執行個體
<a name="custom-rr.promoting"></a>

就像使用 RDS for Oracle 一樣，您可以將 RDS Custom for Oracle 提升為獨立的資料庫執行個體。當您提升 Oracle 複本時，RDS Custom for Oracle 資料庫執行個體將在可使用前重新啟動。如需提升 Oracle 複本的相關詳細資訊，請參閱 [提升僅供讀取複本為獨立的資料庫執行個體](USER_ReadRepl.Promote.md)。

提升複本時，請注意下列指示：
+ RDS Custom for Oracle 升級複本時，請勿發起容錯移轉。否則，可能會導致提升工作流程停滯。
+ 當 Oracle Custom for Oracle 正在升級您的 Oracle 複本時，請勿切換主要資料庫執行個體。否則，可能會導致提升工作流程停滯。
+ 當 RDS Custom for Oracle 正在升級您的 Oracle 複本時，請勿關閉主要資料庫執行個體。否則，可能會導致提升工作流程停滯。
+ 請勿嘗試以新提升的資料庫執行個體做為目標重新啟動複寫。RDS Custom for Oracle 提升您的 Oracle 複本之後，它會成為獨立的資料庫執行個體，而且不再具有複本角色。

請留意下列 RDS Custom for Oracle 複本提升的限制：
+ RDS Custom for Oracle 正在進行備份時，您無法提升複本。
+ 提升 Oracle 複本時，您無法將備份保留期變更為 `0`。
+ 若複本的運作狀態不佳，您便不能提升該複本。

  如果您在主要資料庫執行個體上發出問題 `delete-db-instance`，RDS Custom for Oracle 會驗證每個受管的 Oracle 複本是否正常運作且可用於升級。複本可能會由於自動化已暫停或位於支援範圍之外而不符合升級。在這種情況下，RDS Custom for Oracle 會發佈事件說明問題，以便您可以手動修復 Oracle 複本。

以下步驟顯示了提升 Oracle 複本至資料庫執行個體的一般流程：

1. 停止任何交易寫入主要資料庫執行個體。

1. 等待 RDS Custom for Oracle 套用所有更新至您的 Oracle 複本。

1. 使用 Amazon RDS 主控台上的 **Promote** (提升) 選項、AWS CLI 命令 [https://docs.aws.amazon.com/cli/latest/reference/rds/promote-read-replica.html](https://docs.aws.amazon.com/cli/latest/reference/rds/promote-read-replica.html) 或 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_PromoteReadReplica.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_PromoteReadReplica.html) Amazon RDS API 操作，提升 Oracle 複本。

提升 Oracle 複本可能需要幾分鐘。在此程序期間，RDS Custom for Oracle 會停止複寫並重新啟動您的複本。當重新啟動完成，該 Oracle 複本便可用做獨立的資料庫執行個體。如需針對複本提升進行故障診斷的相關資訊，請參閱 [RDS Custom for Oracle 複本提升的故障診斷](custom-troubleshooting.md#custom-troubleshooting-promote)。

## 主控台
<a name="USER_ReadRepl.Promote.Console"></a>

**若要將 RDS Custom for Oracle 複本提升為獨立的資料庫執行個體**

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

1. 在 Amazon RDS 主控台，選擇 **Databases (資料庫)**。

   **Databases (資料庫)** 窗格隨即出現。每個 Oracle 複本會在 **Role** (角色) 欄中顯示 **Replica** (複本)。

1. 選擇您想提升的 RDS Custom for Oracle 複本。

1. 針對 **Actions** (動作)，選擇 **Promote** (提升)。

1. 在 **Promote Oracle replica** (提升 Oracle 複本) 頁面上，輸入新升級資料庫執行個體的備份保留期間和備份時間。您無法將此數值設為 **0**。

1. 依您所需完成設定後，選擇 **Promote Oracle replica** (提升 Oracle 複本)。

## AWS CLI
<a name="USER_ReadRepl.Promote.CLI"></a>

若要將 RDS Custom for Oracle 複本提升為獨立的資料庫執行個體，請使用 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/promote-read-replica.html](https://docs.aws.amazon.com/cli/latest/reference/rds/promote-read-replica.html) 命令。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
aws rds promote-read-replica \
--db-instance-identifier my-custom-read-replica \
--backup-retention-period 2 \
--preferred-backup-window 23:00-24:00
```
在 Windows 中：  

```
aws rds promote-read-replica ^
--db-instance-identifier my-custom-read-replica ^
--backup-retention-period 2 ^
--preferred-backup-window 23:00-24:00
```

## RDS API
<a name="USER_ReadRepl.Promote.API"></a>

若要將 RDS Custom for Oracle 複本提升為獨立的資料庫執行個體，請使用所需參數 `PromoteReadReplica` 呼叫 Amazon RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_PromoteReadReplica.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_PromoteReadReplica.html) 操作。

# 在 RDS Custom for Oracle 主要執行個體和複本執行個體之間設定 VPN 通道
<a name="cfo-standby-vpn-tunnel"></a>

VPN 通道是網路中兩個或多個裝置之間的加密連線。為了確保 RDS Custom for Oracle 中 Oracle Data Guard 執行個體的最高安全性層級，強烈建議您實作 VPN 通道來加密主要和待命執行個體之間的通訊。通道在敏感資料於執行個體之間的網路傳輸時，可做為敏感資料的保護機制。雖然此組態是選用的，但建議您將其做為最佳實務，以達到資料安全和法規合規。

請確定您符合下列先決條件：
+ 您具備主要和待命主機的根存取權。
+ 您具備執行 `ipsec` 命令的技術專業知識。

**在 RDS Custom for Oracle 中設定主要和複本之間的 VPN 通道**

1. 使用下列規則，將主要執行個體和待命執行個體的安全群組新增至允許清單：

   ```
   ACTION FLOW SOURCE PROTO PORT
   
   ALLOW ingress this-SG 50 (ESP) all (N/A)
   ALLOW egress this-SG 50 (ESP) all (N/A)
   
   ALLOW ingress this-SG 17 (UDP) 500 (IKE)
   ALLOW egress this-SG 17 (UDP) 500 (IKE)
   ```

1. 切換至根使用者。

   ```
   $ sudo su – root
   ```

1. 在主要執行個體和待命執行個體上執行下列命令，以在使用者 `root` 下初始化網路安全服務 (NSS) 資料庫。

   ```
   ipsec initnss --nssdir /etc/ipsec.d
   ```

1. 產生 RSA 金鑰，如下所示：

   1. 在主要執行個體上，根據您的作業系統版本，使用下列任一 `ipsec` 命令產生金鑰。

      ```
      ipsec newhostkey --nssdir /etc/ipsec.d       ## for Oracle Linux Version 8
      ipsec newhostkey --output /etc/ipsec.secrets ## for Oracle Linux version 7.9
      ```

   1. 取得建立組態所需的公有金鑰。在下列範例中，主要執行個體是 `left`，因為以 `ipsec` 術語來說，`left` 是指您目前設定的裝置，而 `right` 是指通道另一端的裝置。

      ```
      ipsec showhostkey --left --ckaid ckaid-returned-in-last-statement
      ```

   1. 在待命執行個體上，產生待命執行個體的金鑰。

      ```
      ipsec newhostkey --nssdir /etc/ipsec.d       ## for Oracle Linux Version 8
      ipsec newhostkey --output /etc/ipsec.secrets ## for Oracle Linux version 7.9
      ```

   1. 取得建立組態所需的待命執行個體的公有金鑰。在下列範例中，待命執行個體是 `right`，因為它是指通道另一端的裝置。

      ```
      ipsec showhostkey --right --ckaid ckaid-returned-in-last-statement
      ```

1. 根據您取得的 RSA 金鑰來產生組態。主要執行個體和待命執行個體的組態都相同。您可以在 AWS 主控台中找到主要執行個體 IPv4 地址和待命執行個體 IPv4 地址。

   在主要執行個體和待命執行個體上，將下列組態儲存至檔案 `/etc/ipsec.d/custom-fb-tunnel.conf`。

   ```
   conn custom-db-tunnel
    type=transport
    auto=add
    authby=rsasig
    left=IPV4-for-primary 
    leftrsasigkey=RSA-key-generated-on-primary
    right=IPV4-for-standby
    rightrsasigkey=RSA-key-generated-on-standby
   ```

1. 在主要執行個體和待命執行個體上，在兩部主機上啟動 `ipsec` 常駐程式。

   ```
   ipsec setup start
   ```

1. 在主要執行個體或待命執行個體上啟動通道。輸出應看起來如下列內容。

   ```
   [root@ip-172-31-6-81 ~]# ipsec auto --up custom-db-tunnel
   181 "custom-db-tunnel" #1: initiating IKEv2 connection
   181 "custom-db-tunnel" #1: sent IKE_SA_INIT request to 172.31.32.196:500
   182 "custom-db-tunnel" #1: sent IKE_AUTH request {cipher=AES_GCM_16_256 integ=n/a prf=HMAC_SHA2_512 group=DH19}
   003 "custom-db-tunnel" #1: initiator established IKE SA; authenticated peer '3584-bit PKCS#1 1.5 RSA with SHA1' signature using preloaded certificate '172.31.32.196'
   004 "custom-db-tunnel" #2: initiator established Child SA using #1; IPsec transport [172.31.6.81-172.31.6.81:0-65535 0] -> [172.31.32.196-172.31.32.196:0-65535 0] {ESP/ESN=>0xda9c4815 <0xb742ca42 xfrm=AES_GCM_16_256-NONE DPD=passive}
   [root@ip-172-31-6-81 ~]#
   ```

# 備份與還原 Amazon RDS Custom for Oracle DB 資料庫執行個體
<a name="custom-backup"></a>

就像是 Amazon RDS 一樣，RDS Custom 會在資料庫執行個體的備份時段建立並儲存 RDS Custom for Oracle 資料庫執行個體的自動備份。您也可以手動備份您的資料庫執行個體。

程序與擷取 Amazon RDS 資料庫執行個體的快照相同。RDS Custom 資料庫執行個體的第一個快照會包含完整的資料庫執行個體資料。後續快照是增量。

使用 AWS 管理主控台 或 AWS CLI 還原資料庫快照。

**Topics**
+ [建立 RDS Custom for Oracle 快照](custom-backup.creating.md)
+ [從 RDS Custom for Oracle 資料庫快照還原](custom-backup.restoring.md)
+ [將 RDS Custom for Oracle 執行個體還原至某個時間點](custom-backup.pitr.md)
+ [刪除 RDS Custom for Oracle 快照](custom-backup.deleting.md)
+ [刪除 RDS Custom for Oracle 自動備份](custom-backup.deleting-backups.md)

# 建立 RDS Custom for Oracle 快照
<a name="custom-backup.creating"></a>

RDS Custom for Oracle 會建立資料庫執行個體的儲存體磁碟區快照，因此會備份整個資料庫執行個體，而不只是個別的資料庫。當您的資料庫執行個體包含容器資料庫 (CDB) 時，執行個體的快照會包含根 CDB 和所有 PDB。

建立 RDS Custom for Oracle 快照時，請指定要備份哪個 RDS Custom 資料庫執行個體。為快照命名，稍後即可從該快照進行還原。

建立快照時，RDS Custom for Oracle 會為連接到資料庫執行個體的每個磁碟區建立 Amazon EBS 快照。RDS Custom for Oracle 會使用根磁碟區的 EBS 快照來註冊新的 Amazon Machine Image (AMI)。為了讓快照更容易與特定資料庫執行個體產生關聯，它們透過 `DBSnapshotIdentifier`、`DbiResourceId` 和`VolumeType` 加上標籤。

建立資料庫快照會導致短暫的輸入/輸出暫停。根據資料庫執行個體的大小和類別，暫停時間會持續幾秒鐘至幾分鐘。快照建立時間會隨著資料庫的大小而有所不同。由於快照包括整個儲存體磁碟區，所以檔案大小 (例如暫存檔案) 也會影響建立快照建立時間。若要進一步了解建立快照，請參閱 [為 Amazon RDS 的單一可用區域資料庫執行個體建立資料庫快照](USER_CreateSnapshot.md)。

使用主控台或 AWS CLI 建立 RDS Custom for Oracle 快照。

## 主控台
<a name="USER_CreateSnapshot.CON"></a>

**若要建立 RDS Custom 快照**

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

1. 在導覽窗格中，選擇 **Databases** (資料庫)。

1. 在 RDS Custom 資料庫執行個體清單中，選擇您要建立快照的執行個體。

1. 針對 **Actions** (動作)，選擇 **Take snapshot** (建立快照)。

   **Take DB Snapshot** (建立資料庫快照) 視窗隨即顯示。

1. 在 **Snapshot name (快照名稱)** 中輸入快照的名稱。

1. 選擇 **Take Snapshot** (擷取快照)。

## AWS CLI
<a name="USER_CreateSnapshot.CLI"></a>

您可以使用 [create-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-snapshot.html) AWS CLI 命令來建立 RDS Custom 資料庫執行個體的快照。

指定下列選項：
+ `--db-instance-identifier` – 識別您要備份的 RDS Custom 資料庫執行個體
+ `--db-snapshot-identifier` – 為您的 RDS Custom 快照命名以便稍後從該快照還原

在此範例中，您會為名稱為 `my-custom-instance` 的 RDS Custom 資料庫執行個體建立名稱為 *`my-custom-snapshot`* 的資料庫快照。

**Example**  
對於 Linux、macOS 或 Unix：  

```
1. aws rds create-db-snapshot \
2.     --db-instance-identifier my-custom-instance \
3.     --db-snapshot-identifier my-custom-snapshot
```
在 Windows 中：  

```
1. aws rds create-db-snapshot ^
2.     --db-instance-identifier my-custom-instance ^
3.     --db-snapshot-identifier my-custom-snapshot
```

# 從 RDS Custom for Oracle 資料庫快照還原
<a name="custom-backup.restoring"></a>

還原 RDS Custom for Oracle 資料庫執行個體時，您要提供資料庫快照的名稱和新執行個體的名稱。您無法從快照還原至現有的 RDS Custom 資料庫執行個體。還原時，會建立新的 RDS Custom for Oracle 資料庫執行個體。

還原程序與在 Amazon RDS 中還原的方式有以下不同：
+ 還原快照之前，RDS Custom for Oracle 會先備份現有的組態檔案。這些檔案可以在目錄 `/rdsdbdata/config/backup` 中的還原執行個體上取得。RDS Custom for Oracle 會使用預設參數還原資料庫快照，並使用現有的資料庫組態檔案覆寫先前的資料庫組態檔案。因此，還原的執行個體不會保留自訂參數和對資料庫組態檔案的變更。
+ 還原的資料庫名稱與快照中的名稱相同。您無法指定不同的名稱。(對於 RDS Custom for Oracle，預設值為 `ORCL`。)

## 主控台
<a name="custom-backup.restoring.console"></a>

**若要從資料庫快照還原 RDS Custom 資料庫執行個體**

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

1. 在導覽窗格中，選擇 **Snapshots** (快照)。

1. 選擇想要從中還原的資料庫執行個體。

1. 針對 **Actions** (動作)，選擇 **Restore snapshot** (還原快照)。

1. 在 **Restore DB Instance** (還原資料庫執行個體) 頁面上，針對 **DB Instance Identifier (資料庫執行個體識別符)**，輸入您還原的 RDS Custom 資料庫執行個體的名稱。

1. 選擇 **Restore DB instance** (還原資料庫執行個體)。

## AWS CLI
<a name="custom-backup.restoring.CLI"></a>

您可以使用 [restore-db-instance-from-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html) AWS CLI 命令來還原 RDS Custom 資料庫快照。

如果您要從中還原的快照適用於私有資料庫執行個體，請務必指定正確的 `db-subnet-group-name` 和 `no-publicly-accessible`。否則，資料庫執行個體預設為可公開存取。下列選項是必要的：
+ `db-snapshot-identifier` – 識別要從中進行還原的快照
+ `db-instance-identifier` – 指定要從資料庫快照建立之 RDS Custom 資料庫執行個體的名稱
+ `custom-iam-instance-profile` – 指定與 RDS Custom 資料庫執行個體的基礎 Amazon EC2 執行個體關聯的執行個體設定檔。

下列程式碼會為 `my-custom-instance` 還原名稱為 `my-custom-snapshot` 的快照。

**Example**  
對於 Linux、macOS 或 Unix：  

```
aws rds restore-db-instance-from-db-snapshot \
  --db-snapshot-identifier my-custom-snapshot \
  --db-instance-identifier my-custom-instance \
  --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance \
  --no-publicly-accessible
```
在 Windows 中：  

```
aws rds restore-db-instance-from-db-snapshot ^
  --db-snapshot-identifier my-custom-snapshot ^
  --db-instance-identifier my-custom-instance ^
  --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance ^
  --no-publicly-accessible
```

# 將 RDS Custom for Oracle 執行個體還原至某個時間點
<a name="custom-backup.pitr"></a>

您可以將資料庫執行個體還原至特定時間點 (PITR)，建立新的資料庫執行個體。若要支援 PITR，您的資料庫執行個體必須將備份保留設定為非零值。

RDS Custom for Oracle 資料庫執行個體的最晚可還原時間取決於許多因素，但通常是目前時間的 5 分鐘內。若要查看資料庫執行個體的最新可還原時間，請使用 AWS CLI [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 命令，並查看在資料庫執行個體的 `LatestRestorableTime` 欄位內傳回的值。若要在 Amazon RDS 主控台中查看每個資料庫執行個體的最新可還原時間，請選擇**自動備份**。

您可以還原至備份保留期間內的任何時間點。若要查看每個資料庫執行個體的最早可還原時間，請在 Amazon RDS 主控台中選擇**自動備份**。

如需 PITR 的一般資訊，請參閱 [將 Amazon RDS 的資料庫執行個體還原至指定時間](USER_PIT.md)。

**Topics**
+ [RDS Custom for Oracle 的 PITR 考量](#custom-backup.pitr.oracle)

## RDS Custom for Oracle 的 PITR 考量
<a name="custom-backup.pitr.oracle"></a>

在 RDS Custom for Oracle 中，PITR 與 Amazon RDS 中的 PITR 有以下的重要不同：
+ 還原的資料庫名稱與來源資料庫執行個體中的名稱相同。您無法指定不同的名稱。預設值為 `ORCL`。
+ `AWSRDSCustomIamRolePolicy` 需要新許可。如需更多詳細資訊，請參閱 [步驟 2：將存取政策新增至 AWSRDSCustomInstanceRoleForRdsCustomInstance](custom-setup-orcl.md#custom-setup-orcl.iam.add-policy)。
+ 所有 RDS Custom for Oracle 資料庫執行個體都必須將備份保留設定為非零值。
+ 如果您變更作業系統或資料庫執行個體時區，PITR 可能無法運作。如需變更時區的相關資訊，請參閱 [Oracle 時區](custom-managing.timezone.md)。
+ 如果您將自動化設定為 `ALL_PAUSED`，RDS Custom 會暫停封存重做日誌檔案的上傳，包括在最近一次可還原時間 (LRT) 之前建立的日誌。我們建議您暫停自動化一段時間。

  舉例來說，假設您的 LRT 是 10 分鐘前。您暫停自動化。暫停期間，RDS Custom 不會上傳封存的重做日誌。如果您的資料庫執行個體當機，您只能復原到暫停時存在的 LRT 之前的時間。當您繼續自動化時，RDS Custom 會繼續上傳日誌。LRT 會繼續。套用一般 PITR 規則。
+ 在 RDS Custom 中，您可以手動指定保留封存的重做日誌的任意時數，以便在 RDS Custom 上傳後刪除之前保留這些封存的重做日誌。請如下指定小時數：

  1. 建立名為 `/opt/aws/rdscustomagent/config/redo_logs_custom_configuration.json` 的文字檔案。

  1. 以下列格式新增 JSON 物件：`{"archivedLogRetentionHours" : "num_of_hours"}`。數字必須是介於 1—840 範圍內的整數。
+ 假設您將非 CDB 插入容器資料庫 (CDB) 作為 PDB，然後嘗試 PITR。只在您先前已備份 PDB 時，操作才會成功。建立或修改 PDB 之後，建議您一律將其備份。
+ 我們建議您不要自訂資料庫初始化參數。例如，修改下列參數會影響 PITR：
  + `CONTROL_FILE_RECORD_KEEP_TIME` 會影響上傳和刪除日誌的規則。
  + `LOG_ARCHIVE_DEST_n` 不支援多個目的地。
  + `ARCHIVE_LAG_TARGET` 會影響最新的可還原時間。`ARCHIVE_LAG_TARGET` 設定為 `300`，因為復原點目標 (RPO) 為 5 分鐘。為了實現此目標，RDS 每隔 5 分鐘就會切換線上重做日誌，並將其存放在 Amazon S3 儲存貯體中。如果日誌切換太頻繁而導致 RDS Custom for Oracle 資料庫的效能問題，您可以將資料庫執行個體和儲存體擴展為具有更高 IOPS 和輸送量的項目。如果對於您的復原計畫有必要，您可以將 `ARCHIVE_LAG_TARGET` 初始化參數的設定調整為 60 到 7200 的值。
+ 如果您自訂資料庫初始化參數，我們強烈建議您只自訂下列項目：
  + `COMPATIBLE` 
  + `MAX_STRING_SIZE`
  + `DB_FILES` 
  + `UNDO_TABLESPACE` 
  + `ENABLE_PLUGGABLE_DATABASE` 
  + `CONTROL_FILES` 
  + `AUDIT_TRAIL` 
  + `AUDIT_TRAIL_DEST` 

  針對其他所有初始化參數，RDS Custom 會還原預設值。如果您修改不在上述清單中的參數，它可能會對 PITR 產生不良影響，並導致無法預期的結果。例如，`CONTROL_FILE_RECORD_KEEP_TIME` 會影響上傳和刪除日誌的規則。

您可以使用 AWS 管理主控台、AWS CLI 或 RDS API 將 RDS Custom 資料庫執行個體還原至某個時間點。

## 主控台
<a name="custom-backup.pitr2.CON"></a>

**若要將 RDS Custom 資料庫執行個體還原至指定時間**

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

1. 在導覽窗格中，選擇 **Automated backups** (自動備份)。

1. 選擇您想要還原的 RDS Custom 資料庫執行個體。

1. 針對 **Actions** (動作)，選擇 **Restore to point in time** (還原至時間點)。

   **Restore to point in time (還原到時間點)** 視窗隨即出現。

1. 選擇 **Latest restorable time (最近的可還原時間)** 以還原最近一次的可能時間，或選擇 **Custom (自訂)** 以選擇一個時間。

   如果您選擇 **Custom (自訂)**，請輸入您希望執行個體叢集還原到什麼日期和時間。

   會以您的當地時區顯示時間，根據國際標準時間 (UTC) 的時差來表示。例如，UTC-5 是東部標準時間/中部日光節約時間。

1. 對於 **DB Instance Identifier** (資料庫執行個體識別符)，輸入目標還原 RDS Custom 資料庫執行個體的名稱。名稱必須是唯一的。

1. 視需要選擇其他選項，例如資料庫執行個體類別。

1. 選擇 **Restore to point in time (還原至時間點)**。

## AWS CLI
<a name="custom-backup.pitr2.CLI"></a>

您可以使用 [ restore-db-instance-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) AWS CLI 命令來建立新的 RDS Custom 資料庫執行個體，將資料庫執行個體還原至指定時間。

使用下列其中一個選項來指定要從中還原的備份：
+ `--source-db-instance-identifier mysourcedbinstance`
+ `--source-dbi-resource-id dbinstanceresourceID`
+ `--source-db-instance-automated-backups-arn backupARN`

`custom-iam-instance-profile` 選項為必要項目。

下列範例會將 `my-custom-db-instance` 還原至名稱為 `my-restored-custom-db-instance` 的新資料庫執行個體，截至指定的時間。

**Example**  
對於 Linux、macOS 或 Unix：  

```
1. aws rds restore-db-instance-to-point-in-time \
2.     --source-db-instance-identifier my-custom-db-instance\
3.     --target-db-instance-identifier my-restored-custom-db-instance \
4.     --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance \
5.     --restore-time 2022-10-14T23:45:00.000Z
```
在 Windows 中：  

```
1. aws rds restore-db-instance-to-point-in-time ^
2.     --source-db-instance-identifier my-custom-db-instance ^
3.     --target-db-instance-identifier my-restored-custom-db-instance ^
4.     --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance ^
5.     --restore-time 2022-10-14T23:45:00.000Z
```

# 刪除 RDS Custom for Oracle 快照
<a name="custom-backup.deleting"></a>

當您不再需要時，可以刪除由 RDS Custom for Oracle 管理的資料庫快照。Amazon RDS 與 RDS Custom 資料庫執行個體的刪除程序相同。

二進位和根磁碟區的 Amazon EBS 快照會在您的帳戶中保留較長的時間，因為這些快照可能會連結到您帳戶中執行的某些執行個體或其他 RDS Custom for Oracle 快照。這些 EBS 快照不再與任何現有 RDS Custom for Oracle 資源 (資料庫執行個體或備份) 相關之後，會自動刪除這些快照。

## 主控台
<a name="USER_DeleteSnapshot.CON"></a>

**若要刪除 RDS Custom 資料庫執行個體的快照**

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

1. 在導覽窗格中，選擇 **Snapshots** (快照)。

1. 選擇想要刪除的資料庫快照。

1. 針對 **Actions** (動作)，選擇 **Delete Snapshot** (刪除快照)。

1. 在確認頁面上，選擇 **Delete (刪除)**。

## AWS CLI
<a name="USER_DeleteSnapshot.CLI"></a>

若要刪除 RDS Custom 快照，請使用 AWS CLI 命令 [delete-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-snapshot.html)。

下列選項是必要的：
+ `--db-snapshot-identifier` – 要刪除的快照

以下範例會刪除 `my-custom-snapshot` 資料庫快照。

**Example**  
對於 Linux、macOS 或 Unix：  

```
1. aws rds delete-db-snapshot \  
2.   --db-snapshot-identifier my-custom-snapshot
```
在 Windows 中：  

```
1. aws rds delete-db-snapshot ^
2.   --db-snapshot-identifier my-custom-snapshot
```

# 刪除 RDS Custom for Oracle 自動備份
<a name="custom-backup.deleting-backups"></a>

不再需要保留 RDS Custom for Oracle 的自動備份時，刪除即可。該程序與刪除 Amazon RDS 備份的程序相同。

## 主控台
<a name="USER_WorkingWithAutomatedBackups-Deleting.CON"></a>

**刪除保留的自動備份**

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

1. 在導覽窗格中，選擇 **Automated backups** (自動備份)。

1. 選擇 **Retained (已保留)**。

1. 選擇您要刪除的已保留自動備份。

1. 對於 **Actions** (動作)，請選擇 **Delete** (刪除)。

1. 在確認頁面上，輸入 **delete me**，然後選擇 **Delete (刪除)**。

## AWS CLI
<a name="USER_WorkingWithAutomatedBackups-Deleting.CLI"></a>

您可以使用 AWS CLI 命令 [delete-db-instance-automated-backup](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-instance-automated-backup.html) 刪除保留的自動備份。

下列選項用來刪除保留的自動備份：
+ `--dbi-resource-id` – 來源 RDS Custom 資料庫執行個體的資源識別符。

  您可以使用 AWS CLI 命令 [describe-db-instance-automated-backups](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instance-automated-backups.html)，刪除已保留自動備份的來源資料庫執行個體的來源識別符。

下列範例刪除來源資料庫執行個體識別符為 `custom-db-123ABCEXAMPLE` 的已保留自動備份。

**Example**  
對於 Linux、macOS 或 Unix：  

```
1. aws rds delete-db-instance-automated-backup \
2.     --dbi-resource-id custom-db-123ABCEXAMPLE
```
在 Windows 中：  

```
1. aws rds delete-db-instance-automated-backup ^
2.     --dbi-resource-id custom-db-123ABCEXAMPLE
```

# 使用 RDS Custom for Oracle 中的選項群組
<a name="custom-oracle-option-groups"></a>

RDS Custom 使用選項群組來啟用並設定其他功能。*選項群組*指定稱作選項的功能，可用於特定的 RDS Custom for Oracle 資料庫執行個體。選項擁有的設定，可以指定該選項如何運作。當您將 RDS Custom for Oracle 資料庫執行個體關聯到一個選項群組後，便會啟用此執行個體的指定選項和選項設定。如需 Amazon RDS 中選項群組的一般資訊，請參閱 [使用選項群組](USER_WorkingWithOptionGroups.md)。

**Topics**
+ [RDS Custom for Oracle 中的選項群組概觀](#custom-oracle-option-groups.overview)
+ [Oracle 時區](custom-managing.timezone.md)

## RDS Custom for Oracle 中的選項群組概觀
<a name="custom-oracle-option-groups.overview"></a>

若要啟用您 Oracle 資料庫的選項，請將其新增至選項群組，然後使選項群組與您的資料庫執行個體產生關聯。如需詳細資訊，請參閱[使用選項群組](USER_WorkingWithOptionGroups.md)。

**Topics**
+ [RDS Custom for Oracle 選項摘要](#custom-oracle-option-groups.summary)
+ [將選項新增至 RDS Custom for Oracle 資料庫執行個體的基本步驟](#custom-oracle-timezone.overview.steps)
+ [在 RDS Custom for Oracle 中建立選項群組](#custom-oracle-timezone.creating)
+ [將選項群組與 RDS Custom for Oracle 資料庫執行個體建立關聯](#custom-oracle-timezone.associating)

### RDS Custom for Oracle 選項摘要
<a name="custom-oracle-option-groups.summary"></a>

對於資料庫執行個體，RDS Custom for Oracle 支援下列選項。


****  

| 選項 | 選項 ID | Description | 
| --- | --- | --- | 
|  Oracle 時區  |  `Timezone`  |  RDS Custom for Oracle 資料庫執行個體所使用的時區。  | 

### 將選項新增至 RDS Custom for Oracle 資料庫執行個體的基本步驟
<a name="custom-oracle-timezone.overview.steps"></a>

將選項新增至 RDS Custom for Oracle 資料庫執行個體的一般程序如下：

1. 建立新的選項群組，或是複製或修改現有選項群組。

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

1. 當您建立或修改執行個體時，請將資料庫執行個體與選項群組建立關聯。

### 在 RDS Custom for Oracle 中建立選項群組
<a name="custom-oracle-timezone.creating"></a>

您可以建立新的選項群組，從預設選項群組衍生其設定。然後將一或多個選項新增至新的選項群組。或者，如果您已經有一個現有選項群組，您可以將包含其所有選項的選項群組複製到新的選項群組。若要了解如何複製選項群組，請參閱 [刪除選項群組](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Copy)。

RDS Custom for Oracle 的預設選項群組如下：
+ `default:custom-oracle-ee`
+ `default:custom-oracle-se2`
+ `default:custom-oracle-ee-cdb`
+ `default:custom-oracle-se2-cdb`

當您建立選項群組時，會從預設選項群組衍生設定。新增 `TIME_ZONE` 選項後，您可以將選項群組與資料庫執行個體建立關聯。

#### 主控台
<a name="custom-oracle-timezone.Create.Console"></a>

 建立選項群組的其中一種方法是使用 AWS 管理主控台。

**使用主控台建立新的選項群組**

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. 針對**名稱**，輸入您 AWS 帳戶中唯一的選項群組名稱。名稱僅可包含字母、數字與連字號。

   1. 在 **Description (說明)** 欄位中，輸入選項群組的簡要說明。用於顯示用途的說明。

   1. 針對**引擎**，選擇下列任何 RDS Custom for Oracle 資料庫引擎：
      + **custom-oracle-ee**
      + **custom-oracle-se2**
      + **custom-oracle-ee-cdb**
      + **custom-oracle-se2-cdb**

   1. 針對**主要引擎版本**，選擇 RDS Custom for Oracle 支援的主要引擎版本。如需詳細資訊，請參閱[支援的 RDS Custom for Oracle 區域和資料庫引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.md#Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.ora)。

1. 請選擇 **Create (建立)** 以繼續進行。若要取消操作，請改為選擇 **Cancel (取消)**。

#### AWS CLI
<a name="custom-oracle-timezone.Create.CLI"></a>

若要建立選項群組，請使用 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/create-option-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-option-group.html)命令搭配下列必要參數。
+ `--option-group-name`
+ `--engine-name`
+ `--major-engine-version`
+ `--option-group-description`

**Example**  
以下範例會建立名為 `testoptiongroup` 的選項群組，該群組與 Oracle Enterprise Edition 資料庫引擎關聯。該說明包含在引號中。  
在 Linux、macOS 或 Unix 中：  

```
aws rds create-option-group \
    --option-group-name testoptiongroup \
    --engine-name custom-oracle-ee-cdb \
    --major-engine-version 19 \
    --option-group-description "Test option group for a Custom Oracle CDB"
```
在 Windows 中：  

```
aws rds create-option-group ^
    --option-group-name testoptiongroup ^
    --engine-name custom-oracle-ee-cdb ^
    --major-engine-version 19 ^
    --option-group-description "Test option group for a Custom Oracle CDB"
```

#### RDS API
<a name="custom-oracle-timezone.Create.API"></a>

如要建立選項群組，請呼叫 Amazon RDS​ API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateOptionGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateOptionGroup.html)​ 操作。

### 將選項群組與 RDS Custom for Oracle 資料庫執行個體建立關聯
<a name="custom-oracle-timezone.associating"></a>

您可以將選項群組與新的或現有的資料庫執行個體建立關聯。
+ 針對新的資料庫執行個體，在建立執行個體時套用選項群組。如需詳細資訊，請參閱[建立 RDS Custom for Oracle 資料庫執行個體](custom-creating.md#custom-creating.create)。
+ 針對現有的資料庫執行個體，可以透過修改執行個體並附加新的選項群組來套用選項群組。如需詳細資訊，請參閱[修改您的 RDS Custom for Oracle 資料庫執行個體](custom-managing.modifying.md)。

# Oracle 時區
<a name="custom-managing.timezone"></a>

若要變更您 RDS Custom for Oracle 資料庫執行個體所使用的系統時區，請使用時區選項。例如，您可以變更資料庫執行個體的時區，以與現場部署環境或舊型應用程式相容。時區選項會變更主機層級的時區。變更時區會影響所有日期欄和值，包括 `SYSDATE` 和 `SYSTIMESTAMP`。

**Topics**
+ [RDS Custom for Oracle 中的時區選項設定](#custom-oracle-timezone.Options)
+ [RDS Custom for Oracle 中的可用時區](#custom-oracle-timezone.Zones)
+ [在 RDS Custom for Oracle 中設定時區的考量事項](#custom-oracle-timezone.PreReqs)
+ [在 RDS Custom for Oracle 中設定時區的限制](#custom-oracle-timezone.overview.limitations)
+ [將時區選項新增至選項群組](#custom-oracle-timezone.Add)
+ [移除時區選項](#custom-oracle-timezone.remove)

## RDS Custom for Oracle 中的時區選項設定
<a name="custom-oracle-timezone.Options"></a>

Amazon RDS 支援時區選項的下列設定。


****  

| 選項設定 | 有效值 | 描述 | 
| --- | --- | --- | 
|  `TIME_ZONE`  |  其中一個可用的時區。如需完整清單，請參閱[RDS Custom for Oracle 中的可用時區](#custom-oracle-timezone.Zones)。  |  資料庫執行個體的新時區。  | 

## RDS Custom for Oracle 中的可用時區
<a name="custom-oracle-timezone.Zones"></a>

您可對時區選項使用下列值。


****  

| 區域 | 時區 | 
| --- | --- | 
|  非洲  |  非洲/開羅，非洲/卡薩布蘭卡，非洲/哈拉雷，非洲/拉哥斯，非洲/魯安達，非洲/蒙羅維亞，非洲/奈洛比，非洲/的黎波里，非洲/溫吐克   | 
|  美洲  |  美洲/阿拉瓜伊納，美洲/阿根廷/布宜諾斯艾利斯，美洲/亞松森，美洲/波哥大，美洲/卡拉卡斯，美洲/芝加哥，美洲/赤瓦瓦州，美洲/古雅巴，美洲/丹佛，美洲/底特律，美洲/福塔力沙，美洲/哥特哈布，美洲/瓜地馬拉，美洲/哈利法克斯，美洲/利馬，美洲/洛杉磯，美洲/瑪瑙斯，美洲/馬塔莫羅斯，美洲/墨西哥市，美洲/蒙特利，美洲/蒙特維多，美洲/紐約州，美洲/鳳凰城，美洲/聖地牙哥，美洲/聖保羅，美洲/提華納，美洲/多倫多   | 
|  亞洲  |  亞洲/安曼，亞洲/阿什哈巴德，亞洲/巴格達，亞洲/巴庫，亞洲/曼谷，亞洲/貝魯特，亞洲/加爾各答，亞洲/大馬士革，亞洲/達卡，亞洲/香港，亞洲/伊爾庫次克，亞洲/雅加達，亞洲/耶路撒冷，亞洲/喀布爾，亞洲/喀拉蚩，亞洲/加德滿都，亞洲/加爾各答，亞洲/克拉斯諾雅斯克，亞洲/馬加丹，亞洲/馬尼拉，亞洲/馬斯喀特，亞洲/新西伯利亞，亞洲/仰光，亞洲/利雅德，亞洲/首爾，亞洲/上海，亞洲/新加坡，亞洲/台北，亞洲/德黑蘭，亞洲/東京，亞洲/庫倫，亞洲/海參崴，亞洲/雅庫次克，亞洲/葉里溫   | 
|  大西洋  |  大西洋/亞速爾群島，大西洋/維德角群島   | 
|  澳大利亞  |  澳洲/阿德萊德，澳洲/布利斯班，澳洲/達爾文，澳洲/尤克拉，澳洲/荷巴特，澳洲/羅豪，澳洲/伯斯，澳洲/雪梨   | 
|  巴西  |  巴西/迪諾羅尼亞，巴西/東部   | 
|  加拿大  |  加拿大/紐芬蘭，加拿大/薩克其萬省   | 
|  等等  |  等等/GMT-3  | 
|  歐洲  |  歐洲/阿姆斯特丹，歐洲/雅典，歐洲/柏林，歐洲/都柏林，歐洲/赫爾辛基，歐洲/加里寧格勒，歐洲/倫敦，歐洲/馬德里，歐洲/莫斯科，歐洲/巴黎，歐洲/布拉格，歐洲/羅馬，歐洲/塞拉耶佛   | 
|  太平洋  |  太平洋/亞庇，太平洋/奧克蘭，太平洋/查塔姆，太平洋/斐濟，太平洋/關島，太平洋/檀香山，太平洋/刻里提瑪斯，太平洋/馬克沙斯，太平洋/薩摩亞，太平洋/東加塔普，太平洋/威克   | 
|  美國  |  美國/阿拉斯加，美國/中部，美國/東印第安納州，美國/東部，美國/太平洋   | 
|  UTC  |  UTC  | 

## 在 RDS Custom for Oracle 中設定時區的考量事項
<a name="custom-oracle-timezone.PreReqs"></a>

如果您選擇設定資料庫執行個體的時區，請考慮下列事項：
+ 當您新增時區選項時，在資料庫執行個體自動重新啟動時會發生短暫的中斷。
+ 如果您不小心設定為錯誤的時區，則必須將您的資料庫執行個體復原為先前的時區設定。因此，強烈建議您在將時區選項新增至執行個體之前，使用下列其中一個策略：
  + 如果您的 RDS Custom for Oracle 資料庫執行個體使用預設選項群組，請拍攝資料庫執行個體的快照。如需詳細資訊，請參閱[建立 RDS Custom for Oracle 快照](custom-backup.creating.md)。
  + 如果您的資料庫執行個體目前使用非預設選項群組，請擷取資料庫執行個體的快照，然後使用時區選項建立新的選項群組。
+ 強烈建議您在套用 `Timezone` 選項後手動備份資料庫執行個體。
+ 強烈建議您在將時區選項新增至生產資料庫執行個體之前，在測試資料庫執行個體上測試時區選項。新增時區選項可能導致表格使用系統日期來新增日期或時間的問題。我們建議您分析資料和應用程式，來評估變更時區的影響。

## 在 RDS Custom for Oracle 中設定時區的限制
<a name="custom-oracle-timezone.overview.limitations"></a>

注意下列限制：
+ 您無法直接在主機上變更時區，除非將其移至支援周邊之外。若要變更資料庫時區，您必須建立選項群組。
+ 由於時區選項是持久性選項 (但不是永久選項)，因此您無法執行下列動作：
  + 在新增該選項之後，從選項群組中將其移除。
  + 將選項的時區設定修改為其他時區。
+ 您無法將多個選項群組與 RDS Custom for Oracle 資料庫執行個體建立關聯。
+ 您無法在 CDB 內為個別 PDB 設定時區。

## 將時區選項新增至選項群組
<a name="custom-oracle-timezone.Add"></a>

RDS Custom for Oracle 的預設選項群組如下：
+ `default:custom-oracle-ee`
+ `default:custom-oracle-se2`
+ `default:custom-oracle-ee-cdb`
+ `default:custom-oracle-se2-cdb`

當您建立選項群組時，會從預設選項群組衍生設定。如需 Amazon RDS 中選項群組的一般資訊，請參閱 [使用選項群組](USER_WorkingWithOptionGroups.md)。

### 主控台
<a name="custom-oracle-timezone.Console"></a>

**將時區選項新增至選項群組**

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

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

1. 選擇您要修改的選項群組，然後選擇 **Add option (新增選項)**。

1. 在 **Add option (新增選項)** 視窗中，執行下列作業：

   1. 選擇**時區**。

   1. 在**選項設定**中，選擇時區。

   1. 若要在所有關聯的 RDS Custom for Oracle DB 資料庫執行個體新增選項時隨即啟用選項，請在**立即套用**選擇**是**。如果您選擇了**否** (預設)，選項將會在下一個維護時段為每個關聯的資料庫執行個體啟用。

   1. 
**重要**  
如果您將時區選項新增至已附加至一個或多個資料庫執行個體的現有選項群組，則在所有資料庫執行個體自動重新啟動時會發生短暫的中斷。

1. 當您滿意設定後，選擇 **Add option (新增選項)**。

1. 備份其時區已更新的 RDS Custom for Oracle 資料庫執行個體。如需詳細資訊，請參閱[建立 RDS Custom for Oracle 快照](custom-backup.creating.md)。

### AWS CLI
<a name="custom-oracle-timezone.CLI"></a>

下列範例使用 AWS CLI [add-option-to-option-group](https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html) 命令，將 `Timezone`選項和 `TIME_ZONE`選項設定新增至名為 的選項群組`testoptiongroup`。時區會設為 `America/Los_Angeles`。

對於 Linux、macOS 或 Unix：

```
aws rds add-option-to-option-group \
    --option-group-name "testoptiongroup" \
    --options "OptionName=Timezone,OptionSettings=[{Name=TIME_ZONE,Value=America/Los_Angeles}]" \
    --apply-immediately
```

在 Windows 中：

```
aws rds add-option-to-option-group ^
    --option-group-name "testoptiongroup" ^
    --options "OptionName=Timezone,OptionSettings=[{Name=TIME_ZONE,Value=America/Los_Angeles}]" ^
    --apply-immediately
```

## 移除時區選項
<a name="custom-oracle-timezone.remove"></a>

時區選項是持續的選項，但非永久選項。在新增此選項之後，您無法從選項群組中移除它。若要取消舊選項群組與資料庫執行個體的關聯：

1. 使用更新的 `Timezone` 選項建立新的選項群組。

1. 當您修改執行個體時，請與新的選項群組建立關聯。

# 將內部部署資料庫遷移至 RDS Custom for Oracle
<a name="custom-migrating-oracle"></a>

將內部部署 Oracle 資料庫遷移至 RDS Custom for Oracle 之前，請考量下列因素：
+ 應用程式可承受的停機時間
+ 來源資料庫的大小
+ 網路連線能力
+ 備用計畫的需求
+ 來源和目標 Oracle 資料庫版本和資料庫執行個體作業系統類型
+ 可用的複寫工具，例如 AWS Database Migration Service、Oracle GoldenGate 或第三方複寫工具

根據這些因素，您可以選擇實體遷移、邏輯遷移或組合。如果選擇實體遷移，您可以使用下列技術：

RMAN 複製  
作用中資料庫複製不需要備份來源資料庫。它會透過網路將資料庫檔案複製到輔助執行個體，將即時來源資料庫複製到目的地主機。RMAN `DUPLICATE` 指令會將必要檔案複製為映像複本或備份集。若要了解這項技術，請參閱 AWS 部落格文章：[使用 RMAN 複製將 Oracle 資料庫實體遷移至 Amazon RDS Custom](https://aws.amazon.com/blogs/database/physical-migration-of-oracle-databases-to-amazon-rds-custom-using-rman-duplication/)。

Oracle Data Guard  
在此技術中，您會備份主要內部部署資料庫，並將這些備份複製到 Amazon S3 儲存貯體。然後，將這些備份複製到 RDS Custom for Oracle 待命資料庫執行個體。在執行必要的組態之後，您可以手動將主要資料庫切換至 RDS Custom for Oracle 待命資料庫。若要了解這項技術，請參閱 AWS 部落格文章：[使用資料防護將 Oracle 資料庫實體遷移至 Amazon RDS Custom](https://aws.amazon.com/blogs/database/physical-migration-of-oracle-databases-to-amazon-rds-custom-using-data-guard/)。

如需有關以邏輯方式將資料匯入至 RDS for Oracle 的一般資訊，請參閱 [將資料匯入 Amazon RDS 上的 Oracle](Oracle.Procedural.Importing.md)。

# 升級 Amazon RDS Custom for Oracle 的資料庫執行個體
<a name="custom-upgrading"></a>

您可以藉由將 Amazon RDS Custom 資料庫執行個體修改為新的自訂引擎版本 (CEV) 來進行升級。如需升級的一般資訊，請參閱 [升級資料庫執行個體 引擎版本](USER_UpgradeDBInstance.Upgrading.md)。

**Topics**
+ [RDS Custom for Oracle 中的升級概觀](#custom-upgrading.overview)
+ [RDS Custom for Oracle 升級的需求](#custom-upgrading-reqs)
+ [RDS Custom for Oracle 資料庫升級的考量](custom-upgrading-considerations.md)
+ [RDS Custom for Oracle 作業系統升級的考量](custom-upgrading-considerations-os.md)
+ [檢視 RDS Custom for Oracle 資料庫執行個體的有效 CEV 升級目標](custom-upgrading-target.md)
+ [升級 RDS Custom for Oracle 資料庫執行個體](custom-upgrading-modify.md)
+ [檢視 RDS Custom 資料庫執行個體的待定資料庫升級](custom-upgrading-pending.md)
+ [RDS Custom for Oracle 資料庫執行個體升級失敗的疑難排解](custom-upgrading-failure.md)

## RDS Custom for Oracle 中的升級概觀
<a name="custom-upgrading.overview"></a>

使用 RDS Custom for Oracle，您可以建立新的 CEV，然後修改執行個體以使用新 CEV，來修補 Oracle 資料庫或資料庫執行個體作業系統 (OS)。

**Topics**
+ [CEV 升級選項](#custom-upgrading.overview.cev-options)
+ [在沒有 CEV 的情況下進行修補](#custom-upgrading.overview.no-cevs)
+ [使用 CEV 修補資料庫執行個體的一般步驟](#custom-upgrading.overview.general-steps)

### CEV 升級選項
<a name="custom-upgrading.overview.cev-options"></a>

建立 CEV 進行升級時，您有下列互斥選項：

**僅限資料庫**  
重複使用資料庫執行個體目前使用中的 Amazon Machine Image (AMI)，但指定不同的資料庫二進位檔案。RDS Custom 會配置新的二進位磁碟區，然後將其附加到現有的 Amazon EC2 執行個體。RDS Custom 會將整個資料庫磁碟區取代為使用目標資料庫版本的新磁碟區。

**僅限作業系統**  
重複使用資料庫執行個體目前使用中的資料庫二進位檔案，但指定不同的 AMI。RDS Custom 會配置新的 Amazon EC2 執行個體，然後將現有的二進位磁碟區附加到新的執行個體。現有的資料庫磁碟區會加以保留。

如果您想要同時升級作業系統和資料庫，則必須升級 CEV 兩次。您可以先升級作業系統，然後再升級資料庫，或先升級資料庫，然後再升級作業系統。

**警告**  
當您修補作業系統時，您會遺失根磁碟區資料和任何現有的作業系統自訂。因此，我們強烈建議您不要使用安裝或儲存永久資料或檔案的根磁碟區。我們也建議您在升級前，先備份資料。

### 在沒有 CEV 的情況下進行修補
<a name="custom-upgrading.overview.no-cevs"></a>

強烈建議您使用 CEV 升級 RDS Custom for Oracle 資料庫執行個體。RDS Custom for Oracle 會自動將修補程式中繼資料與資料庫執行個體上的資料庫二進位同步。

在特殊情況下，RDS Custom 支援使用 OPatch 公用程式直接將「一次性」資料庫修補程式套用至基礎 Amazon EC2 執行個體。有效的使用情況可能是您要立即套用的資料庫修補程式，但 RDS Custom 群組正在升級 CEV 功能，進而造成延遲。若要手動套用資料庫修補程式，請執行下列步驟：

1. 暫停 RDS Custom 自動化。

1. 將修補程式套用至 Amazon EC2 執行個體上的資料庫二進位。

1. 繼續 RDS Custom 自動化。

執行上述技巧的缺點是，您必須手動將資料庫修補程式套用至每個要升級的執行個體。相反，當您建立新的 CEV 時，您可以使用相同的 CEV 建立或升級多個資料庫執行個體。

### 使用 CEV 修補資料庫執行個體的一般步驟
<a name="custom-upgrading.overview.general-steps"></a>

無論您修補作業系統還是資料庫，都要執行下列基本步驟：

1. 根據您要修補資料庫還是作業系統，建立包含下列任一項目的 CEV：
   + 您要套用到資料庫執行個體的 Oracle Database RU
   + 不同的 AMI (最新的可用 AMI 或您指定的 AMI) 以及用作來源的現有 CEV

   請遵循 [建立 CEV](custom-cev.create.md) 中的步驟。

1. (可供資料庫修補選擇) 執行 `describe-db-engine-versions` 以檢查可用的引擎版本升級。

1. 執行 `modify-db-instance` 以啟動修補程序。

   要修補的執行個體狀態會有所不同，如下所示：
   + RDS 修補資料庫時，資料庫執行個體的狀態將變更為**升級中**。
   + RDS 修補作業系統時，資料庫執行個體的狀態將變更為**修改中**。

   資料庫執行個體的狀態為**可用**時，表示修補已完成。

1. 執行 `describe-db-instances` 以確認您的資料庫執行個體使用新的 CEV。

## RDS Custom for Oracle 升級的需求
<a name="custom-upgrading-reqs"></a>

若要將 RDS Custom for Oracle 資料庫執行個體升級為目標 CEV，請確定符合下列需求：
+ 您要升級的目標 CEV 必須存在。
+ 您必須在單一操作中升級作業系統或資料庫。不支援在單一 API 呼叫中同時升級作業系統和資料庫。
+ 目標 CEV 必須使用目前 CEV 清單檔案中的安裝參數設定。例如，您無法將使用預設 Oracle 主目錄的資料庫升級至使用非預設 Oracle 主目錄的 CEV。
+ 對於資料庫升級，目標 CEV 必須使用新的次要資料庫版本，而不是新的主要版本。例如，您無法從 Oracle 資料庫 12c CEV 升級至 Oracle 資料庫 19c CEV。但您可以從版本 21.0.0.0.ru-2023-04.rur-2023-04.r1 升級至版本 21.0.0.0.ru-2023-07.rur-2023-07.r1。
+ 對於作業系統升級，目標 CEV 必須使用不同的 AMI，但具有相同的主要版本。

# RDS Custom for Oracle 資料庫升級的考量
<a name="custom-upgrading-considerations"></a>

如果您打算升級資料庫，請考慮下列事項：
+ 目前支援的作業系統 (OS) 版本為 Oracle Linux 8。若要繼續從 RDS Custom for Oracle 接收最新的安全性更新和修補程式，請根據此作業系統指定 CEV，將您的資料庫執行個體升級至 Oracle Linux 8。Oracle 資料庫 12c 版本 1 (12.1)、Oracle 資料庫版本 2 (12.2) 和 Oracle 資料庫 19c 是唯一支援 Oracle Linux 8 的版本。若要遷移至最新的 Oracle Linux 8 AMI，請將您的作業系統升級至最新的 AMI。如需詳細資訊，請參閱[升級 RDS Custom for Oracle 資料庫執行個體](custom-upgrading-modify.md)。

  Oracle Linux 7.9 已於 2024 年 12 月 31 日結束支援。若要在支援結束後繼續執行 Oracle Linux 7，請購買 Oracle 延伸支援授權。您必須負責安全性更新，且必須手動修補 RDS Custom for Oracle 執行個體。如需詳細資訊，請參閱[生命週期支援政策：Oracle 開放原始碼服務方案的涵蓋範圍](https://www.oracle.com/a/ocom/docs/elsp-lifetime-069338.pdf)。
+ 當您升級主要資料庫執行個體中的資料庫二進位檔案時，RDS Custom for Oracle 會自動升級您的僅供讀取複本。不過，當您升級作業系統時，必須手動升級僅供讀取複本。
+ 當您將容器資料庫 (CDB) 升級至新的資料庫版本時，RDS Custom for Oracle 會檢查所有 PDB 是否已開啟或可以開啟。如果不符合這些條件，RDS Custom 會停止檢查，並將資料庫恢復為原始狀態，而不會嘗試升級。如果符合條件，RDS Custom 會首先修補 CDB 根，然後平行修補所有其他 PDB (包括 `PDB$SEED`)。

  修補完成後，RDS Custom 會嘗試開啟所有 PDB。若有任何 PDB 無法開啟，您會收到下列事件：`The following PDBs failed to open: list-of-PDBs`。如果 RDS Custom 無法修補 CDB 根或任何 PDB，則執行個體會進入 `PATCH_DB_FAILED` 狀態。
+ 您可能想要同時執行主要資料庫版本升級，以及將非 CDB 轉換為 CDB。在此情況下，建議您依照下述進行：

  1. 建立新的 RDS Custom for Oracle 資料庫執行個體，其會使用 Oracle 多租戶架構。

  1. 將非 CDB 插入您的 CDB 根中，將其建立為 PDB。確定非 CDB 的主要版本與您的 CDB 相同。

  1. 透過執行 `noncdb_to_pdb.sql` Oracle SQL 指令碼來轉換您的 PDB。

  1. 驗證您的 CDB 執行個體。

  1. 升級您的 CDB 執行個體。

# RDS Custom for Oracle 作業系統升級的考量
<a name="custom-upgrading-considerations-os"></a>

規劃作業系統升級時，請確定以下各項：
+ 您無法提供自己的 AMI 以在 RDS Custom for Oracle CEV 中使用。您可以指定使用 Oracle Linux 8 的預設 AMI，或 RDS Custom for Oracle CEV 先前使用的 AMI。
**注意**  
發現常見漏洞和暴露時，RDS Custom for Oracle 會發行新的預設 AMI。無固定排程可用或保證。RDS Custom for Oracle 傾向於每 30 天發布新的預設 AMI。
+ 當您升級主要資料庫執行個體中的作業系統時，必須手動升級其相關聯的僅供讀取複本。
+ 請在開始修補業系統之前，為 AZ 中的執行個體類型保留足夠的 Amazon EC2 運算容量。

  建立容量保留時，您必須指定 AZ、執行個體數目和執行個體屬性 (包括執行個體類型)。例如，如果您的資料庫執行個體使用基礎 EC2 執行個體類型 r5.large，建議您在 AZ 中為 r5.large 保留 EC2 容量。在作業系統修補期間，RDS Custom 會建立類型為 db.r5.large 的新主機，如果 AZ 缺少此執行個體類型的 EC2 容量，則該主機可能會停滯。如果您保留 EC2 容量，則可以降低因容量限制而導致修補遭到封鎖的風險。如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的[隨需容量保留](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html)。
+ 升級其作業系統之前，請備份資料庫執行個體。升級會移除您的根磁碟區資料和任何現有的作業系統自訂。
+ 在共同責任模型中，您有責任將作業系統保持在最新狀態。RDS Custom for Oracle 不會強制您套用哪些修補程式到您的作業系統。如果您的 RDS Custom for Oracle 正常運作，您可以無限期地使用與此 CEV 相關聯的 AMI。

# 檢視 RDS Custom for Oracle 資料庫執行個體的有效 CEV 升級目標
<a name="custom-upgrading-target"></a>

您可以在 AWS 管理主控台中的 **Custom engine versions** (自訂引擎版本) 頁面中看到現有的 CEV。

您也可以使用 [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) AWS CLI 命令來尋找升級資料庫執行個體時要使用的有效 CEVs，如下列範例所示。此範例假設您已使用引擎版本 `19.my_cev1` 建立資料庫執行個體，並假設升級版本 `19.my_cev2` 和 `19.my_cev` 存在。

```
aws rds describe-db-engine-versions --engine custom-oracle-ee --engine-version 19.my_cev1
```

輸出結果與以下內容相似。`ImageId` 欄位會顯示 AMI ID。

```
{
    "DBEngineVersions": [
        {
            "Engine": "custom-oracle-ee",
            "EngineVersion": "19.my_cev1",
            ...
            "Image": {
                "ImageId": "ami-2345",
                "Status": "active"
            },
            "DBEngineVersionArn": "arn:aws:rds:us-west-2:123456789012:cev:custom-oracle-ee/19.my_cev1/12a34b5c-67d8-90e1-2f34-gh56ijk78lm9"
            "ValidUpgradeTarget": [
                {
                    "Engine": "custom-oracle-ee",
                    "EngineVersion": "19.my_cev2",
                    "Description": "19.my_cev2 description",
                    "AutoUpgrade": false,
                    "IsMajorVersionUpgrade": false
                },
                {
                    "Engine": "custom-oracle-ee",
                    "EngineVersion": "19.my_cev3",
                    "Description": "19.my_cev3 description",
                    "AutoUpgrade": false,
                    "IsMajorVersionUpgrade": false
                }
            ]
            ...
```

# 升級 RDS Custom for Oracle 資料庫執行個體
<a name="custom-upgrading-modify"></a>

若要升級 RDS Custom for Oracle 資料庫執行個體，請將其修改為使用新的 CEV。此 CEV 可以包含新的資料庫二進位檔案或新的 AMI。例如，若要將 Oracle Linux 7.9 資料庫執行個體升級至 Oracle Linux 8，請指定使用 Oracle Linux 8 的最新 AMI。若要升級資料庫和作業系統，則必須執行兩個不同的升級。

**注意**  
如果您升級資料庫，RDS Custom 會在升級主要資料庫執行個體之後自動升級僅供讀取複本。如果升級作業系統，您必須手動升級這些複本。

開始之前，請先檢閱 [RDS Custom for Oracle 升級的需求](custom-upgrading.md#custom-upgrading-reqs)和 [RDS Custom for Oracle 資料庫升級的考量](custom-upgrading-considerations.md)。

## 主控台
<a name="custom-upgrading-modify.CON"></a>

**升級 RDS Custom for Oracle 資料庫執行個體**

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

1. 在導覽窗格中，選擇**資料庫**，然後選擇您要升級的 RDS Custom for Oracle 資料庫執行個體。

1. 選擇 **Modify (修改)**。**Modify DB instance (修改資料庫執行個體)** 頁面隨即出現。

1. 對於**資料庫引擎版本**，選擇新的 CEV。請執行下列操作：
   + 如果您要修補資料庫，請確定 CEV 指定的資料庫二進位檔與資料庫執行個體所使用的資料庫二進位檔案不同，而且未指定與資料庫執行個體目前所用 AMI 不同的 AMI。
   + 如果您要修補作業系統，請確定 CEV 指定的 AMI 與資料庫執行個體所使用的 AMI 不同，而且未指定不同的資料庫二進位檔案。
**警告**  
當您修補作業系統時，您會遺失根磁碟區資料和任何現有的作業系統自訂。

1. 選擇 **Continue (繼續)** 以檢查修改的摘要。

   若要立即套用變更，請選擇 **Apply immediately (立即套用)**。

1. 如果您的變更正確，請選擇 **Modify DB instance (修改資料庫執行個體)**。或者，選擇 **Back (上一步)** 以編輯變更，或是選擇 **Cancel (取消)** 以取消變更。

## AWS CLI
<a name="custom-upgrading-modify.CLI"></a>

下列範例顯示可能的升級案例。這些範例假設您已建立 RDS Custom for Oracle 資料庫執行個體，其具有下列特性：
+ 名為 `my-custom-instance` 的資料庫執行個體
+ 名為 `19.my_cev1` 的 CEV
+ Oracle Database 19c 使用非 CDB 架構
+ 使用 AMI `ami-1234` 的 Oracle Linux 8

最新服務提供的 AMI 為 `ami-2345`。您可以執行 CLI 命令 `describe-db-engine-versions` 來尋找您的 AMI：

**Topics**
+ [升級作業系統](#custom-upgrading-modify.CLI.os)
+ [升級資料庫](#custom-upgrading-modify.CLI.db)

### 升級作業系統
<a name="custom-upgrading-modify.CLI.os"></a>

在此範例中，您想要將 `ami-1234` 升級至 `ami-2345`，這是最新服務提供的 AMI。因為您要升級作業系統，所以 `ami-1234` 和 `ami-2345` 的資料庫二進位檔案必須相同。您建立一個以 `19.my_cev1` 為基礎且名為 `19.my_cev2` 的新 CEV。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
aws rds create-custom-db-engine-version \
    --engine custom-oracle-ee \
    --engine-version 19.my_cev2 \
    --description "Non-CDB CEV based on ami-2345" \
    --kms-key-id key-name \
    --source-custom-db-engine-version-identifer arn:aws:rds:us-west-2:123456789012:cev:custom-oracle-ee/19.my_cev1/12345678-ab12-1234-cde1-abcde123456789 \
    --image-id ami-2345
```
在 Windows 中：  

```
aws rds create-custom-db-engine-version ^
    --engine custom-oracle-ee ^
    --engine-version 19.my_cev2 ^
    --description "Non-CDB CEV based on ami-2345" ^
    --kms-key-id key-name ^
    --source-custom-db-engine-version-identifer arn:aws:rds:us-west-2:123456789012:cev:custom-oracle-ee/19.my_cev1/12345678-ab12-1234-cde1-abcde123456789 ^
    --image-id ami-2345
```

若要升級 RDS Custom 資料庫執行個體，請使用 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) AWS CLI 命令搭配下列參數：
+ `--db-instance-identifier` - 指定要升級的 RDS Custom for Oracle 資料庫執行個體。
+ `--engine-version` - 指定具有新 AMI 的 CEV。
+ `--no-apply-immediately` \$1 `--apply-immediately` – 指定要立即執行升級，還是等到排定的維護時段。

下列範例會將 `my-custom-instance` 升級到版本 `19.my_cev2`。僅升級作業系統。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --engine-version 19.my_cev2 \
    --apply-immediately
```
在 Windows 中：  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --engine-version 19.my_cev2 ^
    --apply-immediately
```

### 升級資料庫
<a name="custom-upgrading-modify.CLI.db"></a>

在此範例中，您想要將 Oracle 修補程式 p35042068 套用至 RDS for Oracle 資料庫執行個體。因為您已在 [升級作業系統](#custom-upgrading-modify.CLI.os) 中升級作業系統，所以您的資料庫執行個體目前正在使用 `19.my_cev2`，其是以 `ami-2345` 為基礎。您建立名為 `19.my_cev3` 的新 CEV，其也會使用`ami-2345`，但您可以在 `$MANIFEST` 環境變數中指定新的 JSON 清單檔案。因此，資料庫二進位檔案只在新 CEV 和執行個體目前使用的 CEV 中不同。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
aws rds create-custom-db-engine-version \
    --engine custom-oracle-ee \
    --engine-version 19.my_cev3 \
    --description "Non-CDB CEV with p35042068 based on ami-2345" \
    --kms-key-id key-name \
    --image-id ami-2345 \
    --manifest $MANIFEST
```
在 Windows 中：  

```
aws rds create-custom-db-engine-version ^
    --engine custom-oracle-ee ^
    --engine-version 19.my_cev3 ^
    --description "Non-CDB CEV with p35042068 based on ami-2345" ^
    --kms-key-id key-name ^
    --image-id ami-2345 ^
    --manifest $MANIFEST
```

下列範例會將 `my-custom-instance` 升級到引擎版本 `19.my_cev3`。僅升級資料庫。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --engine-version 19.my_cev3 \
    --apply-immediately
```
在 Windows 中：  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --engine-version 19.my_cev3 ^
    --apply-immediately
```

# 檢視 RDS Custom 資料庫執行個體的待定資料庫升級
<a name="custom-upgrading-pending"></a>

您可以使用 [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 或 [describe-pending-maintenance-actions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-pending-maintenance-actions.html) AWS CLI 命令，查看 Amazon RDS Custom 資料庫執行個體的待處理資料庫升級。

不過，如果您使用 `--apply-immediately` 選項或是升級正在進行中，則這個方法無法運作。

下列 `describe-db-instances` 命令會顯示 `my-custom-instance` 的待定資料庫升級。

```
aws rds describe-db-instances --db-instance-identifier my-custom-instance
```

輸出結果與以下內容相似。

```
{
    "DBInstances": [
        {
           "DBInstanceIdentifier": "my-custom-instance",
            "EngineVersion": "19.my_cev1",
            ...
            "PendingModifiedValues": {
                "EngineVersion": "19.my_cev3"
            ...
            }
        }
    ]
}
```

# RDS Custom for Oracle 資料庫執行個體升級失敗的疑難排解
<a name="custom-upgrading-failure"></a>

如果 RDS Custom 資料庫執行個體升級失敗，則會產生 RDS 事件且資料庫執行個體狀態會變成 `upgrade-failed`。

您可以使用 [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) AWS CLI 命令來查看此狀態，如下列範例所示。

```
aws rds describe-db-instances --db-instance-identifier my-custom-instance
```

輸出結果與以下內容相似。

```
{
    "DBInstances": [
        {
           "DBInstanceIdentifier": "my-custom-instance",
            "EngineVersion": "19.my_cev1",
            ...
            "PendingModifiedValues": {
                "EngineVersion": "19.my_cev3"
            ...
            }
            "DBInstanceStatus": "upgrade-failed"
        }
    ]
}
```

升級失敗之後，除了修改資料庫執行個體以執行下列工作之外，所有資料庫動作都會遭到封鎖：
+ 重試相同的升級
+ 暫停和繼續 RDS Custom 自動化
+ 時間點復原 (PITR)
+ 刪除資料庫執行個體

**注意**  
如果已暫停 RDS Custom 資料庫執行個體的自動化，則在繼續自動化之前，您無法重試升級。  
相同的動作適用於 RDS 受管僅供讀取複本的升級失敗，與主要複本的升級失敗相同。

如需更多詳細資訊，請參閱 [針對 RDS Custom for Oracle 升級進行故障診斷](custom-troubleshooting.md#custom-troubleshooting-upgrade)。

# 針對 Amazon RDS Custom for Oracle 的資料庫問題進行故障診斷
<a name="custom-troubleshooting"></a>

RDS Custom 的共同的責任模型提供作業系統殼層層級存取權和資料庫管理員存取權。RDS Custom 會執行您的帳戶中的資源，不像是 Amazon RDS，它會執行系統帳戶中的資源。責任越大，存取權也越大。在下列區段中，您可以了解如何針對 Amazon RDS Custom 資料庫執行個體的問題進行故障診斷。

**注意**  
本節說明如何對 RDS Custom for Oracle 進行故障診斷。若要對 RDS Custom for SQL Server 進行故障診斷，請參閱 [針對 Amazon RDS Custom for SQL Server 的資料庫問題進行故障診斷](custom-troubleshooting-sqlserver.md)。

**Topics**
+ [檢視 RDS Custom 事件](#custom-troubleshooting.support-perimeter.viewing-events)
+ [訂閱 RDS Custom 事件](#custom-troubleshooting.support-perimeter.subscribing)
+ [對資料庫執行個體建立問題進行故障診斷](#custom-troubleshooting.creation-issues)
+ [針對 RDS Custom for Oracle 的自訂引擎版本建立進行故障診斷](#custom-troubleshooting.cev)
+ [修正 RDS Custom for Oracle 中不支援的組態](#custom-troubleshooting.fix-unsupported)
+ [針對 RDS Custom for Oracle 升級進行故障診斷](#custom-troubleshooting-upgrade)
+ [RDS Custom for Oracle 複本提升的故障診斷](#custom-troubleshooting-promote)

## 檢視 RDS Custom 事件
<a name="custom-troubleshooting.support-perimeter.viewing-events"></a>

RDS Custom 和 Amazon RDS 資料庫執行個體的檢視事件程序相同。如需詳細資訊，請參閱[檢視 Amazon RDS 事件](USER_ListEvents.md)。

若要使用 檢視 RDS Custom 事件通知 AWS CLI，請使用 `describe-events`命令。RDS Custom 引入數個新事件。事件類別與 Amazon RDS 的類別相同。如需事件清單，請參閱 [ Amazon RDS 事件類別和事件訊息](USER_Events.Messages.md)。

下列範例會擷取針對指定 RDS Custom 資料庫執行個體發生之事件的詳細資訊。

```
1. aws rds describe-events \
2.     --source-identifier my-custom-instance \
3.     --source-type db-instance
```

## 訂閱 RDS Custom 事件
<a name="custom-troubleshooting.support-perimeter.subscribing"></a>

RDS Custom 與 Amazon RDS 資料庫執行個體的訂閱事件程序相同。如需詳細資訊，請參閱[訂閱 Amazon RDS 事件通知](USER_Events.Subscribing.md)。

若要使用 CLI 來訂閱 RDS Custom 事件通知，請使用 `create-event-subscription` 命令。包含下列必要參數：
+ `--subscription-name`
+ `--sns-topic-arn`

下列範例會在目前 AWS 帳戶中建立 RDS Custom 資料庫執行個體之備份和復原事件的訂閱。通知會傳送至 Amazon Simple Notification Service (Amazon SNS) 主題，由 `--sns-topic-arn` 指定。

```
1. aws rds create-event-subscription \
2.     --subscription-name my-instance-events \
3.     --source-type db-instance \
4.     --event-categories '["backup","recovery"]' \
5.     --sns-topic-arn arn:aws:sns:us-east-1:123456789012:interesting-events
```

## 對資料庫執行個體建立問題進行故障診斷
<a name="custom-troubleshooting.creation-issues"></a>

如果您的環境未正確設定或缺少必要的許可，則無法建立或還原 RDS Custom for Oracle 資料庫執行個體。當您嘗試建立或還原資料庫執行個體時，Amazon RDS 會驗證您的環境，並在偵測到任何問題時傳回特定錯誤訊息。

解決所有問題後，請再試一次以建立或還原 RDS Custom for Oracle 資料庫執行個體。

### 常見許可問題
<a name="custom-troubleshooting.creation-issues.permissions"></a>

當您建立或還原 RDS Custom for Oracle 執行個體時，Amazon RDS 會驗證您的環境是否具有必要的許可。如果缺少或拒絕許可，操作會失敗並顯示特定的錯誤訊息。


| 問題類型 | 錯誤訊息 | Action | 
| --- | --- | --- | 
|  IAM 角色存取政策  |  由於資源不相容，您無法建立資料庫執行個體。下列許可的主機環境驗證失敗：<permission> on resource： <resource>，因為許可問題訊息：User： <user> 未獲授權執行：<permission> on resource： <resource>，因為沒有身分型政策允許 <permission> 動作。  |  確保列出的必要許可存在，並在包含適當資源的存取政策`Allow`中設定為 。  | 
|  許可界限  |  由於資源不相容，您無法建立資料庫執行個體。下列許可的主機環境驗證失敗：<permission> on resource： <resource>，因為許可問題訊息：User： <user> 未獲授權執行：<permission> on resource： <resource>，並在許可界限中明確拒絕。  |  確認連接至執行個體角色的許可界限並未限制列出的必要許可和資源。  | 
|  服務控制政策  |  由於資源不相容，您無法建立資料庫執行個體。下列許可的主機環境驗證失敗：<permission> on resource： <resource>，因為許可問題與訊息：User： <user> 未獲授權執行：<permission> on resource： <resource> 並在服務控制政策中明確拒絕。  |  請聯絡您的 AWS Organizations 管理員，並確認連接至您帳戶的 服務控制政策並未限制列出的必要許可和資源。  | 
|  資源控制政策  |  由於資源不相容，您無法建立資料庫執行個體。下列許可的主機環境驗證失敗：<permission> on resource： <resource>，因為許可問題與訊息：User： <user> 未獲授權執行：<permission> on resource： <resource>，並在資源控制政策中明確拒絕。  |  請聯絡您的 AWS Organizations 管理員，並確認連接至您帳戶的資源控制政策並未限制列出的必要許可和資源。  | 
|  VPC 端點政策  |  由於資源不相容，您無法建立資料庫執行個體。下列許可的主機環境驗證失敗：<permission> on resource： <resource>，因為許可問題與訊息：User： <user> 未獲授權執行：<permission> on resource： <resource>，且在 VPC 端點政策中明確拒絕。  |  確保必要的 VPC 端點存在，而且連接到它們的政策不會限制列出的必要許可和資源。  | 

### 聯網問題
<a name="custom-troubleshooting.creation-issues.networking"></a>

除了檢閱 之外[步驟 6：設定 RDS Custom for Oracle 的 VPC](custom-setup-orcl.md#custom-setup-orc.vpc-config)，請確認下列項目已正確設定，且不會限制對必要 AWS 服務的存取：

**連接至 Amazon EC2 執行個體的安全群組**  
確保安全群組允許 RDS Custom 操作的所有必要傳入和傳出流量。

**連接到 VPC 的安全群組**  
確認 VPC 安全群組允許進出所需 AWS 服務的流量。

**VPC 端點**  
確認所有必要的 VPC 端點都已正確設定並可存取。

**網路存取控制清單**  
檢查網路 ACLs 是否未封鎖 RDS Custom 功能所需的流量。

## 針對 RDS Custom for Oracle 的自訂引擎版本建立進行故障診斷
<a name="custom-troubleshooting.cev"></a>

當 CEV 建立失敗時，會發生 RDS Custom 問題 `RDS-EVENT-0198` 並且有訊息 `Creation failed for custom engine version major-engine-version.cev_name`，其中包含失敗的詳細資訊。例如，事件會列印遺失的檔案。

CEV 建立可能因為發生下列問題而失敗：
+ 包含安裝檔案的 Amazon S3 儲存貯體不在與 CEV 相同的 AWS 區域中。
+ 當您 AWS 區域 第一次在 中請求建立 CEV 時，RDS Custom 會建立 S3 儲存貯體來存放 RDS Custom 資源 （例如 CEV 成品、 AWS CloudTrail 日誌和交易日誌）。

  如果 RDS Custom 無法建立 S3 儲存貯體，則 CEV 建立會失敗。呼叫者沒有如 [步驟 5：將所需的許可授予您的 IAM 使用者或角色](custom-setup-orcl.md#custom-setup-orcl.iam-user) 中所述的 S3 許可，或者 S3 儲存貯體的數量已達到限制。
+ 呼叫者沒有從包含安裝媒體檔案的 S3 儲存貯體中取得檔案的許可。這些許可在 [步驟 7：新增必要的 IAM 許可](custom-cev.preparing.md#custom-cev.preparing.iam) 中描述。
+ 您的 IAM 政策具有 `aws:SourceIp` 條件。請務必遵循《*AWS Identity and Access Management 使用者指南*》中的 [AWS 根據來源 IP 拒絕存取 AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_aws_deny-ip.html)。另外，請確認呼叫者擁有 S3 許可，如 [步驟 5：將所需的許可授予您的 IAM 使用者或角色](custom-setup-orcl.md#custom-setup-orcl.iam-user) 中所述。
+ CEV 資訊清單中列出的安裝媒體檔案不在 S3 儲存貯體中。
+ RDS Custom 的安裝檔案的 SHA-256 檢查總和未知。

  請確認提供的檔案的 SHA-256 檢查總和符合 Oracle 網站上的 SHA-256 檢查總和。如果檢查總和相符，請聯絡 [AWS 支援](https://aws.amazon.com/premiumsupport)，並提供失敗的 CEV 名稱、檔案名稱和檢查總和。
+ OPatch 版本與修補程式檔案不相容。您可能會收到下列訊息：`OPatch is lower than minimum required version. Check that the version meets the requirements for all patches, and try again`。如要套用 Oracle 修補程式，必須使用相容版本的 OPatch 公用程式。您可在修補程式的讀我檔案中找到 Opatch 公用程式的所需版本。從 My Oracle Support 下載最新的 OPatch 公用程式，然後再次嘗試建立 CEV。
+ CEV 資訊清單中指定的修補程式順序錯誤。

您可以在 RDS 主控台 （在導覽窗格中，選擇事件） 或使用 `describe-events` AWS CLI 命令來檢視 RDS **事件**。預設持續時間為 60 分鐘。如果未傳回任何事件，請指定較長的持續時間，如以下範例所示。

```
aws rds describe-events --duration 360
```

目前，從 Amazon S3 匯入檔案以建立 CEVs MediaImport 服務尚未整合 AWS CloudTrail。因此，如果您在 CloudTrail 中開啟 Amazon RDS 的資料記錄功能，不會記錄對 MediaImport 服務的呼叫，例如 `CreateCustomDbEngineVersion` 事件。

不過，您可能會看到來自可存取 Amazon S3 儲存貯體的 API Gateway 的呼叫。這些呼叫來自 `CreateCustomDbEngineVersion` 事件的 MediaImport 服務。

## 修正 RDS Custom for Oracle 中不支援的組態
<a name="custom-troubleshooting.fix-unsupported"></a>

在共同的責任模型中，您必須負責修正讓 RDS Custom for Oracle 資料庫執行個體進入 `unsupported-configuration` 狀態的組態問題。如果問題出在 AWS 基礎設施，請使用 主控台或 AWS CLI 進行修正。如果問題與作業系統或資料庫組態相關，請登入主機進行修正。

**注意**  
本節說明如何修正 RDS Custom for Oracle 中不支援的組態。如需 RDS Custom for SQL Server 的相關資訊，請參閱 [修正 RDS Custom for SQL Server 中不支援的組態](custom-troubleshooting-sqlserver.md#custom-troubleshooting-sqlserver.fix-unsupported)。

下表中包含支援周邊所傳送通知和事件，以及如何進行修正的說明。這些通知和支援周邊可能會變更。如需支援周邊的相關背景，請參閱 [RDS Custom 支援周邊](custom-concept.md#custom-troubleshooting.support-perimeter)。如需事件說明，請參閱 [ Amazon RDS 事件類別和事件訊息](USER_Events.Messages.md)。


| 事件 ID | Configuration | RDS 事件訊息 | Action | 
| --- | --- | --- | --- | 
|  `SP-O0000`  |  手動不支援的組態  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：*原因*。  |  若要解決此問題，請建立 支援 案例。  | 

**AWS 資源 （基礎設施）**


| 事件 ID | Configuration | RDS 事件訊息 | Action | 
| --- | --- | --- | --- | 
|  SP-O1001  |  Amazon Elastic Block Store (Amazon EBS) 磁碟區  |  下列 EBS 磁碟區已新增至 EC2 執行個體 *ec2\$1id*：*volume\$1id*。若要解決此問題，請從執行個體分離指定的磁碟區。  |  RDS Custom 會建立兩種類型的 EBS磁碟區，除了從 Amazon Machine Image (AMI) 建立的根磁碟區，還會讓它們與 EC2 執行個體產生關聯： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 您在建立資料庫執行個體時指定的儲存組態會用來設定資料磁碟區。 支援周邊會監控下列項目： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 使用下列 CLI 命令來比較 EBS 磁碟區詳細資訊和 RDS Custom for Oracle 資料庫執行個體詳細資訊的磁碟區類型： <pre>aws rds describe-db-instances \ <br />    --db-instance-identifier db-instance-name | grep StorageType</pre>  | 
|  SP-O1002  |  Amazon Elastic Block Store (Amazon EBS) 磁碟區  |  EBS 磁碟區 *volume\$1id* 已從 EC2 執行個體 [*ec2\$1id*] 分離。您無法從此執行個體分離原始磁碟區。若要解決問題，請將 *volume\$1id* 重新連接至 *ec2\$1id*。  |  RDS Custom 會建立兩種類型的 EBS磁碟區，除了從 Amazon Machine Image (AMI) 建立的根磁碟區，還會讓它們與 EC2 執行個體產生關聯： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 您在建立資料庫執行個體時指定的儲存組態會用來設定資料磁碟區。 支援周邊會監控下列項目： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 使用下列 CLI 命令來比較 EBS 磁碟區詳細資訊和 RDS Custom for Oracle 資料庫執行個體詳細資訊的磁碟區類型： <pre>aws rds describe-db-instances \ <br />    --db-instance-identifier db-instance-name | grep StorageType</pre>  | 
|  SP-O1003  |  Amazon Elastic Block Store (Amazon EBS) 磁碟區  |  連接至 EC2 執行個體 *ec2\$1id* 的原始 EBS 磁碟區 *volume\$1id* 已修改如下：大小 [*X*] 至 [*Y*]、類型 [*N*] 至 [*M*]，或 IOPS [*J*] 至 [*K*]。若要解決問題，請還原修改。  |  RDS Custom 會建立兩種類型的 EBS磁碟區，除了從 Amazon Machine Image (AMI) 建立的根磁碟區，還會讓它們與 EC2 執行個體產生關聯： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 您在建立資料庫執行個體時指定的儲存組態會用來設定資料磁碟區。 支援周邊會監控下列項目： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 使用下列 CLI 命令來比較 EBS 磁碟區詳細資訊和 RDS Custom for Oracle 資料庫執行個體詳細資訊的磁碟區類型： <pre>aws rds describe-db-instances \ <br />    --db-instance-identifier db-instance-name | grep StorageType</pre>  | 
|  SP-O1004  |  Amazon EC2 執行個體狀態  |  自動化復原使 EC2 執行個體 [*ec2\$1id*] 處於受損狀態。若要解決問題，請參閱[故障診斷執行個體復原失敗](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html#TroubleshootingInstanceRecovery)。  |  若要檢查資料庫執行個體的狀態，請使用主控台或執行下列 AWS CLI 命令： <pre>aws rds describe-db-instances \ <br />    --db-instance-identifier db-instance-name |grep DBInstanceStatus </pre>  | 
|  SP-O1005  |  Amazon EC2 執行個體屬性  |  EC2 執行個體 [*ec2\$1id*] 已修改如下：屬性 [*att1*] 從 [*val-old*] 變更為 [*val-new*]，屬性 [*att2*] 從 [*val-old*] 變更為 [*val-new*]。若要解決問題，請還原為原始值。  |  | 
|  SP-O1006  |  Amazon EC2 執行個體狀態  |  EC2 執行個體 [*ec2\$1id*] 已終止或找不到。若要解決問題，請刪除 RDS Custom 資料庫執行個體。  |  支援周邊會監控 EC2 執行個體狀態變更通知。EC2 執行個體必須永遠在執行中。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html)  | 
|  SP-O1007  |  Amazon EC2 執行個體狀態  |  EC2 執行個體 [*ec2\$1id*] 已停止。若要解決問題，請啟動執行個體。  |  支援周邊會監控 EC2 執行個體狀態變更通知。EC2 執行個體必須永遠在執行中。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html)  | 
|  SP-1008  |  Amazon SQS 許可  |  缺少 Amazon SQS 的許可。請檢查 IAM 執行個體設定檔、VPC 端點政策和相依服務連線的許可，然後再試一次。  |   您可以透過確保與主機相關聯的 IAM 設定檔具有下列許可來解決此問題： <pre>"SQS:SendMessage"<br />"SQS:ReceiveMessage"<br />"SQS:DeleteMessage"<br />"SQS:GetQueueUrl"</pre>  | 
|  SP-1009  |  Amazon Simple Queue Service (Amazon SQS)  |  SQS 佇列 [%s] 已刪除且無法復原。若要解決此問題，請重新建立佇列。  |  重新建立 Amazon SQS 佇列。  | 

**作業系統**


| 事件 ID | Configuration | RDS 事件訊息 | Action | 
| --- | --- | --- | --- | 
|  SP-O2001  |  RDS Custom 代理程式狀態  |  RDS Custom 代理程式未在 EC2 執行個體 [*ec2\$1id*] 上執行。確定代理程式在 [*ec2\$1id*] 上執行。  |  在 RDS Custom for Oracle 上，如果 RDS Custom 代理程式停止，則資料庫執行個體就會在支援周邊外面。代理程式每 30 秒將 `IamAlive` 指標發佈到 Amazon CloudWatch。如果超過 30 秒未發佈指標，則會觸發警示。支援周邊也會每 30 分鐘監控主機上的 RDS Custom 代理程式程序狀態。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 當 RDS Custom 代理程式再次執行時，`IamAlive` 指標會發佈到 Amazon CloudWatch，且警示會切換為 `OK` 狀態。此切換會通知支援周邊代理程式正在執行。  | 
|  `SP-O2002`  |  AWS Systems Manager 代理程式 (SSM 代理程式） 狀態  |  EC2 執行個體 [*ec2\$1id*] 上的 Systems Manager 代理程式無法連線。請確定您已正確設定網路、代理程式和 IAM 許可。  |  SSM 代理程式必須一律在執行中。RDS Custom 代理程序必須負責確定 Systems Manager 代理程式在執行中。如果 SSM 代理程式已終止並重新啟動，RDS Custom 代理程式會將指標發佈`SSM_Agent_Restarted_Or_NotFound`至 CloudWatch。RDS Custom 代理程式在`do-not-delete-rds-custom-ssm-agent-restarted-or-notfound-ec2-id`設定為在前三分鐘每次重新啟動時觸發的指標上具有警示。支援周邊也會每 30 分鐘監控主機上的 SSM 代理程式處理程序狀態。 如需詳細資訊，請參閱[針對 SSM Agent 進行故障診斷](https://docs.aws.amazon.com/systems-manager/latest/userguide/troubleshooting-ssm-agent.html)。  | 
|  `SP-O2003`  |  AWS Systems Manager 代理程式 (SSM 代理程式） 狀態  |  EC2 執行個體 [*ec2\$1id*] 上的 Systems Manager 代理程式多次當機。如需詳細資訊，請參閱 SSM 代理程式故障診斷文件。  |  如需詳細資訊，請參閱[針對 SSM Agent 進行故障診斷](https://docs.aws.amazon.com/systems-manager/latest/userguide/troubleshooting-ssm-agent.html)。  | 
|  SP-O2004  |  OS 時區  |  EC2 執行個體 [*ec2\$1id*] 上的時區已變更。若要解決此問題，請將時區還原為先前的 [*previous-time-zone*] 設定。然後使用 RDS 選項群組來變更時區。  |  RDS 自動化偵測到主機上的時區已變更，而未使用選項群組。此主機層級變更可能會導致 RDS 自動化失敗，因此 EC2 執行個體會處於 `unsupported-configuration` 狀態。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 資料庫執行個體會在 30 分鐘內變成可用。為避免未來移出周邊，請透過選項群組修改您的時區。如需詳細資訊，請參閱[Oracle 時區](custom-managing.timezone.md)。  | 
|  SP-O2005  |  `sudo` 組態  |  EC2 執行個體 [*ec2\$1id*] 上的 sudo 組態缺少必要的許可。若要解決此問題，請將最近的變更還原至 sudo 組態。  |  支援周邊會確認某些作業系統使用者可以在主機上執行特定命令。它會監控 `sudo` 組態並將其與支援的狀態進行比較。 若 `sudo` 組態不受支援，RDS Custom 就會嘗試將它們覆寫回到先前支援的狀態。如果嘗試成功，則 RDS Custom 會傳送下列通知： RDS Custom 已成功覆寫您的組態。 如果覆寫不成功，您的資料庫執行個體就會保持在不支援的組態狀態。若要解決此問題，請還原 `sudoers.d/` 檔案內的變更或修正許可。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 在支援周邊判斷支援 `sudo` 組態之後，RDS Custom for Oracle 資料庫執行個體會在 30 分鐘內變成可用。  | 
|  SP-O2006  |  S3 儲存貯體可存取性  |  RDS Custom 自動化無法從 EC2 執行個體 [*ec2\$1id*] 上的 S3 儲存貯體下載檔案。檢查您的聯網組態，並確保執行個體允許往返 S3 的連線。  |  | 
|  SP-2007  |  高可用性軟體解決方案版本  |  執行個體的 HA 解決方案與預期的版本不同。若要解決此問題，請建立 AWS 支援 案例。  |  建立 AWS 支援 案例。  | 

**資料庫**


| 事件 ID | Configuration | RDS 事件訊息 | Action | 
| --- | --- | --- | --- | 
|  SP-O3001  |  資料庫封存延遲目標  |  EC2 執行個體 [*ec2\$1id*] 上的 ARCHIVE\$1LAG\$1TARGET 參數超出建議範圍 *value\$1range*。若要解決問題，請將參數設定為 value\$1range 內的值。  |  支援周邊會監控 `ARCHIVE_LAG_TARGET` 資料庫參數，以確認資料庫執行個體的最新可還原時間是否在合理範圍內。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 資料庫執行個體會在 30 分鐘內變成可用。  | 
|  SP-O3002  |  Oracle Data Guard 角色  |  EC2 執行個體 [*ec2\$1id*] 上的 Oracle Data Guard 不支援資料庫角色 [*role\$1name*]。若要解決問題，請將 DATABASE\$1ROLE 參數設定為 PRIMARY 或 PHYSICAL STANDBY。  |  支援周邊每隔 15 秒監控一次目前的資料庫角色，並在資料庫角色變更時傳送 CloudWatch 通知。Oracle Data Guard `DATABASE_ROLE` 參數必須是 `PRIMARY` 或 `PHYSICAL STANDBY`。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 在支援周邊判斷支援資料庫角色之後，RDS Custom for Oracle 資料庫執行個體會在 15 秒內變成可用。  | 
|  SP-O3003  |  資料庫運作狀態  |  Oracle 資料庫的 SMON 程序處於殭屍狀態。若要解決問題，請手動復原 EC2 執行個體 [*ec2\$1id*] 上的資料庫，開啟資料庫，然後立即備份。如需詳細資訊，請聯絡 支援。  |  支援周邊會監控資料庫執行個體狀態。它也會監控前一小時和前一天發生的重新啟動次數。當執行個體處於仍然存在的狀態時，您會收到通知，但無法與其互動。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) 資料庫執行個體重新啟動之後，RDS Custom 代理程式會偵測到您的資料庫執行個體不再處於沒有回應的狀態。然後，它會通知支援周邊重新評估您的資料庫執行個體狀態。  | 
|  SP-O3004  |  資料庫日誌模式  |  EC2 執行個體 [*ec2\$1id*] 上的資料庫日誌模式已變更為 [*value\$1b*]。若要解決問題，請將日誌模式設定為 [*value\$1a*]。  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) RDS Custom 代理程式會自動重新啟動資料庫執行個體，並且將日誌模式設定為 `ARCHIVELOG`。資料庫執行個體會在 30 分鐘內變成可用。  | 
|  SP-O3005  |  Oracle 首頁路徑  |  EC2 執行個體 [*ec2\$1id*] 上的 Oracle 首頁已變更為 *new\$1path*。若要解決此問題，請將設定還原為 *old\$1path*。  |  | 
|  SP-O3006  |  資料庫唯一名稱  |  EC2 執行個體 [*ec2\$1id*] 上的資料庫唯一名稱已變更為 *new\$1value*。若要解決此問題，請將名稱還原為 *old\$1value*。  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting.html) RDS Custom 代理程式會自動重新啟動資料庫執行個體，並且將日誌模式設定為 `ARCHIVELOG`。資料庫執行個體會在 30 分鐘內變成可用。  | 

## 針對 RDS Custom for Oracle 升級進行故障診斷
<a name="custom-troubleshooting-upgrade"></a>

您的 RDS Custom for Oracle 執行個體升級可能會失敗。接著，您可以找到在升級 RDS Custom DB for Oracle 資料庫執行個體期間可以使用的技巧：
+ 檢查資料庫執行個體 `/tmp` 目錄中的升級輸出日誌檔。日誌名稱取決於您的資料庫引擎版本。例如，您可能會看到包含字串 `catupgrd` 或 `catup` 的日誌。
+ 檢查位於 `/rdsdbdata/log/trace` 目錄的 `alert.log` 檔案。
+ 在 `root` 目錄中執行下列 `grep` 命令以追蹤升級作業系統程序。此命令會顯示寫入日誌檔的位置，並判斷升級程序的狀態。

  ```
  ps -aux | grep upg
  ```

  下面顯示了範例輸出。

  ```
  root     18884  0.0  0.0 235428  8172 ?        S<   17:03   0:00 /usr/bin/sudo -u rdsdb /rdsdbbin/scripts/oracle-control ORCL op_apply_upgrade_sh RDS-UPGRADE/2.upgrade.sh
  rdsdb    18886  0.0  0.0 153968 12164 ?        S<   17:03   0:00 /usr/bin/perl -T -w /rdsdbbin/scripts/oracle-control ORCL op_apply_upgrade_sh RDS-UPGRADE/2.upgrade.sh
  rdsdb    18887  0.0  0.0 113196  3032 ?        S<   17:03   0:00 /bin/sh /rdsdbbin/oracle/rdbms/admin/RDS-UPGRADE/2.upgrade.sh
  rdsdb    18900  0.0  0.0 113196  1812 ?        S<   17:03   0:00 /bin/sh /rdsdbbin/oracle/rdbms/admin/RDS-UPGRADE/2.upgrade.sh
  rdsdb    18901  0.1  0.0 167652 20620 ?        S<   17:03   0:07 /rdsdbbin/oracle/perl/bin/perl catctl.pl -n 4 -d /rdsdbbin/oracle/rdbms/admin -l /tmp catupgrd.sql
  root     29944  0.0  0.0 112724  2316 pts/0    S+   18:43   0:00 grep --color=auto upg
  ```
+ 執行下列 SQL 查詢以驗證元件的目前狀態，以尋找資料庫版本和資料庫執行個體上安裝的選項。

  ```
  SET LINESIZE 180
  COLUMN COMP_ID FORMAT A15
  COLUMN COMP_NAME FORMAT A40 TRUNC
  COLUMN STATUS FORMAT A15 TRUNC
  SELECT COMP_ID, COMP_NAME, VERSION, STATUS FROM DBA_REGISTRY ORDER BY 1;
  ```

  輸出結果與以下內容相似。

  ```
  COMP_NAME                                STATUS               PROCEDURE
  ---------------------------------------- -------------------- --------------------------------------------------
  Oracle Database Catalog Views            VALID                DBMS_REGISTRY_SYS.VALIDATE_CATALOG
  Oracle Database Packages and Types       VALID                DBMS_REGISTRY_SYS.VALIDATE_CATPROC
  Oracle Text                              VALID                VALIDATE_CONTEXT
  Oracle XML Database                      VALID                DBMS_REGXDB.VALIDATEXDB
  
  4 rows selected.
  ```
+ 執行下列 SQL 查詢，以檢查是否有可能會干擾升級程序的無效物件。

  ```
  SET PAGES 1000 LINES 2000
  COL OBJECT FOR A40
  SELECT SUBSTR(OWNER,1,12) OWNER,
         SUBSTR(OBJECT_NAME,1,30) OBJECT,
         SUBSTR(OBJECT_TYPE,1,30) TYPE, STATUS,
         CREATED
  FROM   DBA_OBJECTS 
  WHERE  STATUS <>'VALID' 
  AND    OWNER IN ('SYS','SYSTEM','RDSADMIN','XDB');
  ```

## RDS Custom for Oracle 複本提升的故障診斷
<a name="custom-troubleshooting-promote"></a>

您可以使用主控台、`promote-read-replica` AWS CLI 命令或 `PromoteReadReplica` API 在 RDS Custom for Oracle 中提升受管 Oracle 複本。如果您刪除主要資料庫執行個體，且所有複本都正常運作，則 RDS Custom for Oracle 會自動將受管複本提升為獨立執行個體。如果複本已暫停自動化或位於支援範圍之外，您必須先修正複本，RDS Custom 才能自動提升複本。如需詳細資訊，請參閱[將 RDS Custom for Oracle 複本升級為獨立的資料庫執行個體](custom-rr.promoting.md)。

複本提升工作流程可能會下列情況中停滯：
+ 主要資料庫執行個體處於狀態 `STORAGE_FULL`。
+ 主要資料庫無法封存其所有線上重做日誌。
+ 您的 Oracle 複本中的封存重做日誌檔案與主要資料庫之間存在差距。

**回應停滯的工作流程**

1. 在 Oracle 複本資料庫執行個體上同步重做日誌差距。

1. 強制將僅供讀取複本提升至最新套用的重做日誌。執行下列 SQL\$1Plus 命令：

   ```
   ALTER DATABASE ACTIVATE STANDBY DATABASE;
   SHUTDOWN IMMEDIATE
   STARTUP
   ```

1. 聯絡 支援 並要求他們將資料庫執行個體移至 `available` 狀態。

# Amazon RDS Custom for Oracle 的已知問題
<a name="custom-known-issues"></a>

使用 RDS Custom for Oracle 時，請注意下列資料庫執行個體的問題：
+ 不支援調整根磁碟區或 dbbin 磁碟區的大小。
**警告**  
強烈建議您不要手動調整根磁碟區或 dbbin 磁碟區的大小。建議您將所有組態存放在資料磁碟區中，這在修補後仍會存在，且您只能使用 RDS 擴展儲存 API 來調整磁碟區的大小。
+ 當資料庫執行個體位於較舊的 AMI (例如，使用 Oracle Linux 7 的 AMI) 上時，某些 RDS API 可能會遭到封鎖。若要解決此問題，請使用作業系統修補將您的資料庫執行個體修補至最新的 AMI。如需詳細資訊，請參閱[CEV 升級選項](custom-upgrading.md#custom-upgrading.overview.cev-options)。
+ 執行 RDS 操作之前，請確定您的 AWS 帳戶 有足夠的配額可用於運算和儲存。
+ 如果資料庫處於建立狀態，且您主動登入資料庫或 Amazon EC2 主機並執行命令，則資料庫建立可能無法完成。
+ 由於僅供讀取複本問題，目前不支援控制檔案多工。建立僅供讀取複本之前，請務必在來源資料庫的 `CONTROL_FILES` 初始化參數中僅指定一個檔案名稱。
+ 您無法將資料庫模式從 `PHYSICAL STANDBY` (掛載或唯讀) 變更為 `SNAPSHOT STANDBY` (轉換為讀取/寫入)。
+ 如果 AWS 帳戶 是具有服務控制政策 (SCP) AWS 的組織的一部分，且 SCP 包含條件金鑰，則 RDS Custom for Oracle 資料庫執行個體可能無法建立，並出現下列錯誤：

  ```
  You can't create the DB instance because of incompatible resources. 
  The IAM instance profile role [AWSRDSCustomInstanceRole1-us-east-1] is missing the following permissions: 
  EFFECT [Allow] on ACTION(S) [ssm:DescribeAssociation, ssm:DescribeDocument, ssm:GetConnectionStatus, 
    ssm:GetDeployablePatchSnapshotForInstance, ssmmessages:OpenControlChannel, ssm:GetParameters, 
    ssm:ListInstanceAssociations, ssm:PutConfigurePackageResult, ssmmessages:CreateControlChannel, 
    ssm:GetParameter, ssm:UpdateAssociationStatus, ssm:GetManifest, ssmmessages:CreateDataChannel, 
    ssm:PutInventory, ssm:UpdateInstanceInformation, ssm:DescribeInstanceInformation, 
    ssmmessages:OpenDataChannel, ssm:GetDocument, ssm:ListAssociations, ssm:PutComplianceItems, 
    ssm:UpdateInstanceAssociationStatus] for RESOURCE(S) [], EFFECT [Allow] on ACTION(S) [ec2messages:DeleteMessage, 
    ec2messages:FailMessage, ec2messages:GetEndpoint, ec2messages:AcknowledgeMessage, ec2messages:GetMessages, 
    ec2messages:SendReply] for RESOURCE(S) [], EFFECT [Allow] on ACTION(S) [logs:CreateLogStream, 
    logs:DescribeLogStreams, logs:PutRetentionPolicy, logs:PutLogEvents]
  ```

  若要解決此問題，請使用 建立票證 支援。

## 資料庫使用者帳戶的已知問題
<a name="custom-known-issues-accounts"></a>

請注意以下問題：
+ 請勿移除以字串 `RDS` (例如 `RDSADMIN` 和 `RDS_DATAGUARD`) 開頭的資料庫使用者帳戶。RDS Custom for Oracle 會使用 `RDS` 帳戶進行自動化。如果您移除此使用者帳戶，RDS Custom 會將執行個體移至不支援的組態狀態。
+ 您無法使用 `ModifyDBInstance` API 來變更 RDS Custom for Oracle 資料庫執行個體的主使用者名稱。
+ RDS Custom for Oracle 會在所有資料庫執行個體上輪換使用者帳戶憑證。如需詳細資訊，請參閱[輪換 RDS Custom for Oracle 憑證以符合合規計畫](custom-security.cred-rotation.md)。如果您使用內部部署主要/待命組態，則憑證輪換可能會影響下列資源：
  + 手動建立待命 RDS Custom for Oracle 執行個體

    若要解決此問題，請捨棄手動待命資料庫，然後使用 API 呼叫建立 Oracle 僅供讀取複本。手動管理手動待命資料庫的秘密，使其符合來源資料庫執行個體。
  + 手動建立的跨區域僅供讀取複本

    若要解決此問題，請手動保留秘密，使其符合主要資料庫執行個體。

## 參數和組態檔案的已知問題
<a name="custom-known-issues-files"></a>
+ 您必須在擴展運算、作業系統升級和 RDS Custom 取代根磁碟區的其他作業之後設定 `crontab` 檔案。強烈建議您保留 `crontab` 的備份。
+ 設定 `listener.ora` 檔案時，請注意下列準則：
  + 請確定檔案中的每個項目都位於同一行。此方法可避免執行個體建立期間的縮排問題。
  + 確定 `GLOBAL_DBNAME` 等於 `SID_NAME` 的值。
  + 確定 `LISTENER` 的值遵循命名慣例 `L_dbname_001`。
  + 請確定 `listener.ora` 檔案維持與資料庫名稱的連線。RDS Custom 使用此連線來驗證資料庫啟動。如果您不正確地修改此檔案，則擴展運算或修補等作業可能會失敗。

    以下範例顯示已正確設定的 `listener.ora`：

    ```
    ADR_BASE_L_ORCL_001=/rdsdbdata/log/
    USE_SID_AS_SERVICE_L_ORCL_001=ON
    SID_LIST_L_ORCL_001=(SID_LIST = (SID_DESC = (SID_NAME = ORCL)(GLOBAL_DBNAME = ORCL) (ORACLE_HOME = /rdsdbbin/oracle.19.custom.r1.EE.1)))
    SUBSCRIBE_FOR_NODE_DOWN_EVENT_L_ORCL_001=OFF
    L_ORCL_001=(DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(PORT = XXXX)(HOST = x.x.x.x))) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(PORT = XXXX)(HOST = 127.0.0.1))))
    ```
+ 伺服器參數檔案或初始化參數檔案中不支援註解。
+ 您必須在伺服器參數檔案 (`/rdsdbdata/config/oracle_pfile`) 中宣告下列初始化參數：
  + `MEMORY_MAX_TARGET`
  + `MEMORY_TARGET`
  + `PGA_AGGREGATE_TARGET`
  + `PROCESSES`
  + `SGA_TARGET`
  + `USE_LARGE_PAGES`

  如果未在 `/rdsdbdata/config/oracle_pfile` 中宣告上述參數，則僅供讀取複本建立和擴展運算可能會失敗。
+ 您無法刪除組態檔案 (例如伺服器參數檔案、稽核檔案、`listener.ora`、`tnsnames.ora` 或 `sqlnet.ora`) 的符號連結。您也無法修改這些檔案的目錄結構。RDS Custom 自動化預期這些檔案存在於特定的目錄結構中。

  若要從初始化參數檔案建立伺服器參數檔案，請使用下列語法。

  ```
  CREATE SPFILE='/rdsdbdata/admin/$ORACLE_SID/pfile/spfile$ORACLE_SID.ora' 
      FROM PFILE='/rdsdbdata/config/oracle_pfile';
  ```

# 使用 RDS Custom for SQL Server
<a name="working-with-custom-sqlserver"></a>

在下列內容，您可以找到建立、管理和維護 RDS Custom for SQL Server 資料庫執行個體的指示。

**Topics**
+ [RDS Custom for SQL Server 工作流程](custom-sqlserver.workflow.md)
+ [Amazon RDS Custom for SQL Server 的需求和限制](custom-reqs-limits-MS.md)
+ [設定您的 Amazon RDS Custom for SQL Server 的環境](custom-setup-sqlserver.md)
+ [透過 RDS Custom for SQL Server 使用自有媒體](custom-sqlserver.byom.md)
+ [使用 RDS Custom for SQL Server 的自訂引擎版本](custom-cev-sqlserver.md)
+ [建立並連線至 Amazon RDS Custom for SQL Server 的資料庫執行個體](custom-creating-sqlserver.md)
+ [管理 Amazon RDS Custom for SQL Server 資料庫執行個體](custom-managing-sqlserver.md)
+ [使用 Microsoft Active Directory 搭配 RDS Custom for SQL Server](custom-sqlserver-WinAuth.md)
+ [管理 RDS Custom for SQL Server 的多可用區部署](custom-sqlserver-multiaz.md)
+ [備份與還原 Amazon RDS Custom for SQL Server 資料庫執行個體](custom-backup-sqlserver.md)
+ [複製 Amazon RDS Custom for SQL Server 資料庫快照](custom-copying-snapshot-sqlserver.md)
+ [將內部部署資料庫遷移到 Amazon RDS Custom for SQL Server](custom-migrating.md)
+ [RDS Custom for SQL Server 作業系統更新](custom-os-upgrade.md)
+ [升級 Amazon RDS Custom for SQL Server 資料庫執行個體](custom-upgrading-sqlserver.md)
+ [針對 Amazon RDS Custom for SQL Server 的資料庫問題進行故障診斷](custom-troubleshooting-sqlserver.md)

# RDS Custom for SQL Server 工作流程
<a name="custom-sqlserver.workflow"></a>

下圖顯示 RDS Custom for SQL Server 的典型工作流程。

![\[RDS Custom for SQL Server 架構\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/custom_sqlserver_architecture_v2.png)


步驟如下：

1. 從 RDS Custom 提供的引擎版本建立 RDS Custom for SQL Server 資料庫執行個體。

   如需詳細資訊，請參閱[建立 RDS Custom for SQL Server 資料庫執行個體](custom-creating-sqlserver.md#custom-creating-sqlserver.create)。

1. 將應用程式連線到 RDS Custom 資料庫執行個體端點。

   如需詳細資訊，請參閱[使用 AWS Systems Manager 連線到您的 RDS Custom 資料庫執行個體](custom-creating-sqlserver.ssm.md)及[使用 RDS 連線到您的 RDS Custom 資料庫執行個體](custom-creating-sqlserver.rdp.md)。

1. (選用) 存取主機以自訂您的軟體。

1. 監控 RDS Custom 自動化產生的通知和訊息。

## 建立 RDS Custom 資料庫執行個體
<a name="custom-sqlserver.workflow.instance"></a>

您可以使用 `create-db-instance` 命令建立 RDS Custom 資料庫執行個體。該程序類似於建立 Amazon RDS 執行個體的程序。但是，某些參數不同。如需詳細資訊，請參閱[建立並連線至 Amazon RDS Custom for SQL Server 的資料庫執行個體](custom-creating-sqlserver.md)。

## 資料庫連線
<a name="custom-sqlserver.workflow.db-connection"></a>

如同 Amazon RDS 資料庫執行個體，您的 RDS Custom for SQL Server 資料庫執行個體位於 VPC 中。您的應用程式會使用用戶端 (例如 SQL Server Management Studio (SSMS)) 連線至 RDS Custom 執行個體，就像在 RDS for SQL Server 一樣。

## RDS Custom 自訂
<a name="custom-sqlserver.workflow.customization"></a>

您可以存取 RDS Custom 主機以安裝或自訂軟體。若要避免變更與 RDS Custom 自動化之間發生衝突，您可以在指定期間暫停自動化。在此期間，RDS Custom 不會執行監控或執行個體復原。在期間結束時，RDS Custom 會繼續全自動化。如需詳細資訊，請參閱[暫停和繼續 RDS Custom 自動化](custom-managing-sqlserver.pausing.md)。

# Amazon RDS Custom for SQL Server 的需求和限制
<a name="custom-reqs-limits-MS"></a>

您可在下方找到 Amazon RDS Custom for SQL Server 需求和限制的摘要，以進行快速參考。需求和限制也會出現在相關章節中。

**Topics**
+ [區域和版本可用性](#custom-reqs-limits-MS.RegionVersionAvailability)
+ [RDS Custom for SQL Server 的一般需求](#custom-reqs-limits.reqsMS)
+ [RDS Custom for SQL Server 的資料庫執行個體類別支援](custom-reqs-limits.instancesMS.md)
+ [RDS Custom for SQL Server 的限制](#custom-reqs-limits.limitsMS)
+ [設定 RDS Custom for SQL Server 資料庫執行個體的字元集和定序](custom-reqs-limits-MS.collation.md)
+ [RDS Custom for SQL Server 資料庫執行個體的本機時區](custom-reqs-limits-MS.TimeZone.md)
+ [使用服務主金鑰搭配 RDS Custom for SQL Server](custom-sqlserver-features.smk.md)
+ [使用 RDS Custom for SQL Server 變更資料擷取 (CDC) 支援](custom-sqlserver-features.cdc.md)

## 區域和版本可用性
<a name="custom-reqs-limits-MS.RegionVersionAvailability"></a>

功能可用性和支援會因每個資料庫引擎的特定版本以及 AWS 區域而有所不同。如需 Amazon RDS 搭配 Amazon RDS Custom for SQL Server 版本和區域可用性的詳細資訊，請參閱 [支援的 RDS Custom for SQL Server 區域和資料庫引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.md#Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.sq)。

## RDS Custom for SQL Server 的一般需求
<a name="custom-reqs-limits.reqsMS"></a>

請確保遵循 Amazon RDS Custom for SQL Server 的以下需求：
+ 使用 [RDS Custom for SQL Server 的資料庫執行個體類別支援](custom-reqs-limits.instancesMS.md) 中顯示的執行個體類別。唯一支援的儲存體類型為 gp2、gp3、io1 和 io2 Block Express 類型的固態硬碟 (SSD)。io1、gp2 和 gp3 的儲存體上限為 16 TiB，而 io2 支援 64 TiB。
+ 請確定您擁有對稱加密 AWS KMS 金鑰來建立 RDS Custom 資料庫執行個體。如需詳細資訊，請參閱[請確定您擁有對稱加密 AWS KMS 金鑰](custom-setup-sqlserver.md#custom-setup-sqlserver.cmk)。
+ 請務必建立 AWS Identity and Access Management (IAM) 角色和執行個體描述檔。如需詳細資訊，請參閱[手動建立 IAM 角色和執行個體設定檔](custom-setup-sqlserver.md#custom-setup-sqlserver.iam)及[使用 自動建立執行個體描述檔 AWS 管理主控台](custom-setup-sqlserver.md#custom-setup-sqlserver.instanceProfileCreation)。
+ 請務必提供 RDS Custom 可用來存取其他 的聯網組態 AWS 服務。如需特定需求，請參閱 [步驟 2：設定網路、執行個體設定檔及加密](custom-setup-sqlserver.md#custom-setup-sqlserver.iam-vpc)。
+ RDS Custom 和 Amazon RDS 資料庫執行個體的合併數量不能超過您的配額限制。例如，如果您的配額為 40 個資料庫執行個體，則可以擁有 20 個 RDS Custom for SQL Server 資料庫執行個體和 20 個 Amazon RDS 資料庫執行個體。
+ RDS Custom 會自動建立名稱開頭為 的 AWS CloudTrail 線索`do-not-delete-rds-custom-`。RDS Custom 支援依賴來自 CloudTrail 之事件的周邊，來決定您的動作是否會影響 RDS Custom 自動化。RDS Custom 在您建立第一個資料庫執行個體時建立追蹤。若要使用現有的 CloudTrail，請聯絡 AWS Support。如需詳細資訊，請參閱[AWS CloudTrail](custom-concept.md#custom-concept.components.CloudTrail)。

# RDS Custom for SQL Server 的資料庫執行個體類別支援
<a name="custom-reqs-limits.instancesMS"></a>

使用 [ describe-orderable-db-instance-options](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/describe-orderable-db-instance-options.html) 命令，檢查您的區域是否支援資料庫執行個體類別。

RDS Custom for SQL Server 支援下表中顯示的資料庫執行個體類別：


| SQL Server 版本 | RDS Custom 支援 | 
| --- | --- | 
|  企業版本  |  db.r5.xlarge–db.r5.24xlarge db.r5b.xlarge–db.r5b.24xlarge db.m5.xlarge–db.m5.24xlarge db.r6i.xlarge–db.r6i.32xlarge db.m6i.xlarge–db.m6i.32xlarge db.x2iedn.xlarge–db.x2iedn.32xlarge  | 
|  標準版本  |  db.r5.large–db.r5.24xlarge db.r5b.large–db.r5b.8xlarge db.m5.large–db.m5.24xlarge db.r6i.large–db.r6i.8xlarge db.m6i.large–db.m6i.8xlarge db.x2iedn.xlarge–db.x2iedn.8xlarge  | 
|  開發人員版本  |  db.r5.xlarge–db.r5.24xlarge db.r5b.xlarge–db.r5b.24xlarge db.m5.xlarge–db.m5.24xlarge db.r6i.xlarge–db.r6i.32xlarge db.m6i.xlarge–db.m6i.32xlarge db.x2iedn.xlarge–db.x2iedn.32xlarge  | 
|  Web 版本  |  db.r5.large–db.r5.4xlarge db.m5.large–db.m5.4xlarge db.r6i.large–db.r6i.4xlarge db.m6i.large–db.m6i.4xlarge db.r5b.large–db.r5b.4xlarge  | 

下列建議適用於 db.x2iedn 類別類型：
+ 在建立時，本機儲存體是原始且未配置的裝置。在搭配此執行個體類別使用資料庫執行個體之前，您必須掛載並格式化本機儲存體。之後，請在其 `tempdb` 上設定以確保最佳效能。如需詳細資訊，請參閱[使用本機執行個體儲存體最佳化 Amazon RDS Custom for SQL Server 中的 tempdb 效能](https://aws.amazon.com/blogs/database/optimize-tempdb-performance-in-amazon-rds-custom-for-sql-server-using-local-instance-storage/)。
+ 當您執行擴展運算、執行個體替換、快照還原或時間點復原 (PITR) 等資料庫執行個體作業時，本機儲存體會還原至其原始和未配置狀態。在這些情況下，您必須重新掛載、重新格式化及重新設定磁碟機 `tempdb` 以還原功能。
+ 對於多可用區域執行個體，建議您在待命資料庫執行個體上執行組態。如此一來，如果發生容錯移轉，系統會繼續運作而不會發生問題，因為組態已在待命執行個體上。

## RDS Custom for SQL Server 的限制
<a name="custom-reqs-limits.limitsMS"></a>

下列限制適用於 RDS Custom for SQL Server：
+ 您無法在 Amazon RDS for RDS Custom for SQL Server 資料庫執行個體中建立僅供讀取複本。不過，您可以搭配多可用區部署自動設定高可用性。如需詳細資訊，請參閱[管理 RDS Custom for SQL Server 的多可用區部署](custom-sqlserver-multiaz.md)。
+ 您無法修改適用於 SQL Server 資料庫執行個體的現有 RDS Custom 資料庫執行個體識別符。
+ 對於未使用自訂引擎版本 (CEV) 建立的 RDS Custom for SQL Server 資料庫執行個體，不保證會保存對 Microsoft Windows 作業系統所做的變更。例如，當您起始快照或時間點還原操作時，您將遺失這些變更。如果 RDS Custom for SQL Server 資料庫執行個體是使用 CEV 建立的，則系統會保存這些變更。
+ 並非所有選項都支援。例如，當您建立 RDS Custom for SQL Server 資料庫執行個體時，您無法執行下列操作：
  + 變更資料庫執行個體類別中每個核心的 CPU 核心數量和每個核心的執行緒數量。
  + 開啟儲存體自動擴展。
  + 指定您自己的資料庫參數群組、選項群組或字元集。
  + 開啟績效詳情或資料庫詳情。
  + 開啟自動次要版本升級。
+ 資料庫執行個體儲存體上限為 64 TiB。
+ 您無法將 RDS Proxy 與 RDS Custom for SQL Server 搭配使用。
+ 您無法使用適用於 SQL Server 資料庫執行個體的 RDS Custom 的 `describe-reserved-db-instances` API。

# 設定 RDS Custom for SQL Server 資料庫執行個體的字元集和定序
<a name="custom-reqs-limits-MS.collation"></a>

## 概觀
<a name="custom-reqs-limits-MS.collation.overview"></a>

使用 RDS Custom for SQL Server 資料庫執行個體，您可以設定字元集和定序設定，以決定資料的存放和排序方式。字元集會定義允許的字元，而定序會指定用於排序和比較資料的規則。為使用多語言資料或具有特定排序需求的應用程式設定適當的字元集和定序並不重要。例如，您可能需要處理重音字元並定義特定語言的排序規則，或維護不同區域的資料完整性。下列各節提供有關 RDS Custom for SQL Server 資料庫執行個體的字元集和定序支援的資訊。

RDS Custom for SQL Server 可針對 SQL\$1Latin、Japanese、German 和 Arabic 地區設定，支援使用傳統和 UTF-8 編碼的各種不同伺服器定序。預設的伺服器定序為 `SQL_Latin1_General_CP1_CI_AS`，不過，您可以選取其他支援的定序來使用。您可以選取與 RDS for SQL Server 使用相同程序的定序。如需詳細資訊，請參閱[管理 Amazon RDS for Microsoft SQL Server 的定序和字元集](Appendix.SQLServer.CommonDBATasks.Collation.md)。

## 考量事項
<a name="custom-reqs-limits-MS.collation.considerations"></a>

在 RDS Custom for SQL Server 上使用伺服器定序時，須遵循下列需求和限制：
+ 您可以在建立 RDS Custom for SQL Server 資料庫執行個體時設定伺服器定序。資料庫執行個體建立之後，您就無法修改伺服器層級定序。
+ 從資料庫快照還原時或在時間點復原 (PITR) 期間，您無法修改伺服器層級定序。
+ 當您從 RDS Custom for SQL Server CEV 建立資料庫執行個體時，該資料庫執行個體不會從 CEV 繼承伺服器定序，而是會使用預設伺服器定序 `SQL_Latin1_General_CP1_CI_AS`。如果您已在 RDS Custom for SQL Server CEV 上設定非預設伺服器定序，並且想要在新的資料庫執行個體上使用相同的伺服器定序，則從 CEV 建立資料庫執行個體時，請務必選取相同的定序。
**注意**  
如果您在建立資料庫執行個體時選取的定序與 CEV 的定序不同，則會在新的 RDS Custom for SQL Server 資料庫執行個體上重建 Microsoft SQL Server 系統資料庫，以使用更新的定序。重建程序只會在新的 RDS Custom for SQL Server 資料庫執行個體上執行，而且不會對 CEV 本身造成任何影響。一旦重建系統資料庫，您先前對 CEV 上的系統資料庫所做的任何修改都不會保留在新的 RDS Custom for SQL Server 資料庫執行個體上。一些修改的範例包括：`master` 資料庫中的使用者定義物件、`msdb` 資料庫中的已排程工作，或是對 CEV 上 `model` 資料庫中的預設資料庫設定所做的變更。您可以在新的 RDS Custom for SQL Server 資料庫執行個體建立之後，手動重新建立修改。
+ 當您從 RDS Custom for SQL Server 自訂引擎版本 (CEV) 建立資料庫執行個體，並選取與 CEV 不同的定序時，請確定用於建立 CEV 的黃金映像 (AMI) 符合下列需求，如此才能在新的資料庫執行個體上重建 Microsoft SQL Server 系統資料庫：
  + 針對 SQL Server 2022，請確定`setup.exe`檔案位於下列路徑中： `C:\Program Files\Microsoft SQL Server\160\Setup Bootstrap\SQL2022\setup.exe`
  + 若是 SQL Server 2019，請確定 `setup.exe` 檔案位於下列路徑中：`C:\Program Files\Microsoft SQL Server\150\Setup Bootstrap\SQL2019\setup.exe`
  + `master`、`model` 和 `msdb` 資料庫的資料和日誌範本副本必須存在各自的預設位置。如需詳細資訊，請參閱 Microsoft 公開文件中的[重建系統資料庫](https://learn.microsoft.com/en-us/sql/relational-databases/databases/rebuild-system-databases?view=sql-server-ver16#Restrictions         )。
  + 請確定您的 SQL Server Database Engine 使用 `NT Service\MSSQLSERVER ` 或 `NT AUTHORITY\NETWORK SERVICE` 作為服務帳戶。為資料庫執行個體設定非預設伺服器定序時，任何其他帳戶都不會擁有 `C:\` 磁碟機上的必要許可。
+ 如果為新資料庫執行個體選取的伺服器定序與 CEV 上的設定相同，則新的 RDS Custom for SQL Server 資料庫執行個體上的 Microsoft SQL Server 系統資料庫將不會進行重建程序。您先前對 CEV 上系統資料庫所做的任何修改，都會自動保留在新的 RDS Custom for SQL Server 資料庫執行個體中。

## 支援的定序
<a name="custom-reqs-limits-MS.collation.supportedCollations"></a>

您可以將定序設為下表中列出的其中一個值。


| 定序 | Description | 
| --- |--- |
| 阿拉伯文\$1100\$1BIN | Arabic-100，二進位排序 | 
| 阿拉伯文\$1100\$1BIN2 | Arabic-100，二進位程式碼點比較排序 | 
| 阿拉伯文\$1100\$1CI\$1AI | Arabic-100、不區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| 阿拉伯文\$1100\$1CI\$1AI\$1KS | Arabic-100、不區分大小寫、不區分重音、區分假名、不區分寬度 | 
| 阿拉伯文\$1100\$1CI\$1AI\$1KS\$1SC | Arabic-100、不區分大小寫、不區分重音、區分假名、不區分寬度、補充字元 | 
| 阿拉伯文\$1100\$1CI\$1AI\$1KS\$1SC\$1UTF8 | Arabic-100、不區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、UTF8 | 
| 阿拉伯文\$1100\$1CI\$1AI\$1KS\$1WS | Arabic-100、不區分大小寫、不區分重音、區分假名、區分寬度 | 
| 阿拉伯文\$1100\$1CI\$1AI\$1KS\$1WS\$1SC | Arabic-100、不區分大小寫、不區分重音、區分假名、區分寬度、補充字元 | 
| 阿拉伯文\$1100\$1CI\$1AI\$1KS\$1WS\$1SC\$1UTF8 | Arabic-100、不區分大小寫、不區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| 阿拉伯文\$1100\$1CI\$1AI\$1SC | Arabic-100、不區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元 | 
| 阿拉伯文\$1100\$1CI\$1AI\$1SC\$1UTF8 | Arabic-100、不區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、UTF8 | 
| 阿拉伯文\$1100\$1CI\$1AI\$1WS | Arabic-100、不區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| 阿拉伯文\$1100\$1CI\$1AI\$1WS\$1SC | Arabic-100、不區分大小寫、不區分重音、不區分假名、區分寬度、補充字元 | 
| 阿拉伯文\$1100\$1CI\$1AI\$1WS\$1SC\$1UTF8 | Arabic-100、不區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、UTF8 | 
| 阿拉伯文\$1100\$1CI\$1AS | Arabic-100、不區分大小寫、區分重音、不區分假名、不區分寬度 | 
| 阿拉伯文\$1100\$1CI\$1AS\$1KS | Arabic-100、不區分大小寫、區分重音、區分假名、不區分寬度 | 
| 阿拉伯文\$1100\$1CI\$1AS\$1KS\$1SC | Arabic-100、不區分大小寫、區分重音、區分假名、不區分寬度、補充字元 | 
| 阿拉伯文\$1100\$1CI\$1AS\$1KS\$1SC\$1UTF8 | Arabic-100、不區分大小寫、區分重音、區分假名、不區分寬度、補充字元、UTF8 | 
| 阿拉伯文\$1100\$1CI\$1AS\$1KS\$1WS | Arabic-100、不區分大小寫、區分重音、區分假名、區分寬度 | 
| 阿拉伯文\$1100\$1CI\$1AS\$1KS\$1WS\$1SC | Arabic-100、不區分大小寫、區分重音、區分假名、區分寬度、補充字元 | 
| 阿拉伯文\$1100\$1CI\$1AS\$1KS\$1WS\$1SC\$1UTF8 | Arabic-100、不區分大小寫、區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| 阿拉伯文\$1100\$1CI\$1AS\$1SC | Arabic-100、不區分大小寫、區分重音、不區分假名、不區分寬度、補充字元 | 
| 阿拉伯文\$1100\$1CI\$1AS\$1SC\$1UTF8 | Arabic-100、不區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、UTF8 | 
| 阿拉伯文\$1100\$1CI\$1AS\$1WS | Arabic-100、不區分大小寫、區分重音、不區分假名、區分寬度 | 
| 阿拉伯文\$1100\$1CI\$1AS\$1WS\$1SC | Arabic-100、不區分大小寫、區分重音、不區分假名、區分寬度、補充字元 | 
| 阿拉伯文\$1100\$1CI\$1AS\$1WS\$1SC\$1UTF8 | Arabic-100、不區分大小寫、區分重音、不區分假名、區分寬度、補充字元、UTF8 | 
| 阿拉伯文\$1100\$1CS\$1AI | Arabic-100、區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| 阿拉伯文\$1100\$1CS\$1AI\$1KS | Arabic-100、區分大小寫、不區分重音、區分假名、不區分寬度 | 
| 阿拉伯文\$1100\$1CS\$1AI\$1KS\$1SC | Arabic-100、區分大小寫、不區分重音、區分假名、不區分寬度、補充字元 | 
| 阿拉伯文\$1100\$1CS\$1AI\$1KS\$1SC\$1UTF8 | Arabic-100、區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、UTF8 | 
| 阿拉伯文\$1100\$1CS\$1AI\$1KS\$1WS | Arabic-100、區分大小寫、不區分重音、區分假名、區分寬度 | 
| 阿拉伯文\$1100\$1CS\$1AI\$1KS\$1WS\$1SC | Arabic-100、區分大小寫、不區分重音、區分假名、區分寬度、補充字元 | 
| 阿拉伯文\$1100\$1CS\$1AI\$1KS\$1WS\$1SC\$1UTF8 | Arabic-100、區分大小寫、不區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| 阿拉伯文\$1100\$1CS\$1AI\$1SC | Arabic-100、區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元 | 
| 阿拉伯文\$1100\$1CS\$1AI\$1SC\$1UTF8 | Arabic-100、區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、UTF8 | 
| 阿拉伯文\$1100\$1CS\$1AI\$1WS | Arabic-100、區分大小寫、不區分重音、不區分假名、區分寬度 | 
| 阿拉伯文\$1100\$1CS\$1AI\$1WS\$1SC | Arabic-100、區分大小寫、不區分重音、不區分 kanatype、區分寬度、補充字元 | 
| 阿拉伯文\$1100\$1CS\$1AI\$1WS\$1SC\$1UTF8 | Arabic-100、區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、UTF8 | 
| 阿拉伯文\$1100\$1CS\$1AS | Arabic-100、區分大小寫、區分重音、不區分假名、不區分寬度 | 
| 阿拉伯文\$1100\$1CS\$1AS\$1KS | Arabic-100、區分大小寫、區分重音、區分假名、不區分寬度 | 
| 阿拉伯文\$1100\$1CS\$1AS\$1KS\$1SC | Arabic-100、區分大小寫、區分重音、區分假名、不區分寬度、補充字元 | 
| 阿拉伯文\$1100\$1CS\$1AS\$1KS\$1SC\$1UTF8 | Arabic-100、區分大小寫、區分重音、區分假名、不區分寬度、補充字元、UTF8 | 
| 阿拉伯文\$1100\$1CS\$1AS\$1KS\$1WS | Arabic-100、區分大小寫、區分重音、區分假名、區分寬度 | 
| 阿拉伯文\$1100\$1CS\$1AS\$1KS\$1WS\$1SC | Arabic-100、區分大小寫、區分重音、區分假名、區分寬度、補充字元 | 
| 阿拉伯文\$1100\$1CS\$1AS\$1KS\$1WS\$1SC\$1UTF8 | Arabic-100、區分大小寫、區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| 阿拉伯文\$1100\$1CS\$1AS\$1SC | Arabic-100、區分大小寫、區分重音、不區分假名、不區分寬度、補充字元 | 
| 阿拉伯文\$1100\$1CS\$1AS\$1SC\$1UTF8 | Arabic-100、區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、UTF8 | 
| 阿拉伯文\$1100\$1CS\$1AS\$1WS | Arabic-100、區分大小寫、區分重音、區分假名、區分寬度 | 
| 阿拉伯文\$1100\$1CS\$1AS\$1WS\$1SC | Arabic-100、區分大小寫、區分重音、區分假名、區分寬度、補充字元 | 
| 阿拉伯文\$1100\$1CS\$1AS\$1WS\$1SC\$1UTF8 | Arabic-100、區分大小寫、區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| 阿拉伯文\$1BIN | 阿拉伯文、二進位排序 | 
| 阿拉伯文\$1BIN2 | 阿拉伯文、二進位程式碼點比較排序 | 
| Arabic\$1CI\$1AI | 阿拉伯文、不區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| 阿拉伯文\$1CI\$1AI\$1KS | 阿拉伯文、不區分大小寫、不區分重音、區分假名、不區分寬度 | 
| Arabic\$1CI\$1AI\$1KS\$1WS | 阿拉伯文、不區分大小寫、不區分重音、區分假名、區分寬度 | 
| 阿拉伯文\$1CI\$1AI\$1WS | 阿拉伯文、不區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| Arabic\$1CI\$1AS | 阿拉伯文、不區分大小寫、區分重音、不區分假名、不區分寬度 | 
| 阿拉伯文\$1CI\$1AS\$1KS | 阿拉伯文、不區分大小寫、區分重音、區分假名、不區分寬度 | 
| 阿拉伯文\$1CI\$1AS\$1KS\$1WS | 阿拉伯文、不區分大小寫、區分重音、區分假名、區分寬度 | 
| 阿拉伯文\$1CI\$1AS\$1WS | 阿拉伯文、不區分大小寫、區分重音、不區分假名、區分寬度 | 
| 阿拉伯文\$1CS\$1AI | 阿拉伯文、區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| 阿拉伯文\$1CS\$1AI\$1KS | 阿拉伯文、區分大小寫、不區分重音、區分假名、不區分寬度 | 
| 阿拉伯文\$1CS\$1AI\$1KS\$1WS | 阿拉伯文、區分大小寫、不區分重音、區分假名、區分寬度 | 
| 阿拉伯文\$1CS\$1AI\$1WS | 阿拉伯文、區分大小寫、不區分重音、不區分假名、區分寬度 | 
| Arabic\$1CS\$1AS | 阿拉伯文、區分大小寫、區分重音、不區分假名、不區分寬度 | 
| 阿拉伯文\$1CS\$1AS\$1KS | 阿拉伯文、區分大小寫、區分重音、區分假名、不區分寬度 | 
| 阿拉伯文\$1CS\$1AS\$1KS\$1WS | 阿拉伯文、區分大小寫、區分重音、區分假名、區分寬度 | 
| 阿拉伯文\$1CS\$1AS\$1WS | 阿拉伯文、區分大小寫、區分重音、不區分假名、區分寬度 | 
| Chinese\$1PRC\$1BIN2 | Chinese-PRC，二進位程式碼點比較排序 | 
| Chinese\$1PRC\$1CI\$1AS | Chinese-PRC、不區分大小寫、區分重音、不區分假名、不區分寬度 | 
| Chinese\$1Taiwan\$1Stroke\$1CI\$1AS | Chinese-Taiwan-Stroke、不區分大小寫、區分重音、不區分假名、不區分寬度 | 
| Danish\$1Norwegian\$1CI\$1AS | Danish-Norwegian、不區分大小寫、區分重音、不區分假名、不區分寬度 | 
| Finnish\$1Swedish\$1CI\$1AS | 芬蘭文-瑞典文、不區分大小寫、區分重音、不區分假名、不區分寬度 | 
| French\$1CI\$1AS | 法文、不區分大小寫、區分重音、不區分假名、不區分寬度 | 
| German\$1PhoneBook\$1100\$1BIN | German-PhoneBook-100，二進位排序 | 
| German\$1PhoneBook\$1100\$1BIN2 | German-PhoneBook-100，二進位程式碼點比較排序 | 
| German\$1PhoneBook\$1100\$1CI\$1AI | German-PhoneBook-100、不區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1KS | German-PhoneBook-100、不區分大小寫、不區分重音、區分假名、不區分寬度 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1KS\$1SC | German-PhoneBook-100、不區分大小寫、不區分重音、區分假名、不區分寬度、補充字元 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1KS\$1SC\$1UTF8 | German-PhoneBook-100、不區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、UTF8 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1KS\$1WS | German-PhoneBook-100、不區分大小寫、不區分重音、區分假名、區分寬度 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1KS\$1WS\$1SC | German-PhoneBook-100、不區分大小寫、不區分重音、區分假名、區分寬度、補充字元 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1KS\$1WS\$1SC\$1UTF8 | German-PhoneBook-100、不區分大小寫、不區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1SC | German-PhoneBook-100、不區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1SC\$1UTF8 | German-PhoneBook-100、不區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、UTF8 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1WS | German-PhoneBook-100、不區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1WS\$1SC | German-PhoneBook-100、不區分大小寫、不區分重音、不區分假名、區分寬度、補充字元 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1WS\$1SC\$1UTF8 | German-PhoneBook-100、不區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、UTF8 | 
| German\$1PhoneBook\$1100\$1CI\$1AS | German-PhoneBook-100、不區分大小寫、區分重音、不區分假名、不區分寬度 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1KS | German-PhoneBook-100、不區分大小寫、區分重音、區分假名、不區分寬度 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1KS\$1SC | German-PhoneBook-100、不區分大小寫、區分重音、區分假名、不區分寬度、補充字元 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1KS\$1SC\$1UTF8 | German-PhoneBook-100、不區分大小寫、區分重音、區分假名、不區分寬度、補充字元、UTF8 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1KS\$1WS | German-PhoneBook-100、不區分大小寫、區分重音、區分假名、區分寬度 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1KS\$1WS\$1SC | German-PhoneBook-100、不區分大小寫、區分重音、區分假名、區分寬度、補充字元 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1KS\$1WS\$1SC\$1UTF8 | German-PhoneBook-100、不區分大小寫、區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1SC | German-PhoneBook-100、不區分大小寫、區分重音、不區分假名、不區分寬度、補充字元 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1SC\$1UTF8 | German-PhoneBook-100、不區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、UTF8 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1WS | German-PhoneBook-100、不區分大小寫、區分重音、不區分假名、區分寬度 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1WS\$1SC | German-PhoneBook-100、不區分大小寫、區分重音、不區分假名、區分寬度、補充字元 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1WS\$1SC\$1UTF8 | German-PhoneBook-100、不區分大小寫、區分重音、不區分假名、區分寬度、補充字元、UTF8 | 
| German\$1PhoneBook\$1100\$1CS\$1AI | German-PhoneBook-100、區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1KS | German-PhoneBook-100、區分大小寫、不區分重音、區分假名、不區分寬度 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1KS\$1SC | German-PhoneBook-100、區分大小寫、不區分重音、區分假名、不區分寬度、補充字元 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1KS\$1SC\$1UTF8 | German-PhoneBook-100、區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、UTF8 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1KS\$1WS | German-PhoneBook-100、區分大小寫、不區分重音、區分假名、區分寬度 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1KS\$1WS\$1SC | German-PhoneBook-100、區分大小寫、不區分重音、區分假名、區分寬度、補充字元 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1KS\$1WS\$1SC\$1UTF8 | German-PhoneBook-100、區分大小寫、不區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1SC | German-PhoneBook-100、區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1SC\$1UTF8 | German-PhoneBook-100、區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、UTF8 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1WS | German-PhoneBook-100、區分大小寫、不區分重音、不區分假名、區分寬度 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1WS\$1SC | German-PhoneBook-100、區分大小寫、不區分重音、不區分假名、區分寬度、補充字元 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1WS\$1SC\$1UTF8 | German-PhoneBook-100、區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、UTF8 | 
| German\$1PhoneBook\$1100\$1CS\$1AS | German-PhoneBook-100、區分大小寫、區分重音、不區分假名、不區分寬度 | 
| German\$1PhoneBook\$1100\$1CS\$1AS\$1KS | German-PhoneBook-100、區分大小寫、區分重音、區分假名、不區分寬度 | 
| German\$1PhoneBook\$1100\$1CS\$1AS\$1KS\$1SC | German-PhoneBook-100、區分大小寫、區分重音、區分假名、不區分寬度、補充字元 | 
| German\$1PhoneBook\$1100\$1CS\$1AS\$1KS\$1SC\$1UTF8 | German-PhoneBook-100、區分大小寫、區分重音、區分假名、不區分寬度、補充字元、UTF8 | 
| German\$1PhoneBook\$1100\$1CS\$1AS\$1KS\$1WS | German-PhoneBook-100、區分大小寫、區分重音、區分假名、區分寬度 | 
| German\$1PhoneBook\$1100\$1CS\$1AS\$1KS\$1WS\$1SC | German-PhoneBook-100、區分大小寫、區分重音、區分假名、區分寬度、補充字元 | 
| German\$1PhoneBook\$1100\$1CS\$1AS\$1KS\$1WS\$1SC\$1UTF8 | German-PhoneBook-100、區分大小寫、區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| German\$1PhoneBook\$1BIN | German-PhoneBook，二進位排序 | 
| German\$1PhoneBook\$1BIN2 | German-PhoneBook，二進位程式碼點比較排序 | 
| German\$1PhoneBook\$1CI\$1AI | German-PhoneBook、不區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| German\$1PhoneBook\$1CI\$1AI\$1KS | German-PhoneBook、不區分大小寫、不區分重音、區分假名、不區分寬度 | 
| German\$1PhoneBook\$1CI\$1AI\$1KS\$1WS | German-PhoneBook、不區分大小寫、不區分重音、區分假名、區分寬度 | 
| German\$1PhoneBook\$1CI\$1AI\$1WS | German-PhoneBook、不區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| German\$1PhoneBook\$1CI\$1AS | German-PhoneBook、不區分大小寫、區分重音、不區分假名、不區分寬度 | 
| German\$1PhoneBook\$1CI\$1AS\$1KS | German-PhoneBook、不區分大小寫、區分重音、區分假名、不區分寬度 | 
| German\$1PhoneBook\$1CI\$1AS\$1KS\$1WS | German-PhoneBook、不區分大小寫、區分重音、區分假名、區分寬度 | 
| German\$1PhoneBook\$1CI\$1AS\$1WS | German-PhoneBook、不區分大小寫、區分重音、不區分假名、區分寬度 | 
| German\$1PhoneBook\$1CS\$1AI | German-PhoneBook、區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| German\$1PhoneBook\$1CS\$1AI\$1KS | German-PhoneBook、區分大小寫、不區分重音、區分假名、不區分寬度 | 
| German\$1PhoneBook\$1CS\$1AI\$1KS\$1WS | German-PhoneBook、區分大小寫、不區分重音、區分假名、區分寬度 | 
| German\$1PhoneBook\$1CS\$1AI\$1WS | German-PhoneBook、區分大小寫、不區分重音、不區分假名、區分寬度 | 
| German\$1PhoneBook\$1CS\$1AS | German-PhoneBook、區分大小寫、區分重音、不區分假名、不區分寬度 | 
| German\$1PhoneBook\$1CS\$1AS\$1KS | German-PhoneBook、區分大小寫、區分重音、區分假名、不區分寬度 | 
| German\$1PhoneBook\$1CS\$1AS\$1KS\$1WS | German-PhoneBook、區分大小寫、區分重音、區分假名、區分寬度 | 
| German\$1PhoneBook\$1CS\$1AS\$1WS | German-PhoneBook、區分大小寫、區分重音、不區分假名、區分寬度 | 
| Hebrew\$1BIN | 希伯來文、二進位排序 | 
| Hebrew\$1CI\$1AS | 希伯來文、不區分大小寫、區分重音、不區分假名、不區分寬度 | 
| 日文\$190\$1BIN | Japanese-90，二進位排序 | 
| 日文\$190\$1BIN2 | Japanese-90，二進位程式碼點比較排序 | 
| 日文\$190\$1CI\$1AI | Japanese-90、不區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| 日文\$190\$1CI\$1AI\$1KS | Japanese-90、不區分大小寫、不區分重音、區分假名、不區分寬度 | 
| 日文\$190\$1CI\$1AI\$1KS\$1SC | Japanese-90、不區分大小寫、不區分重音、區分假名、不區分寬度、補充字元 | 
| 日文\$190\$1CI\$1AI\$1KS\$1SC\$1UTF8 | Japanese-90、不區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$190\$1CI\$1AI\$1KS\$1WS | Japanese-90、不區分大小寫、不區分重音、區分假名、區分寬度 | 
| 日文\$190\$1CI\$1AI\$1KS\$1WS\$1SC | Japanese-90、不區分大小寫、不區分重音、區分假名、區分寬度、補充字元 | 
| 日文\$190\$1CI\$1AI\$1KS\$1WS\$1SC\$1UTF8 | Japanese-90、不區分大小寫、不區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$190\$1CI\$1AI\$1SC | Japanese-90、不區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元 | 
| 日文\$190\$1CI\$1AI\$1SC\$1UTF8 | Japanese-90、不區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$190\$1CI\$1AI\$1WS | Japanese-90、不區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| 日文\$190\$1CI\$1AI\$1WS\$1SC | Japanese-90、不區分大小寫、不區分重音、不區分假名、區分寬度、補充字元 | 
| 日文\$190\$1CI\$1AI\$1WS\$1SC\$1UTF8 | Japanese-90、不區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$190\$1CI\$1AS | Japanese-90、不區分大小寫、區分重音、不區分假名、不區分寬度 | 
| 日文\$190\$1CI\$1AS\$1KS | Japanese-90、不區分大小寫、區分重音、區分假名、不區分寬度 | 
| 日文\$190\$1CI\$1AS\$1KS\$1SC | Japanese-90、不區分大小寫、區分重音、區分假名、不區分寬度、補充字元 | 
| 日文\$190\$1CI\$1AS\$1KS\$1SC\$1UTF8 | Japanese-90、不區分大小寫、區分重音、區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$190\$1CI\$1AS\$1KS\$1WS | Japanese-90、不區分大小寫、區分重音、區分假名、區分寬度 | 
| 日文\$190\$1CI\$1AS\$1KS\$1WS\$1SC | Japanese-90、不區分大小寫、區分重音、區分假名、區分寬度、補充字元 | 
| 日文\$190\$1CI\$1AS\$1KS\$1WS\$1SC\$1UTF8 | Japanese-90、不區分大小寫、區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$190\$1CI\$1AS\$1SC | Japanese-90、不區分大小寫、區分重音、不區分假名、不區分寬度、補充字元 | 
| 日文\$190\$1CI\$1AS\$1SC\$1UTF8 | Japanese-90、不區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$190\$1CI\$1AS\$1WS | Japanese-90、不區分大小寫、區分重音、不區分假名、區分寬度 | 
| 日文\$190\$1CI\$1AS\$1WS\$1SC | Japanese-90、不區分大小寫、區分重音、不區分假名、區分寬度、補充字元 | 
| 日文\$190\$1CI\$1AS\$1WS\$1SC\$1UTF8 | Japanese-90、不區分大小寫、區分重音、不區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$190\$1CS\$1AI | Japanese-90、區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| 日文\$190\$1CS\$1AI\$1KS | Japanese-90、區分大小寫、不區分重音、區分假名、不區分寬度 | 
| 日文\$190\$1CS\$1AI\$1KS\$1SC | Japanese-90、區分大小寫、不區分重音、區分假名、不區分寬度、補充字元 | 
| 日文\$190\$1CS\$1AI\$1KS\$1SC\$1UTF8 | Japanese-90、區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$190\$1CS\$1AI\$1KS\$1WS | Japanese-90、區分大小寫、不區分重音、區分假名、區分寬度 | 
| 日文\$190\$1CS\$1AI\$1KS\$1WS\$1SC | Japanese-90、區分大小寫、不區分重音、區分假名、區分寬度、補充字元 | 
| 日文\$190\$1CS\$1AI\$1KS\$1WS\$1SC\$1UTF8 | Japanese-90、區分大小寫、不區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$190\$1CS\$1AI\$1SC | Japanese-90、區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元 | 
| 日文\$190\$1CS\$1AI\$1SC\$1UTF8 | Japanese-90、區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$190\$1CS\$1AI\$1WS | Japanese-90、區分大小寫、不區分重音、不區分假名、區分寬度 | 
| 日文\$190\$1CS\$1AI\$1WS\$1SC | Japanese-90、區分大小寫、不區分重音、不區分假名、區分寬度、補充字元 | 
| 日文\$190\$1CS\$1AI\$1WS\$1SC\$1UTF8 | Japanese-90、區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$190\$1CS\$1AS | Japanese-90、區分大小寫、區分重音、不區分假名、不區分寬度 | 
| 日文\$190\$1CS\$1AS\$1KS | Japanese-90、區分大小寫、區分重音、區分假名、不區分寬度 | 
| 日文\$190\$1CS\$1AS\$1KS\$1SC | Japanese-90、區分大小寫、區分重音、區分假名、不區分寬度、補充字元 | 
| 日文\$190\$1CS\$1AS\$1KS\$1SC\$1UTF8 | Japanese-90、區分大小寫、區分重音、區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$190\$1CS\$1AS\$1KS\$1WS | Japanese-90、區分大小寫、區分重音、區分假名、區分寬度 | 
| 日文\$190\$1CS\$1AS\$1KS\$1WS\$1SC | Japanese-90、區分大小寫、區分重音、區分假名、區分寬度、補充字元 | 
| 日文\$190\$1CS\$1AS\$1KS\$1WS\$1SC\$1UTF8 | Japanese-90、區分大小寫、區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$190\$1CS\$1AS\$1SC | Japanese-90、區分大小寫、區分重音、不區分假名、不區分寬度、補充字元 | 
| 日文\$190\$1CS\$1AS\$1SC\$1UTF8 | Japanese-90、區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$190\$1CS\$1AS\$1WS | Japanese-90、區分大小寫、區分重音、不區分假名、區分寬度 | 
| 日文\$190\$1CS\$1AS\$1WS\$1SC | Japanese-90、區分大小寫、區分重音、不區分假名、區分寬度、補充字元 | 
| 日文\$190\$1CS\$1AS\$1WS\$1SC\$1UTF8 | Japanese-90、區分大小寫、區分重音、不區分假名、區分寬度、補充字元、UTF8 | 
| Japanese\$1BIN | 日文、二進位排序 | 
| 日文\$1BIN2 | 日文、二進位程式碼點比較排序 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1BIN | Japanese-Bushu-Kakusu-100，二進位排序 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1BIN2 | Japanese-Bushu-Kakusu-100，二進位程式碼點比較排序 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CI\$1AI | Japanese-Bushu-Kakusu-100、不區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1KS | Japanese-Bushu-Kakusu-100、不區分大小寫、不區分重音、區分假名、不區分寬度 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1KS\$1SC | Japanese-Bushu-Kakusu-100、不區分大小寫、不區分重音、區分假名、不區分寬度、補充字元 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1KS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100、不區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1KS\$1WS | Japanese-Bushu-Kakusu-100、不區分大小寫、不區分重音、區分假名、區分寬度 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1KS\$1WS\$1SC | Japanese-Bushu-Kakusu-100、不區分大小寫、不區分重音、區分假名、區分寬度、補充字元 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1KS\$1WS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100、不區分大小寫、不區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1SC | Japanese-Bushu-Kakusu-100、不區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100、不區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1WS | Japanese-Bushu-Kakusu-100、不區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1WS\$1SC | Japanese-Bushu-Kakusu-100、不區分大小寫、不區分重音、不區分假名、區分寬度、補充字元 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1WS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100、不區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CI\$1AS | Japanese-Bushu-Kakusu-100、不區分大小寫、區分重音、不區分假名、不區分寬度 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1KS | Japanese-Bushu-Kakusu-100、不區分大小寫、區分重音、區分假名、不區分寬度 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1KS\$1SC | Japanese-Bushu-Kakusu-100、不區分大小寫、區分重音、區分假名、不區分寬度、補充字元 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1KS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100、不區分大小寫、區分重音、區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1KS\$1WS | Japanese-Bushu-Kakusu-100、不區分大小寫、區分重音、區分假名、區分寬度 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1KS\$1WS\$1SC | Japanese-Bushu-Kakusu-100、不區分大小寫、區分重音、區分假名、區分寬度、補充字元 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1KS\$1WS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100、不區分大小寫、區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1SC | Japanese-Bushu-Kakusu-100、不區分大小寫、區分重音、不區分假名、不區分寬度、補充字元 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100、不區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1WS | Japanese-Bushu-Kakusu-100、不區分大小寫、區分重音、不區分假名、區分寬度 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1WS\$1SC | Japanese-Bushu-Kakusu-100、不區分大小寫、區分重音、不區分假名、區分寬度、補充字元 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1WS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100、不區分大小寫、區分重音、不區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CS\$1AI | Japanese-Bushu-Kakusu-100、區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1KS | Japanese-Bushu-Kakusu-100、區分大小寫、不區分重音、區分假名、不區分寬度 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1KS\$1SC | Japanese-Bushu-Kakusu-100、區分大小寫、不區分重音、區分假名、不區分寬度、補充字元 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1KS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100、區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1KS\$1WS | Japanese-Bushu-Kakusu-100、區分大小寫、不區分重音、區分假名、區分寬度 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1KS\$1WS\$1SC | Japanese-Bushu-Kakusu-100、區分大小寫、不區分重音、區分假名、區分寬度、補充字元 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1KS\$1WS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100、區分大小寫、不區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1SC | Japanese-Bushu-Kakusu-100、區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100、區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1WS | Japanese-Bushu-Kakusu-100、區分大小寫、不區分重音、不區分假名、區分寬度 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1WS\$1SC | Japanese-Bushu-Kakusu-100、區分大小寫、不區分重音、不區分假名、區分寬度、補充字元 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1WS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100、區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CS\$1AS | Japanese-Bushu-Kakusu-100、區分大小寫、區分重音、不區分假名、不區分寬度 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1KS | Japanese-Bushu-Kakusu-100、區分大小寫、區分重音、區分假名、不區分寬度 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1KS\$1SC | Japanese-Bushu-Kakusu-100、區分大小寫、區分重音、區分假名、不區分寬度、補充字元 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1KS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100、區分大小寫、區分重音、區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1KS\$1WS | Japanese-Bushu-Kakusu-100、區分大小寫、區分重音、區分假名、區分寬度 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1KS\$1WS\$1SC | Japanese-Bushu-Kakusu-100、區分大小寫、區分重音、區分假名、區分寬度、補充字元 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1KS\$1WS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100、區分大小寫、區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1SC | Japanese-Bushu-Kakusu-100、區分大小寫、區分重音、不區分假名、不區分寬度、補充字元 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100、區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1WS | Japanese-Bushu-Kakusu-100、區分大小寫、區分重音、區分假名、區分寬度 | 
| 日文\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1WS\$1SC | Japanese-Bushu-Kakusu-100、區分大小寫、區分重音、區分假名、區分寬度、補充字元 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1WS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100、區分大小寫、區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1BIN | Japanese-Bushu-Kakusu-140，二進位排序 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1BIN2 | Japanese-Bushu-Kakusu-140，二進位程式碼點比較排序 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CI\$1AI | Japanese-Bushu-Kakusu-140、不區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1KS | Japanese-Bushu-Kakusu-140、不區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1KS\$1UTF8 | Japanese-Bushu-Kakusu-140、不區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1KS\$1VSS | Japanese-Bushu-Kakusu-140、不區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、區分變化選擇器 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1KS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140、不區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1KS\$1WS | Japanese-Bushu-Kakusu-140、不區分大小寫、不區分重音、區分假名、區分寬度、補充字元、不區分變化選擇器 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1KS\$1WS\$1UTF8 | Japanese-Bushu-Kakusu-140、不區分大小寫、不區分重音、區分假名、區分寬度、增補二進位字元、不區分變化選擇器、UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1KS\$1WS\$1VSS | Japanese-Bushu-Kakusu-140、不區分大小寫、不區分重音、區分假名、區分寬度、補充字元、區分變化選擇器 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1KS\$1WS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140、不區分大小寫、不區分重音、區分假名、區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1UTF8 | Japanese-Bushu-Kakusu-140、不區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1VSS | Japanese-Bushu-Kakusu-140、不區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、區分變化選擇器 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140、不區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1WS | Japanese-Bushu-Kakusu-140、不區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1WS\$1UTF8 | Japanese-Bushu-Kakusu-140、不區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1WS\$1VSS | Japanese-Bushu-Kakusu-140、不區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、區分變化選擇器 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1WS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140、不區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CI\$1AS | Japanese-Bushu-Kakusu-140、不區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1KS | Japanese-Bushu-Kakusu-140、不區分大小寫、區分重音、區分假名、不區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1KS\$1UTF8 | Japanese-Bushu-Kakusu-140、不區分大小寫、區分重音、區分假名、不區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1KS\$1VSS | Japanese-Bushu-Kakusu-140、不區分大小寫、區分重音、區分假名、不區分寬度、補充字元、區分變化選擇器 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1KS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140、不區分大小寫、區分重音、區分假名、不區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1KS\$1WS | Japanese-Bushu-Kakusu-140、不區分大小寫、區分重音、區分假名、區分寬度、補充字元、不區分變化選擇器 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1KS\$1WS\$1UTF8 | Japanese-Bushu-Kakusu-140、不區分大小寫、區分重音、區分假名、區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1KS\$1WS\$1VSS | Japanese-Bushu-Kakusu-140、不區分大小寫、區分重音、區分假名、區分寬度、補充字元、區分變化選擇器 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1KS\$1WS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140、不區分大小寫、區分重音、區分假名、區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1UTF8 | Japanese-Bushu-Kakusu-140、不區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1VSS | Japanese-Bushu-Kakusu-140、不區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、區分變化選擇器 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140、不區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1WS | Japanese-Bushu-Kakusu-140、不區分大小寫、區分重音、不區分假名、區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1WS\$1UTF8 | Japanese-Bushu-Kakusu-140、不區分大小寫、區分重音、不區分假名、區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1WS\$1VSS | Japanese-Bushu-Kakusu-140、不區分大小寫、區分重音、不區分假名、區分寬度、補充字元、區分變化選擇器 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1WS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140、不區分大小寫、區分重音、不區分假名、區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CS\$1AI | Japanese-Bushu-Kakusu-140、區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1KS | Japanese-Bushu-Kakusu-140、區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1KS\$1UTF8 | Japanese-Bushu-Kakusu-140、區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1KS\$1VSS | Japanese-Bushu-Kakusu-140、區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、區分變化選擇器 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1KS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140、區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1KS\$1WS | Japanese-Bushu-Kakusu-140、區分大小寫、不區分重音、區分假名、區分寬度、補充字元、不區分變化選擇器 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1KS\$1WS\$1UTF8 | Japanese-Bushu-Kakusu-140、區分大小寫、不區分重音、區分假名、區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1KS\$1WS\$1VSS | Japanese-Bushu-Kakusu-140、區分大小寫、不區分重音、區分假名、區分寬度、補充字元、區分變化選擇器 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1KS\$1WS\$1VSS\$1UTF8 | Japanese-Bushu-Kaku su-140、區分大小寫、不區分重音、區分假名、區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1UTF8 | Japanese-Bushu-Kakusu-140、區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1VSS | Japanese-Bushu-Kakusu-140、區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、區分變化選擇器 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140、區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1WS | Japanese-Bushu-Kakusu-140、區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1WS\$1UTF8 | Japanese-Bushu-Kakusu-140、區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1WS\$1VSS | Japanese-Bushu-Kakusu-140、區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、區分變化選擇器 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1WS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140、區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CS\$1AS | Japanese-Bushu-Kakusu-140、區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1KS | Japanese-Bushu-Kakusu-140、區分大小寫、區分重音、區分假名、不區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1KS\$1UTF8 | Japanese-Bushu-Kakusu-140、區分大小寫、區分重音、區分假名、不區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1KS\$1VSS | Japanese-Bushu-Kakusu-140、區分大小寫、區分重音、區分假名、不區分寬度、補充字元、區分變化選擇器 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1KS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140、區分大小寫、區分重音、區分假名、不區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1KS\$1WS | Japanese-Bushu-Kakusu-140、區分大小寫、區分重音、區分假名、區分寬度、補充字元、不區分變化選擇器 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1KS\$1WS\$1UTF8 | Japanese-Bushu-Kakusu-140、區分大小寫、區分重音、區分假名、區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1KS\$1WS\$1VSS | Japanese-Bushu-Kakusu-140、區分大小寫、區分重音、區分假名、區分寬度、補充字元、區分變化選擇器 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1KS\$1WS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140、區分大小寫、區分重音、區分假名、區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1UTF8 | Japanese-Bushu-Kakusu-140、區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1VSS | Japanese-Bushu-Kakusu-140、區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、區分變化選擇器 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140、區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1WS | Japanese-Bushu-Kakusu-140、區分大小寫、區分重音、區分假名、區分寬度、補充字元、區分變化選擇器 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1WS\$1UTF8 | Japanese-Bushu-Kakusu-140、區分大小寫、區分重音、區分假名、區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1WS\$1VSS | Japanese-Bushu-Kakusu-140、區分大小寫、區分重音、區分假名、區分寬度、補充字元、區分變化選擇器 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1WS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140、區分大小寫、區分重音、不區分假名、區分寬度、補充字元、區分變化選擇器、UTF8 | 
| Japanese\$1CI\$1AI | 日文、不區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| 日文\$1CI\$1AI\$1KS | 日文、不區分大小寫、不區分重音、區分假名、不區分寬度 | 
| 日文\$1CI\$1AI\$1KS\$1WS | 日文、不區分大小寫、不區分重音、區分假名、區分寬度 | 
| 日文\$1CI\$1AI\$1WS | 日文、不區分大小寫、不區分重音、不區分假名、區分寬度 | 
| Japanese\$1CI\$1AS | 日文、不區分大小寫、區分重音、不區分假名、不區分寬度 | 
| 日文\$1CI\$1AS\$1KS | 日文、不區分大小寫、區分重音、區分假名、不區分寬度 | 
| 日文\$1CI\$1AS\$1KS\$1WS | 日文、不區分大小寫、區分重音、區分假名、區分寬度 | 
| 日文\$1CI\$1AS\$1WS | 日文、不區分大小寫、區分重音、不區分假名、區分寬度 | 
| 日文\$1CS\$1AI | 日文、區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| 日文\$1CS\$1AI\$1KS | 日文、區分大小寫、不區分重音、區分假名、不區分寬度 | 
| 日文\$1CS\$1AI\$1KS\$1WS | 日文、區分大小寫、不區分重音、區分假名、區分寬度 | 
| 日文\$1CS\$1AI\$1WS | 日文、區分大小寫、不區分重音、不區分假名、區分寬度 | 
| Japanese\$1CS\$1AS | 日文、區分大小寫、區分重音、不區分假名、不區分寬度 | 
| 日文\$1CS\$1AS\$1KS | 日文、區分大小寫、區分重音、區分假名、不區分寬度 | 
| 日文\$1CS\$1AS\$1KS\$1WS | 日文、區分大小寫、區分重音、區分假名、區分寬度 | 
| 日文\$1CS\$1AS\$1WS | 日文、區分大小寫、區分重音、不區分假名、區分寬度 | 
| 日文\$1統一碼\$1BIN | Japanese-Unicode，二進位排序 | 
| 日文\$1統一碼\$1BIN2 | 日文統一碼、二進位程式碼點比較排序 | 
| 日文\$1統一碼\$1CI\$1AI | 日文統一碼、不區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| 日文\$1統一碼\$1CI\$1AI\$1KS | 日文統一碼、不區分大小寫、不區分重音、區分假名、不區分寬度 | 
| 日文\$1Unicode\$1CI\$1AI\$1KS\$1WS | 日文統一碼、不區分大小寫、不區分重音、區分假名、區分寬度 | 
| 日文\$1Unicode\$1CI\$1AI\$1WS | 日文統一碼、不區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| 日文\$1統一碼\$1CI\$1AS | 日文統一碼、不區分大小寫、區分重音、不區分假名、不區分寬度 | 
| 日文\$1統一碼\$1CI\$1AS\$1KS | 日文統一碼、不區分大小寫、區分重音、區分假名、不區分寬度 | 
| 日文\$1Unicode\$1CI\$1AS\$1KS\$1WS | 日文統一碼、不區分大小寫、區分重音、區分假名、區分寬度 | 
| 日文\$1Unicode\$1CI\$1AS\$1WS | 日文統一碼、不區分大小寫、區分重音、不區分假名、區分寬度 | 
| 日文\$1統一\$1CS\$1AI | 日文統一碼、區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| 日文\$1統一碼\$1CS\$1AI\$1KS | 日文統一碼、區分大小寫、不區分重音、區分假名、不區分寬度 | 
| 日文\$1Unicode\$1CS\$1AI\$1KS\$1WS | 日文統一碼、區分大小寫、不區分重音、區分假名、區分寬度 | 
| 日文\$1統一碼\$1CS\$1AI\$1WS | 日文統一碼、區分大小寫、不區分重音、不區分假名、區分寬度 | 
| 日文\$1統一碼\$1CS\$1AS | 日文聯碼、區分大小寫、區分重音、不區分假名、不區分寬度 | 
| 日文\$1統一碼\$1CS\$1AS\$1KS | 日文聯碼、區分大小寫、區分重音、區分假名、不區分寬度 | 
| 日文\$1統一碼\$1CS\$1AS\$1KS\$1WS | 日文聯碼、區分大小寫、區分重音、區分假名、區分寬度 | 
| 日文\$1統一碼\$1CS\$1AS\$1WS | 日文聯碼、區分大小寫、區分重音、不區分假名、區分寬度 | 
| 日文\$1XJIS\$1100\$1BIN | Japanese-XJIS-100，二進位排序 | 
| 日文\$1XJIS\$1100\$1BIN2 | Japanese-XJIS-100，二進位程式碼點比較排序 | 
| 日文\$1XJIS\$1100\$1CI\$1AI | Japanese-XJIS-100、不區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| 日文\$1XJIS\$1100\$1CI\$1AI\$1KS | Japanese-XJIS-100、不區分大小寫、不區分重音、區分假名、不區分寬度 | 
| 日文\$1XJIS\$1100\$1CI\$1AI\$1KS\$1SC | Japanese-XJIS-100、不區分大小寫、不區分重音、區分假名、不區分寬度、補充字元 | 
| 日文\$1XJIS\$1100\$1CI\$1AI\$1KS\$1SC\$1UTF8 | Japanese-XJIS-100、不區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$1XJIS\$1100\$1CI\$1AI\$1KS\$1WS | Japanese-XJIS-100、不區分大小寫、不區分重音、區分假名、區分寬度 | 
| 日文\$1XJIS\$1100\$1CI\$1AI\$1KS\$1WS\$1SC | Japanese-XJIS-100、不區分大小寫、不區分重音、區分假名、區分寬度、補充字元 | 
| 日文\$1XJIS\$1100\$1CI\$1AI\$1KS\$1WS\$1SC\$1UTF8 | Japanese-XJIS-100、不區分大小寫、不區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$1XJIS\$1100\$1CI\$1AI\$1SC | Japanese-XJIS-100、不區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元 | 
| 日文\$1XJIS\$1100\$1CI\$1AI\$1SC\$1UTF8 | Japanese-XJIS-100、不區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$1XJIS\$1100\$1CI\$1AI\$1WS | Japanese-XJIS-100、不區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| 日文\$1XJIS\$1100\$1CI\$1AI\$1WS\$1SC | Japanese-XJIS-100、不區分大小寫、不區分重音、不區分假名、區分寬度、補充字元 | 
| 日文\$1XJIS\$1100\$1CI\$1AI\$1WS\$1SC\$1UTF8 | Japanese-XJIS-100、不區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$1XJIS\$1100\$1CI\$1AS | Japanese-XJIS-100、不區分大小寫、區分重音、不區分假名、不區分寬度 | 
| 日文\$1XJIS\$1100\$1CI\$1AS\$1KS | Japanese-XJIS-100、不區分大小寫、區分重音、區分假名、不區分寬度 | 
| 日文\$1XJIS\$1100\$1CI\$1AS\$1KS\$1SC | Japanese-XJIS-100、不區分大小寫、區分重音、區分假名、不區分寬度、補充字元 | 
| 日文\$1XJIS\$1100\$1CI\$1AS\$1KS\$1SC\$1UTF8 | Japanese-XJIS-100、不區分大小寫、區分重音、區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$1XJIS\$1100\$1CI\$1AS\$1KS\$1WS | Japanese-XJIS-100、不區分大小寫、區分重音、區分假名、區分寬度 | 
| 日文\$1XJIS\$1100\$1CI\$1AS\$1KS\$1WS\$1SC | Japanese-XJIS-100、不區分大小寫、區分重音、區分假名、區分寬度、補充字元 | 
| 日文\$1XJIS\$1100\$1CI\$1AS\$1KS\$1WS\$1SC\$1UTF8 | Japanese-XJIS-100、不區分大小寫、區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$1XJIS\$1100\$1CI\$1AS\$1SC | Japanese-XJIS-100、不區分大小寫、區分重音、不區分假名、不區分寬度、補充字元 | 
| 日文\$1XJIS\$1100\$1CI\$1AS\$1SC\$1UTF8 | Japanese-XJIS-100、不區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$1XJIS\$1100\$1CI\$1AS\$1WS | Japanese-XJIS-100、不區分大小寫、區分重音、不區分假名、區分寬度 | 
| 日文\$1XJIS\$1100\$1CI\$1AS\$1WS\$1SC | Japanese-XJIS-100、不區分大小寫、區分重音、不區分假名、區分寬度、補充字元 | 
| 日文\$1XJIS\$1100\$1CI\$1AS\$1WS\$1SC\$1UTF8 | Japanese-XJIS-100、不區分大小寫、區分重音、不區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$1XJIS\$1100\$1CS\$1AI | Japanese-XJIS-100、區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| 日文\$1XJIS\$1100\$1CS\$1AI\$1KS | Japanese-XJIS-100、區分大小寫、不區分重音、區分假名、不區分寬度 | 
| 日文\$1XJIS\$1100\$1CS\$1AI\$1KS\$1SC | Japanese-XJIS-100、區分大小寫、不區分重音、區分假名、不區分寬度、補充字元 | 
| 日文\$1XJIS\$1100\$1CS\$1AI\$1KS\$1SC\$1UTF8 | Japanese-XJIS-100、區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$1XJIS\$1100\$1CS\$1AI\$1KS\$1WS | Japanese-XJIS-100、區分大小寫、不區分重音、區分假名、區分寬度 | 
| 日文\$1XJIS\$1100\$1CS\$1AI\$1KS\$1WS\$1SC | Japanese-XJIS-100、區分大小寫、不區分重音、區分假名、區分寬度、補充字元 | 
| 日文\$1XJIS\$1100\$1CS\$1AI\$1KS\$1WS\$1SC\$1UTF8 | Japanese-XJIS-100、區分大小寫、不區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$1XJIS\$1100\$1CS\$1AI\$1SC | Japanese-XJIS-100、區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元 | 
| 日文\$1XJIS\$1100\$1CS\$1AI\$1SC\$1UTF8 | Japanese-XJIS-100、區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$1XJIS\$1100\$1CS\$1AI\$1WS | Japanese-XJIS-100、區分大小寫、不區分重音、不區分假名、區分寬度 | 
| 日文\$1XJIS\$1100\$1CS\$1AI\$1WS\$1SC | Japanese-XJIS-100、區分大小寫、不區分重音、不區分假名、區分寬度、補充字元 | 
| 日文\$1XJIS\$1100\$1CS\$1AI\$1WS\$1SC\$1UTF8 | Japanese-XJIS-100、區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$1XJIS\$1100\$1CS\$1AS | Japanese-XJIS-100、區分大小寫、區分重音、不區分假名、不區分寬度 | 
| 日文\$1XJIS\$1100\$1CS\$1AS\$1KS | Japanese-XJIS-100、區分大小寫、區分重音、區分假名、不區分寬度 | 
| 日文\$1XJIS\$1100\$1CS\$1AS\$1KS\$1SC | Japanese-XJIS-100、區分大小寫、區分重音、區分假名、不區分寬度、補充字元 | 
| 日文\$1XJIS\$1100\$1CS\$1AS\$1KS\$1SC\$1UTF8 | Japanese-XJIS-100、區分大小寫、區分重音、區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$1XJIS\$1100\$1CS\$1AS\$1KS\$1WS | Japanese-XJIS-100、區分大小寫、區分重音、區分假名、區分寬度 | 
| 日文\$1XJIS\$1100\$1CS\$1AS\$1KS\$1WS\$1SC | Japanese-XJIS-100、區分大小寫、區分重音、區分假名、區分寬度、補充字元 | 
| 日文\$1XJIS\$1100\$1CS\$1AS\$1KS\$1WS\$1SC\$1UTF8 | Japanese-XJIS-100、區分大小寫、區分重音、區分假名、區分寬度、補充字元、UTF8 | 
| 日文\$1XJIS\$1100\$1CS\$1AS\$1SC | Japanese-XJIS-100、區分大小寫、區分重音、不區分假名、不區分寬度、補充字元 | 
| 日文\$1XJIS\$1100\$1CS\$1AS\$1SC\$1UTF8 | Japanese-XJIS-100、區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、UTF8 | 
| 日文\$1XJIS\$1100\$1CS\$1AS\$1WS | Japanese-XJIS-100、區分大小寫、區分重音、區分假名、區分寬度 | 
| 日文\$1XJIS\$1140\$1BIN | Japanese-XJIS-140，二進位排序 | 
| 日文\$1XJIS\$1140\$1BIN2 | Japanese-XJIS-140，二進位程式碼點比較排序 | 
| 日文\$1XJIS\$1140\$1CI\$1AI | Japanese-XJIS-140、不區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CI\$1AI\$1KS | Japanese-XJIS-140、不區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CI\$1AI\$1KS\$1UTF8 | Japanese-XJIS-140、不區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CI\$1AI\$1KS\$1VSS | Japanese-XJIS-140、不區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CI\$1AI\$1KS\$1VSS\$1UTF8 | Japanese-XJIS-140、不區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CI\$1AI\$1KS\$1WS | Japanese-XJIS-140、不區分大小寫、不區分重音、區分假名、區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CI\$1AI\$1KS\$1WS\$1UTF8 | Japanese-XJIS-140、不區分大小寫、不區分重音、區分假名、區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CI\$1AI\$1KS\$1WS\$1VSS | Japanese-XJIS-140、不區分大小寫、不區分重音、區分假名、區分寬度、補充字元、區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CI\$1AI\$1KS\$1WS\$1VSS\$1UTF8 | Japanese-XJIS-140、不區分大小寫、不區分重音、區分假名、區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CI\$1AI\$1UTF8 | Japanese-XJIS-140、不區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CI\$1AI\$1VSS | Japanese-XJIS-140、不區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CI\$1AI\$1VSS\$1UTF8 | Japanese-XJIS-140、不區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CI\$1AI\$1WS | Japanese-XJIS-140、不區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CI\$1AI\$1WS\$1UTF8 | Japanese-XJIS-140、不區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CI\$1AI\$1WS\$1VSS | Japanese-XJIS-140、不區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CI\$1AI\$1WS\$1VSS\$1UTF8 | Japanese-XJIS-140、不區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、區分變化選擇器、UTF8 | 
| Japanese\$1XJIS\$1140\$1CI\$1AS | Japanese-XJIS-140、不區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、不區分變體選擇器 | 
| 日文\$1XJIS\$1140\$1CI\$1AS\$1KS | Japanese-XJIS-140、不區分大小寫、區分重音、區分假名、不區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CI\$1AS\$1KS\$1UTF8 | Japanese-XJIS-140、不區分大小寫、區分重音、區分假名、不區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| Japanese\$1XJIS\$1140\$1CI\$1AS\$1KS\$1VSS | Japanese-XJIS-140、不區分大小寫、區分重音、區分假名、不區分寬度、補充字元、區分變體選擇器 | 
| 日文\$1XJIS\$1140\$1CI\$1AS\$1KS\$1VSS\$1UTF8 | Japanese-XJIS-140、不區分大小寫、區分重音、區分假名、不區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CI\$1AS\$1KS\$1WS | Japanese-XJIS-140、不區分大小寫、區分重音、區分假名、區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CI\$1AS\$1KS\$1WS\$1UTF8 | Japanese-XJIS-140、不區分大小寫、區分重音、區分假名、區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CI\$1AS\$1KS\$1WS\$1VSS | Japanese-XJIS-140、不區分大小寫、區分重音、區分假名、區分寬度、補充字元、區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CI\$1AS\$1KS\$1WS\$1VSS\$1UTF8 | Japanese-XJIS-140、不區分大小寫、區分重音、區分假名、區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CI\$1AS\$1UTF8 | Japanese-XJIS-140、不區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| Japanese\$1XJIS\$1140\$1CI\$1AS\$1VSS | Japanese-XJIS-140、不區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、區分變體選擇器 | 
| 日文\$1XJIS\$1140\$1CI\$1AS\$1VSS\$1UTF8 | Japanese-XJIS-140、不區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CI\$1AS\$1WS | Japanese-XJIS-140、不區分大小寫、區分重音、不區分假名、區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CI\$1AS\$1WS\$1UTF8 | Japanese-XJIS-140、不區分大小寫、區分重音、不區分假名、區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CI\$1AS\$1WS\$1VSS | Japanese-XJIS-140、不區分大小寫、區分重音、不區分假名、區分寬度、補充字元、區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CI\$1AS\$1WS\$1VSS\$1UTF8 | Japanese-XJIS-140、不區分大小寫、區分重音、不區分假名、區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CS\$1AI | Japanese-XJIS-140、區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CS\$1AI\$1KS | Japanese-XJIS-140、區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CS\$1AI\$1KS\$1UTF8 | Japanese-XJIS-140、區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CS\$1AI\$1KS\$1VSS | Japanese-XJIS-140、區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CS\$1AI\$1KS\$1VSS\$1UTF8 | Japanese-XJIS-140、區分大小寫、不區分重音、區分假名、不區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CS\$1AI\$1KS\$1WS | Japanese-XJIS-140、區分大小寫、不區分重音、區分假名、區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CS\$1AI\$1KS\$1WS\$1UTF8 | Japanese-XJIS-140、區分大小寫、不區分重音、區分假名、區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CS\$1AI\$1KS\$1WS\$1VSS | Japanese-XJIS-140、區分大小寫、不區分重音、區分假名、區分寬度、補充字元、區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CS\$1AI\$1KS\$1WS\$1VSS\$1UTF8 | Japanese-XJIS-140、區分大小寫、不區分重音、區分假名、區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CS\$1AI\$1UTF8 | Japanese-XJIS-140、區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CS\$1AI\$1VSS | Japanese-XJIS-140、區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CS\$1AI\$1VSS\$1UTF8 | Japanese-XJIS-140、區分大小寫、不區分重音、不區分假名、不區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CS\$1AI\$1WS | Japanese-XJIS-140、區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CS\$1AI\$1WS\$1UTF8 | Japanese-XJIS-140、區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CS\$1AI\$1WS\$1VSS | Japanese-XJIS-140、區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CS\$1AI\$1WS\$1VSS\$1UTF8 | Japanese-XJIS-140、區分大小寫、不區分重音、不區分假名、區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CS\$1AS | Japanese-XJIS-140、區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CS\$1AS\$1KS | Japanese-XJIS-140、區分大小寫、區分重音、區分假名、不區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CS\$1AS\$1KS\$1UTF8 | Japanese-XJIS-140、區分大小寫、區分重音、區分假名、不區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CS\$1AS\$1KS\$1VSS | Japanese-XJIS-140、區分大小寫、區分重音、區分假名、不區分寬度、補充字元、區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CS\$1AS\$1KS\$1VSS\$1UTF8 | Japanese-XJIS-140、區分大小寫、區分重音、區分假名、不區分寬度、補充字元、區分變化選擇器、UTF8 | 
| Japanese\$1XJIS\$1140\$1CS\$1AS\$1KS\$1WS | Japanese-XJIS-140、區分大小寫、區分重音、區分假名、區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CS\$1AS\$1KS\$1WS\$1UTF8 | Japanese-XJIS-140、區分大小寫、區分重音、區分假名、區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CS\$1AS\$1KS\$1WS\$1VSS | Japanese-XJIS-140、區分大小寫、區分重音、區分假名、區分寬度、補充字元、區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CS\$1AS\$1KS\$1WS\$1VSS\$1UTF8 | Japanese-XJIS-140、區分大小寫、區分重音、區分假名、區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CS\$1AS\$1UTF8 | Japanese-XJIS-140、區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CS\$1AS\$1VSS | Japanese-XJIS-140、區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CS\$1AS\$1VSS\$1UTF8 | Japanese-XJIS-140、區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CS\$1AS\$1WS | Japanese-XJIS-140、區分大小寫、區分重音、不區分假名、區分寬度、補充字元、不區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CS\$1AS\$1WS\$1UTF8 | Japanese-XJIS-140、區分大小寫、區分重音、不區分假名、區分寬度、補充字元、不區分變化選擇器、UTF8 | 
| 日文\$1XJIS\$1140\$1CS\$1AS\$1WS\$1VSS | Japanese-XJIS-140、區分大小寫、區分重音、不區分假名、區分寬度、補充字元、區分變化選擇器 | 
| 日文\$1XJIS\$1140\$1CS\$1AS\$1WS\$1VSS\$1UTF8 | Japanese-XJIS-140、區分大小寫、區分重音、不區分假名、區分寬度、補充字元、區分變化選擇器、UTF8 | 
| Korean\$1Wansung\$1CI\$1AS | Korean-Wansung、不區分大小寫、區分重音、不區分假名、不區分寬度 | 
| Latin1\$1General\$1100\$1BIN | Latin1-General-100、二進位排序 | 
| Latin1\$1General\$1100\$1BIN2 | Latin1-General-100、二進位代碼點比較排序 | 
| Latin1\$1General\$1100\$1BIN2\$1UTF8 | Latin1-General-100、二進位程式碼點比較排序、UTF8 | 
| Latin1\$1General\$1100\$1CI\$1AS | Latin1-General-100、不區分大小寫、區分重音、不區分假名、不區分寬度 | 
| Latin1\$1General\$1100\$1CI\$1AS\$1SC\$1UTF8 | Latin1-General-100、不區分大小寫、區分重音、不區分假名、不區分寬度、補充字元、UTF8 | 
| Latin1\$1General\$1BIN | Latin1-General、二進位排序 | 
| Latin1\$1General\$1BIN2 | Latin1-General、二進位代碼點比較排序 | 
| Latin1\$1General\$1CI\$1AI | Latin1-General、不區分大小寫、不區分重音、不區分假名、不區分寬度 | 
| Latin1\$1General\$1CI\$1AS | Latin1-General、不區分大小寫、區分重音、不區分假名、不區分寬度 | 
| Latin1\$1General\$1CI\$1AS\$1KS | Latin1-General、不區分大小寫、區分重音、區分假名、不區分寬度 | 
| Latin1\$1General\$1CS\$1AS | Latin1-General、區分大小寫、區分重音、不區分假名、不區分寬度 | 
| Modern\$1Spanish\$1CI\$1AS | Modern-Spanish、不區分大小寫、區分重音、不區分假名、不區分寬度 | 
| SQL\$11xCompat\$1CP850\$1CI\$1AS | Latin1-General、不區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料字碼頁 850 上的 Unicode 資料、SQL Server 排序 49 | 
| SQL\$1Latin1\$1General\$1CP1\$1CI\$1AI | Latin1-General、不區分大小寫、不區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料字碼頁 1252 上的 Unicode 資料、SQL Server 排序 54 | 
| SQL\$1Latin1\$1General\$1CP1\$1CI\$1AS | Latin1-General、不區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料字碼頁 1252 上的 Unicode 資料、SQL Server 排序 52 | 
| SQL\$1Latin1\$1General\$1CP1\$1CS\$1AS | Latin1-General、不區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料字碼頁 1252 上的 Unicode 資料、SQL Server 排序 51 | 
| SQL\$1Latin1\$1General\$1CP1250\$1CI\$1AS | Latin1-General、不區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料的程式碼頁 1250 上的 Unicode Data、SQL Server Sort Order 82 | 
| SQL\$1Latin1\$1General\$1CP1250\$1CS\$1AS | Latin1-General、區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料的程式碼頁 1250 上的 Unicode Data、SQL Server Sort Order 81 | 
| SQL\$1Latin1\$1General\$1CP1251\$1CI\$1AS | Latin1-General、不區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料的程式碼頁 1251 上的 Unicode Data、SQL Server Sort Order 106 | 
| SQL\$1Latin1\$1General\$1CP1251\$1CS\$1AS | Latin1-General、區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料的程式碼頁 1251 上的 Unicode Data、SQL Server Sort Order 105 | 
| SQL\$1Latin1\$1General\$1CP1253\$1CI\$1AI | Latin1-General、不區分大小寫、不區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料的程式碼頁 1253 上的 Unicode Data、SQL Server Sort Order 124 | 
| SQL\$1Latin1\$1General\$1CP1253\$1CI\$1AS | Latin1-General、不區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料的程式碼頁 1253 上的 Unicode Data、SQL Server Sort Order 114 | 
| SQL\$1Latin1\$1General\$1CP1253\$1CS\$1AS | Latin1-General、區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料的程式碼頁 1253 上的 Unicode Data、SQL Server Sort Order 113 | 
| SQL\$1Latin1\$1General\$1CP1254\$1CI\$1AS | 土耳其文、不區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料的程式碼頁 1254 上的 Unicode Data、SQL Server Sort Order 130 | 
| SQL\$1Latin1\$1General\$1CP1254\$1CS\$1AS | 土耳其文、區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料的程式碼頁 1254 上的 Unicode Data、SQL Server Sort Order 129 | 
| SQL\$1Latin1\$1General\$1CP1255\$1CI\$1AS | Latin1-General、不區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料的程式碼頁 1255 上的 Unicode Data、SQL Server Sort Order 138 | 
| SQL\$1Latin1\$1General\$1CP1255\$1CS\$1AS | Latin1-General、不區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料字碼頁 1255 上的 Unicode 資料、SQL Server 排序 137 | 
| SQL\$1Latin1\$1General\$1CP1256\$1CI\$1AS | Latin1-General、不區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料字碼頁 1256 上的 Unicode 資料、SQL Server 排序 146 | 
| SQL\$1Latin1\$1General\$1CP1256\$1CS\$1AS | Latin1-General、區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料的程式碼頁 1256 上的 Unicode Data、SQL Server Sort Order 145 | 
| SQL\$1Latin1\$1General\$1CP1257\$1CI\$1AS | Latin1-General、不區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料的程式碼頁 1257 上的 Unicode Data、SQL Server Sort Order 154 | 
| SQL\$1Latin1\$1General\$1CP1257\$1CS\$1AS | Latin1-General、區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料的程式碼頁 1257 上的 Unicode Data、SQL Server Sort Order 153 | 
| SQL\$1Latin1\$1General\$1CP437\$1BIN | Latin1-General，非 Unicode 資料的 Unicode 資料二進位排序，程式碼頁 437 上的 SQL Server 排序順序 30 | 
| SQL\$1Latin1\$1General\$1CP437\$1BIN2 | 程式碼頁 437 上 Unicode Data 的 Latin1-General、二進位程式碼點比較排序、非 Unicode Data 的 SQL Server 排序順序 30 | 
| SQL\$1Latin1\$1General\$1CP437\$1CI\$1AI | Latin1-General、不區分大小寫、不區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料字碼頁 437 上的 Unicode 資料、SQL Server 排序 34 | 
| SQL\$1Latin1\$1General\$1CP437\$1CI\$1AS | Latin1-General、不區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料的程式碼頁 437 上的 Unicode Data、SQL Server Sort Order 32 | 
| SQL\$1Latin1\$1General\$1CP437\$1CS\$1AS | Latin1-General、區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料的程式碼頁 437 上的 Unicode Data、SQL Server Sort Order 31 | 
| SQL\$1Latin1\$1General\$1CP850\$1BIN | Latin1-General，Unicode Data 的二進位排序，非 Unicode Data 的程式碼頁面 850 上的 SQL Server 排序順序 40 | 
| SQL\$1Latin1\$1General\$1CP850\$1BIN2 | Latin1-General、二進位代碼點比較排序，適用於非 Unicode 資料字碼頁 850 上的 Unicode 資料、SQL Server 排序 40 | 
| SQL\$1Latin1\$1General\$1CP850\$1CI\$1AI | Latin1-General、不區分大小寫、不區分重音、不區分假名、不區分寬度 (適用於 Unicode 資料)、字碼頁 850 上的 SQL Server 排序 44 (適用於非 Unicode 資料) | 
| SQL\$1Latin1\$1General\$1CP850\$1CI\$1AS | Latin1-General、不區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料字碼頁 850 上的 Unicode 資料、SQL Server 排序 42 | 
| SQL\$1Latin1\$1General\$1CP850\$1CS\$1AS | Latin1-General、區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料的程式碼頁 850 上的 Unicode Data、SQL Server Sort Order 41 | 
| SQL\$1Latin1\$1General\$1Pref\$1CP1\$1CI\$1AS | Latin1-General、不區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料的程式碼頁 1252 上的 Unicode Data、SQL Server Sort Order 53 | 
| SQL\$1Latin1\$1General\$1Pref\$1CP437\$1CI\$1AS | Latin1-General、不區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料的程式碼頁 437 上的 Unicode Data、SQL Server Sort Order 33 | 
| SQL\$1Latin1\$1General\$1Pref\$1CP850\$1CI\$1AS | Latin1-General、不區分大小寫、區分重音、不區分假名、不區分寬度，適用於非 Unicode 資料的程式碼頁 850 上的 Unicode Data、SQL Server Sort Order 43 | 
| Thai\$1CI\$1AS | 泰語、不區分大小寫、區分重音、不區分假名、不區分寬度 | 

# RDS Custom for SQL Server 資料庫執行個體的本機時區
<a name="custom-reqs-limits-MS.TimeZone"></a>

RDS Custom for SQL Server 資料庫執行個體的時區是根據預設來設定的。目前預設值是世界協調時間 (UTC)。您也可以將資料庫執行個體的時區改設為本機時區，以符合應用程式的時區。

您可以在第一次建立資料庫執行個體時設定時區。您可以使用 [AWS 管理主控台](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html)、Amazon RDS API [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html.html) 動作或 AWS CLI [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 命令，建立您的資料庫執行個體。

如果您的資料庫執行個體是多可用區部署的一部分，則在容錯移轉時，時區仍會維持在您設定的本機時區。

要求進行時間點還原時，您可以指定要還原至的時間。時間以您當地的時區顯示。如需更多詳細資訊，請參閱 [將 Amazon RDS 的資料庫執行個體還原至指定時間](USER_PIT.md)。

下列是在資料庫執行個體上設定本機時區的限制：
+ 您可以在建立執行個體期間設定資料庫執行個體的時區，但無法修改現有適用於 SQL Server 資料庫執行個體的 RDS Custom 時區。
+ 如果修改現有適用於 SQL Server 資料庫執行個體的 RDS Custom 時區，則 RDS Custom 會將資料庫執行個體狀態變更為 `unsupported-configuration`，並傳送事件通知。
+ 您無法將快照從某個時區的資料庫執行個體還原至另一個時區的資料庫執行個體。
+ 強烈建議您不要將備份檔案從某個時區還原至不同時區。如果您將備份檔案從某個時區還原至不同時區，則必須稽核您的查詢及應用程式，是否受到時區變更的影響。如需更多詳細資訊，請參閱 [使用原生備份和還原，匯入和匯出 SQL Server 資料庫](SQLServer.Procedural.Importing.md)。

## 支援的時區
<a name="custom-reqs-limits-MS.TimeZone.Zones"></a>

您可以將本機時區設為下表中列出的其中一個值。


| 時區 | 標準時間偏移 | 描述 | 備註 | 
| --- | --- | --- | --- | 
| 阿富汗標準時間 | (UTC\$104:30) | 喀布爾 | 此時區不會遵守日光節約時間。 | 
| 阿拉斯加標準時間 | (UTC–09:00) | 阿拉斯加州 |  | 
| 阿留申標準時間 | (UTC–10:00) | 阿留申群島 |  | 
| 阿爾泰標準時間 | (UTC\$107:00) | 巴爾瑙爾，戈爾諾-阿爾泰斯克 |  | 
| 沙烏地阿拉伯標準時間 | (UTC\$103:00) | 科威特，利雅德 | 此時區不會遵守日光節約時間。 | 
| 阿拉伯標準時間 | (UTC\$104:00) | 阿布達比、馬斯喀特 |  | 
| 阿拉伯標準時間 | (UTC\$103:00) | 巴格達 | 此時區不會遵守日光節約時間。 | 
| 阿根廷標準時間 | (UTC–03:00) | 布宜諾斯艾利斯市 | 此時區不會遵守日光節約時間。 | 
| 阿斯特拉罕標準時間 | (UTC\$104:00) | 阿斯特拉罕，烏里揚諾夫斯克 |  | 
| 大西洋標準時間 | (UTC–04:00) | 大西洋時間 (加拿大) |  | 
| AUS 中央標準時間 | (UTC\$109:30) | 達爾文 | 此時區不會遵守日光節約時間。 | 
| 澳洲中西部標準時間 | (UTC\$108:45) | 尤克拉 |  | 
| AUS 東部標準時間 | (UTC\$110:00) | 坎培拉、墨爾本、雪梨 |  | 
| 亞塞拜然標準時間 | (UTC\$104:00) | 巴庫 |  | 
| 亞速爾標準時間 | (UTC–01:00) | 亞速爾 |  | 
| 巴伊亞標準時間 | (UTC–03:00) | 薩爾瓦多 |  | 
| 孟加拉標準時間 | (UTC\$106:00) | 達卡 | 此時區不會遵守日光節約時間。 | 
| 白俄羅斯標準時間 | (UTC\$103:00) | 明斯克 | 此時區不會遵守日光節約時間。 | 
| 布干維爾標準時間 | (UTC\$111:00) | 布干維爾島 |  | 
| 加拿大中央標準時間 | (UTC–06:00) | 薩斯喀徹溫 | 此時區不會遵守日光節約時間。 | 
| 維德角標準時間 | (UTC–01:00) | 維德角群島 | 此時區不會遵守日光節約時間。 | 
| 高加索標準時間 | (UTC\$104:00) | 葉里溫 |  | 
| 中央 澳洲標準時間 | (UTC\$109:30) | 阿德萊德 |  | 
| 中美洲標準時間 | (UTC–06:00) | 中央美洲 | 此時區不會遵守日光節約時間。 | 
| 中亞標準時間 | (UTC\$106:00) | 阿斯塔納 | 此時區不會遵守日光節約時間。 | 
| 中央巴西標準時間 | (UTC–04:00) | 古雅巴 |  | 
| 中歐標準時間 | (UTC\$101:00) | 貝爾格勒、布拉提斯拉瓦、布達佩斯、盧布亞納、布拉格 |  | 
| 中歐標準時間 | (UTC\$101:00) | 塞拉耶佛、斯高彼亞、華沙、札格雷布 |  | 
| 中央太平洋標準時間 | (UTC\$111:00) | 索羅門群島、新喀里多尼亞 | 此時區不會遵守日光節約時間。 | 
| 中央標準時間 | (UTC–06:00) | 中央時間 (美國和加拿大) |  | 
| 中央標準時間 (墨西哥) | (UTC–06:00) | 瓜達拉哈拉、墨西哥城、蒙特利 |  | 
| 查塔姆群島標準時間 | (UTC\$112:45) | 查塔姆群島 |  | 
| 中國標準時間 | (UTC\$108:00) | 北京、重慶、香港、烏魯木齊 | 此時區不會遵守日光節約時間。 | 
| 古巴標準時間 | (UTC–05:00) | 哈瓦那 |  | 
| 國際換日線標準時間 | (UTC–12:00) | 國際換日線以西 | 此時區不會遵守日光節約時間。 | 
| 東部非洲標準時間 | (UTC\$103:00) | 奈洛比 | 此時區不會遵守日光節約時間。 | 
| 東部澳洲標準時間 | (UTC\$110:00) | 布利斯班 | 此時區不會遵守日光節約時間。 | 
| 東部歐洲標準時間 | (UTC\$102:00) | 奇西瑙 |  | 
| 東部南美洲標準時間 | (UTC–03:00) | 巴西利亞 |  | 
| 復活節島標準時間 | (UTC–06:00) | 復活節島 |  | 
| 東部標準時間 | (UTC–05:00) | 東部時間 (美國和加拿大) |  | 
| 東部標準時間（墨西哥） | (UTC–05:00) | 切圖馬爾 |  | 
| 埃及標準時間 | (UTC\$102:00) | 開羅 |  | 
| 葉卡捷琳堡標準時間 | (UTC\$105:00) | 葉卡捷琳堡 |  | 
| 斐濟標準時間 | (UTC\$112:00) | 斐濟 |  | 
| FLE 標準時間 | (UTC\$102:00) | 赫爾辛基，基輔，里加，索菲亞，塔林，維爾紐斯 |  | 
| 喬治亞標準時間 | (UTC\$104:00) | 提比里斯 | 此時區不會遵守日光節約時間。 | 
| GMT 標準時間 | (UTC) | 都柏林、愛丁堡、里斯本、倫敦 |  此時區與格林威治標準時間不同。此時區會遵守日光節約時間。 | 
| 格陵蘭標準時間 | (UTC–03:00) | 格陵蘭 |  | 
| 格林威治標準時間 | (UTC) | 蒙羅維亞、雷克雅維克 | 此時區不會遵守日光節約時間。 | 
| GTB 標準時間 | (UTC\$102:00) | 雅典、布加勒斯特 |  | 
| 海地標準時間 | (UTC–05:00) | 海地 |  | 
| 夏威夷標準時間 | (UTC–10:00) | 夏威夷州 |  | 
| 印度標準時間 | (UTC\$105:30) | 清奈、加爾各答、孟買、新德里 | 此時區不會遵守日光節約時間。 | 
| 伊朗標準時間 | (UTC\$103:30) | 德黑蘭 |  | 
| 以色列標準時間 | (UTC\$102:00) | 耶路撒冷 |  | 
| 約旦標準時間 | (UTC\$102:00) | 安曼 |  | 
| 卡里寧格勒標準時間 | (UTC\$102:00) | 卡里寧格勒 |  | 
| 堪察加標準時間 | (UTC\$112:00) | 彼得保羅夫斯克-堪察加斯克 – 老 |  | 
| 韓國標準時間 | (UTC\$109:00) | 首爾 | 此時區不會遵守日光節約時間。 | 
| 利比亞標準時間 | (UTC\$102:00) | 的黎波里 |  | 
| 來因群島標準時間 | (UTC\$114:00) | 刻里提瑪斯島 |  | 
| 羅豪標準時間 | (UTC\$110:30) | 羅豪島 |  | 
| 馬加丹標準時間 | (UTC\$111:00) | 馬加丹 | 此時區不會遵守日光節約時間。 | 
| 麥哲倫標準時間 | (UTC–03:00) | 蓬塔阿雷納斯 |  | 
| 馬克薩斯標準時間 | (UTC–09:30) | 馬克薩斯群島 |  | 
| 模里西斯標準時間 | (UTC\$104:00) | 路易士港 | 此時區不會遵守日光節約時間。 | 
| 中東標準時間 | (UTC\$102:00) | 貝魯特 |  | 
| 蒙特維多標準時間 | (UTC–03:00) | 蒙特維多 |  | 
| 摩洛哥標準時間 | (UTC\$101:00) | 卡薩布蘭卡 |  | 
| 山地標準時間 | (UTC–07:00) | 山地時間 (美國和加拿大) |  | 
| 山地標準時間 (墨西哥) | (UTC–07:00) | 赤瓦瓦州、拉巴斯、馬薩特蘭 |  | 
| 緬甸標準時間 | (UTC\$106:30) | 仰光 | 此時區不會遵守日光節約時間。 | 
| 北部中亞標準時間 | (UTC\$107:00) | 新西伯利亞 |  | 
| 納米比亞標準時間 | (UTC\$102:00) | 溫吐克 |  | 
| 尼泊爾標準時間 | (UTC\$105:45) | 加德滿都 | 此時區不會遵守日光節約時間。 | 
| 紐西蘭標準時間 | (UTC\$112:00) | 奧克蘭、威靈頓 |  | 
| 紐芬蘭標準時間 | (UTC–03:30) | 紐芬蘭 |  | 
| 諾福克標準時間 | (UTC\$111:00) | 諾福克島 |  | 
| 東北亞標準時間 | (UTC\$108:00) | 伊爾庫次克 |  | 
| 北亞標準時間 | (UTC\$107:00) | 克拉斯諾亞爾斯克 |  | 
| 北韓標準時間 | (UTC\$109:00) | 平壤 |  | 
| 鄂木斯克標準時間 | (UTC\$106:00) | 鄂木斯克 |  | 
| 太平洋 SA 標準時間 | (UTC–03:00) | 聖地牙哥 |  | 
| 太平洋標準時間 | (UTC–08:00) | 太平洋時間 (美國和加拿大) |  | 
| 太平洋標準時間 (墨西哥) | (UTC–08:00) | 下加利福尼亞州 |  | 
| 巴基斯坦標準時間 | (UTC\$105:00) | 伊斯蘭馬巴德，喀拉蚩 | 此時區不會遵守日光節約時間。 | 
| 巴拉圭標準時間 | (UTC–04:00) | 亞松森 |  | 
| 羅馬標準時間 | (UTC\$101:00) | 布魯塞爾、哥本哈根、馬德里、巴黎 |  | 
| 俄羅斯時區 10 | (UTC\$111:00) | 查庫爾達克 |  | 
| 俄羅斯時區 11 | (UTC\$112:00) | 阿納底，彼得保羅夫斯克-堪察加斯克 |  | 
| 俄羅斯時區 3 | (UTC\$104:00) | 伊熱夫斯克，薩馬拉 |  | 
| 俄羅斯標準時間 | (UTC\$103:00) | 莫斯科、聖彼得堡、伏爾加格勒 | 此時區不會遵守日光節約時間。 | 
| 南美洲東部標準時間 | (UTC–03:00) | 卡宴，福塔雷薩 | 此時區不會遵守日光節約時間。 | 
| SA 太平洋標準時間 | (UTC–05:00) | 波哥大、利馬、基多、里約布蘭科 |  此時區不會遵守日光節約時間。 | 
| 南美洲西部標準時間 | (UTC–04:00) | 喬治城，拉帕茲，瑪瑙斯，聖胡安 | 此時區不會遵守日光節約時間。 | 
| 聖皮爾標準時間 | (UTC–03:00) | 聖皮埃赫及密克隆 |  | 
| 薩哈林標準時間 | (UTC\$111:00) | 薩哈林 |  | 
| 薩摩亞標準時間 | (UTC\$113:00) | 薩摩亞 |  | 
| 聖多美標準時間 | (UTC\$101:00) | 聖多美普林西比 |  | 
| 薩拉托夫標準時間 | (UTC\$104:00) | 薩拉托夫 |  | 
| SE 亞洲標準時間 | (UTC\$107:00) | 曼谷、河內、雅加達 | 此時區不會遵守日光節約時間。 | 
| 新加坡標準時間 | (UTC\$108:00) | 吉隆坡、新加玻 | 此時區不會遵守日光節約時間。 | 
| 南非標準時間 | (UTC\$102:00) | 哈拉雷，比勒陀利亞 | 此時區不會遵守日光節約時間。 | 
| 斯里蘭卡標準時間 | (UTC\$105:30) | 斯里哈亞華登尼普拉 | 此時區不會遵守日光節約時間。 | 
| 蘇丹標準時間 | (UTC\$102:00) | 喀土穆 |  | 
| 敘利亞標準時間 | (UTC\$102:00) | 大馬士革 |  | 
| 台北標準時間 | (UTC\$108:00) | 台北 | 此時區不會遵守日光節約時間。 | 
| 塔斯馬尼亞標準時間 | (UTC\$110:00) | 荷巴特 |  | 
| 托坎廷斯標準時間 | (UTC–03:00) | 阿拉瓜 |  | 
| 東京標準時間 | (UTC\$109:00) | 大阪、札幌、東京 | 此時區不會遵守日光節約時間。 | 
| 托木斯克標準時間 | (UTC\$107:00) | 托木斯克 |  | 
| 東加標準時間 | (UTC\$113:00) | 努瓜婁發 | 此時區不會遵守日光節約時間。 | 
| 外貝加爾標準時間 | (UTC\$109:00) | 赤塔 |  | 
| 土耳其標準時間 | (UTC\$103:00) | 伊斯坦堡 |  | 
| 土克斯及開科斯群島標準時間 | (UTC–05:00) | 土克斯及開科斯群島 |  | 
| 烏蘭巴托標準時間 | (UTC\$108:00) | 烏蘭巴托 | 此時區不會遵守日光節約時間。 | 
| 美國東部標準時間 | (UTC–05:00) | 印第安那州 (東部) |  | 
| 美國山地標準時間 | (UTC–07:00) | 亞利桑那州 | 此時區不會遵守日光節約時間。 | 
| UTC | UTC | 國際標準時間 | 此時區不會遵守日光節約時間。 | 
| UTC–02 | (UTC–02:00) | 國際標準時間–02 | 此時區不會遵守日光節約時間。 | 
| UTC–08 | (UTC–08:00) | 國際標準時間–08 |  | 
| UTC–09 | (UTC–09:00) | 國際標準時間–09 |  | 
| UTC–11 | (UTC–11:00) | 國際標準時間–11 | 此時區不會遵守日光節約時間。 | 
| UTC\$112 | (UTC\$112:00) | 國際標準時間\$112 | 此時區不會遵守日光節約時間。 | 
| UTC\$113 | (UTC\$113:00) | 國際標準時間\$113 |  | 
| 委內瑞拉標準時間 | (UTC–04:00) | 加拉加斯 | 此時區不會遵守日光節約時間。 | 
| 符拉迪沃斯托克標準時間 | (UTC\$110:00) | 符拉迪沃斯托克 |  | 
| 伏爾加格勒標準時間 | (UTC\$104:00) | 伏爾加格勒 |  | 
| 西部澳洲標準時間 | (UTC\$108:00) | 珀斯 | 此時區不會遵守日光節約時間。 | 
| 西部西非標準時間 | (UTC\$101:00) | 中西非 | 此時區不會遵守日光節約時間。 | 
| 西部歐洲標準時間 | (UTC\$101:00) | 阿姆斯特丹、柏林、羅馬、斯德哥爾摩、維也納 |  | 
| 西部蒙古標準時間 | (UTC\$107:00) | 霍夫德 |  | 
| 西亞標準時間 | (UTC\$105:00) | 阿什哈巴德，塔什干 | 此時區不會遵守日光節約時間。 | 
| 約旦河西岸標準時間 | (UTC\$102:00) | 加薩，希伯侖 |  | 
| 西太平洋標準時間 | (UTC\$110:00) | 關島，莫爾斯貝港 | 此時區不會遵守日光節約時間。 | 
| 亞庫茲克標準時間 | (UTC\$109:00) | 亞庫茲克 |  | 

# 使用服務主金鑰搭配 RDS Custom for SQL Server
<a name="custom-sqlserver-features.smk"></a>

RDS Custom for SQL Server 支援使用服務主金鑰 (SMK)。RDS Custom 會在 RDS Custom for SQL Server 資料庫執行個體的整個生命週期中保留相同的 SMK。透過保留相同的 SMK，您的資料庫執行個體可以使用透過 SMK 加密的物件，例如連結的伺服器密碼和憑證。如果您使用多可用區域部署，則 RDS Custom 也會同步及維護主要和次要資料庫執行個體之間的 SMK。

**Topics**
+ [區域和版本可用性](#custom-sqlserver-features.smk.list)
+ [支援的功能](#custom-sqlserver-features.smk.supportedfeatures)
+ [使用 TDE](#custom-sqlserver-features.smk.tde)
+ [設定功能](#custom-sqlserver-features.smk.configuringfeatures)
+ [要求與限制](#custom-sqlserver-features.smk.reqlimits)

## 區域和版本可用性
<a name="custom-sqlserver-features.smk.list"></a>

對於 RDS Custom 上提供的所有 SQL Server 版本，可使用 RDS Custom for SQL Server 的所有區域中全都支援使用 SMK。如需 Amazon RDS 搭配 RDS Custom for SQL Server 版本和區域可用性的詳細資訊，請參閱 [支援的 RDS Custom for SQL Server 區域和資料庫引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.md#Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.sq)。

## 支援的功能
<a name="custom-sqlserver-features.smk.supportedfeatures"></a>

搭配 RDS Custom for SQL Server 使用 SMK 時，支援下列功能：
+ 透明資料加密 (TDE)
+ 資料欄層級加密
+ 資料庫郵件
+ 連結伺服器
+ SQL Server Integration Services (SSIS)

## 使用 TDE
<a name="custom-sqlserver-features.smk.tde"></a>

SMK 能夠設定透明資料加密 (TDE)，在資料寫入儲存體之前將資料加密，並在資料從儲存體讀取時自動將資料解密。與 RDS for SQL Server 不同，在 RDS Custom for SQL Server 資料庫執行個體上設定 TDE 不需要使用選項群組。相反地，建立憑證和資料庫加密金鑰之後，您可以執行下列命令，在資料庫層級開啟 TDE：

```
ALTER DATABASE [myDatabase] SET ENCRYPTION ON;
```

 如需使用 TDE 搭配 RDS for SQL Server 的詳細資訊，請參閱 [支援 SQL Server 的透明資料加密](Appendix.SQLServer.Options.TDE.md)。

 如需 Microsoft SQL Server 中 TDE 的詳細資訊，請參閱 Microsoft 文件中的[透明資料加密](https://learn.microsoft.com/en-us/sql/relational-databases/security/encryption/transparent-data-encryption?view=sql-server-ver15)。

## 設定功能
<a name="custom-sqlserver-features.smk.configuringfeatures"></a>

如需設定搭配 RDS Custom for SQL Server 使用 SMK 之功能的詳細步驟，您可以在 Amazon RDS 資料庫部落格中使用下列文章：
+ 連結的伺服器：[在 RDS Custom for SQL Server 上設定連結的伺服器](https://aws.amazon.com/blogs/database/configure-linked-servers-on-amazon-rds-custom-for-sql-server/)。
+ SSIS：[將 SSIS 套件遷移至 RDS Custom for SQL Server](https://aws.amazon.com/blogs/database/migrate-microsoft-sql-server-ssis-packages-to-amazon-rds-custom-for-sql-server/)。
+ TDE：[在 RDS Custom for SQL Server 上使用 TDE 來保護您的資料](https://aws.amazon.com/blogs/database/secure-your-data-at-rest-on-amazon-rds-custom-for-sql-server-using-transparent-data-encryption-tde-or-column-level-encryption-cle/)。

## 要求與限制
<a name="custom-sqlserver-features.smk.reqlimits"></a>

搭配 RDS Custom for SQL Server 資料庫執行個體使用 SMK 時，請記住下列需求和限制：
+ 如果您在資料庫執行個體上重新產生 SMK，則應該立即執行手動資料庫快照。如果可能，建議您避免重新產生 SMK。
+ 您必須維護伺服器憑證和資料庫主金鑰密碼的備份。如果您未維護這些備份，可能會導致資料遺失。
+ 如果您設定 SSIS，則應該使用 SSM 文件將 RDS Custom for SQL Server 資料庫執行個體加入到網域，以防擴展運算或主機取代。
+ 啟用 TDE 或資料欄加密時，會自動加密資料庫備份。當您執行快照還原或時間點復原時，會還原來源資料庫執行個體中的 SMK 以解密還原的資料，並產生新的 SMK 以重新加密還原執行個體上的資料。

 如需 Microsoft SQL Server 中服務主金鑰的詳細資訊，請參閱 Microsoft 文件中的 [SQL Server 和資料庫加密金鑰](https://learn.microsoft.com/en-us/sql/relational-databases/security/encryption/sql-server-and-database-encryption-keys-database-engine?view=sql-server-ver15)。

# 使用 RDS Custom for SQL Server 變更資料擷取 (CDC) 支援
<a name="custom-sqlserver-features.cdc"></a>

## 概觀
<a name="custom-sqlserver-features.cdc.overview"></a>

RDS Custom for SQL Server 提供變更資料擷取 (CDC) 的原生支援，可讓您追蹤及擷取 SQL Server 資料表中的資料修改。CDC 會存放這些變更的詳細中繼資料，以供後續擷取和分析。如需 CDC 運作方式的詳細資訊，請參閱 Microsoft 文件中的[變更資料擷取](https://docs.microsoft.com/en-us/sql/relational-databases/track-changes/track-data-changes-sql-server#Capture)。

SQL Server 中的 CDC 作業需要 `sys.servers` 與 `SERVERPROPERTY('ServerName')` 識別符中*本機伺服器* (其 `server_id` = 0) 之間的相符值。RDS Custom for SQL Server 會在執行個體的整個生命週期中自動維持此同步，以確保 CDC 持續運作，即使主機在維護或復原作業期間遭到取代也一樣。

**重要**  
在多可用區域執行個體容錯移轉之後，`SERVERPROPERTY('Servername')` 函數會自動反映網路/電腦名稱的變更。不過，`@@SERVERNAME` 函數會保留舊的伺服器名稱，直到 `MSSQLSERVER` 服務重新啟動為止。查詢 @@SERVERNAME 會在容錯移轉後傳回先前的伺服器名稱。若要在容錯移轉後取得準確的伺服器名稱，請使用下列 SQL 查詢：  

```
SELECT name FROM sys.servers WHERE server_id=0
```
此查詢提供最新伺服器名稱資訊，而不需要重新啟動服務。

## 區域和版本可用性
<a name="custom-sqlserver-features.cdc.regionAvail"></a>

對於 RDS Custom 支援的所有 SQL Server 版本，提供 RDS Custom for SQL Server 的所有 AWS 區域 中都支援 CDC 功能。如需 RDS Custom for SQL Server 的支援版本和區域可用性的詳細資訊，請參閱 [支援的 RDS Custom for SQL Server 區域和資料庫引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.md#Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.sq)。

## 要求與限制
<a name="custom-sqlserver-features.cdc.reqsLims"></a>

在 RDS Custom for SQL Server 上實作 CDC 時，請注意下列重要考量：
+ 如果您在 `sys.servers` 中手動設定 `@@SERVERNAME` 和/或*本機伺服器*以使用 MS 複寫等功能，則若 `sys.servers` 中的本機伺服器 (具有 `server_id = 0`) 的值設定為符合 `*.rds.amazonaws.com` 或 `*.awsrds.*.com` 的格式，RDS Custom for SQL Server 不會嘗試修改它以符合 `SERVERPROPERTY('ServerName')`。
+ 當遠端登入或連結伺服器正在使用舊的主機名稱時，RDS 無法將 `sys.servers` 中的本機伺服器 (具有 `server_id = 0`) 修改為新的主機名稱。此限制適用於兩種情況：
  + 當連結的伺服器使用與舊主機名稱相關聯的遠端登入來建立與本機伺服器的連線時
  + 當 RDS Custom for SQL Server 執行個體做為發布者或經銷商，且已將與舊主機名稱相關聯的登入連結至其訂閱用戶執行個體時。

## 故障診斷
<a name="custom-sqlserver-features.cdc.Troubleshooting"></a>

若要識別與舊伺服器名稱相關聯的遠端登入或連結的登入，請使用下列查詢。驗證結果並移除這些登入，以確保適當的 CDC 功能。

```
SELECT * FROM sys.remote_logins WHERE server_id=0
```

或

```
select sss.srvname,ssp.name,srl.remote_name  from sys.server_principals ssp 
inner join sys.remote_logins srl on srl.local_principal_id=ssp.principal_id
inner join sys.sysservers sss  on srl.server_id = sss.srvid
where sss.srvname = @@SERVERNAME
```

# 設定您的 Amazon RDS Custom for SQL Server 的環境
<a name="custom-setup-sqlserver"></a>

建立和管理 Amazon RDS Custom for SQL Server 資料庫執行個體的資料庫執行個體之前，請務必執行下列任務。

**Contents**
+ [設定 RDS Custom for SQL Server 的先決條件](#custom-setup-sqlserver.review)
  + [使用 自動建立執行個體描述檔 AWS 管理主控台](#custom-setup-sqlserver.instanceProfileCreation)
+ [步驟 1：將所需的許可授予您的 IAM 主體](#custom-setup-sqlserver.iam-user)
+ [步驟 2：設定網路、執行個體設定檔及加密](#custom-setup-sqlserver.iam-vpc)
  + [使用 設定 CloudFormation](#custom-setup-sqlserver.cf)
    + [CloudFormation 所需的參數](#custom-setup-sqlserver.cf.params)
    + [下載 CloudFormation 範本檔案](#custom-setup-sqlserver.cf.download)
    + [使用 CloudFormation 設定資源](#custom-setup-sqlserver.cf.config)
  + [手動設定](#custom-setup-sqlserver.manual)
    + [請確定您擁有對稱加密 AWS KMS 金鑰](#custom-setup-sqlserver.cmk)
    + [手動建立 IAM 角色和執行個體設定檔](#custom-setup-sqlserver.iam)
      + [建立 AWSRDSCustomSQLServerInstanceRole IAM 角色](#custom-setup-sqlserver.iam.create-role)
      + [將存取政策新增至 AWSRDSCustomSQLServerInstanceRole](#custom-setup-sqlserver.iam.add-policy)
      + [建立您的 RDS Custom for SQL Server 執行個體設定檔](#custom-setup-sqlserver.iam.create-profile)
      + [將 AWSRDSCustomSQLServerInstanceRole 新增至您的 RDS Custom for SQL Server 執行個體設定檔](#custom-setup-sqlserver.iam.add-profile)
    + [手動設定您的 VPC](#custom-setup-sqlserver.vpc)
      + [設定您的 VPC 安全群組](#custom-setup-sqlserver.vpc.sg)
      + [設定相依的端點 AWS 服務](#custom-setup-sqlserver.vpc.endpoints)
      + [設定個體中繼資料服務](#custom-setup-sqlserver.vpc.imds)
+ [跨執行個體限制](#custom-setup-sqlserver.cross-instance-restriction)

**注意**  
如需逐步教學課程，了解如何設定必要條件和啟動 Amazon RDS Custom for SQL Server，請參閱[使用 CloudFormation 範本 (網路設定) 開始使用 Amazon RDS Custom for SQL Server](https://aws.amazon.com/blogs/database/get-started-with-amazon-rds-custom-for-sql-server-using-an-aws-cloudformation-template-network-setup/) 和[探索建立 Amazon RDS Custom for SQL Server 執行個體所需的必要條件](https://aws.amazon.com/blogs/database/explore-the-prerequisites-required-to-create-an-amazon-rds-custom-for-sql-server-instance/)。

## 設定 RDS Custom for SQL Server 的先決條件
<a name="custom-setup-sqlserver.review"></a>

建立 RDS Custom to SQL Server 資料庫執行個體之前，請確定您的環境符合本主題中所述的需求。您也可以使用 CloudFormation 範本在 中設定先決條件 AWS 帳戶。如需詳細資訊，請參閱[使用 設定 CloudFormation](#custom-setup-sqlserver.cf)

RDS Custom for SQL Server 需要您設定下列先決條件：
+ 設定建立執行個體所需的 AWS Identity and Access Management (IAM) 許可。這是向 RDS 提出 `create-db-instance` 請求所需的 AWS Identity and Access Management (IAM) 使用者或角色。
+ 設定 RDS Custom for SQL Server 資料庫執行個體所需的先決條件資源：
  + 設定 RDS Custom 執行個體加密所需的 AWS KMS 金鑰。RDS Custom 在建立執行個體以進行加密時，需要客戶受管金鑰。在建立 RDS Custom 資料庫執行個體的請求中，KMS 金鑰 ARN、ID、別名 ARN 或別名名稱會做為 `kms-key-id` 參數傳遞。
  + 設定 RDS Custom for SQL Server 資料庫執行個體內所需的許可。RDS Custom 會在建立時將執行個體設定檔連接至資料庫執行個體，並將其用於資料庫執行個體內的自動化。執行個體設定檔名稱在 RDS Custom 建立請求中設定為 `custom-iam-instance-profile`。您可以從 建立執行個體描述檔， AWS 管理主控台 或手動建立執行個體描述檔。如需詳細資訊，請參閱[使用 自動建立執行個體描述檔 AWS 管理主控台](#custom-setup-sqlserver.instanceProfileCreation)及[手動建立 IAM 角色和執行個體設定檔](#custom-setup-sqlserver.iam)。
  + 根據 RDS Custom for SQL Server 的要求設定聯網設定。RDS Custom 執行個體位於您在執行個體建立時提供的子網路 (使用資料庫子網路群組所設定) 中。這些子網路必須允許 RDS Custom 執行個體與 RDS 自動化所需的服務通訊。

**注意**  
對於上述要求，請確定沒有任何服務控制政策 (SCP) 限制帳戶層級許可。  
如果您正在使用的帳戶是 AWS 組織的一部分，則可能會有限制帳戶層級許可的服務控制政策 (SCP)。確保 SCP 不會限制您使用下列程序所建立使用者與角色上的許可。  
如需 SCP 的詳細資訊，請參閱《*AWS Organizations 使用者指南*》中的[服務控制政策 (SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)。使用 [describe-organization](https://docs.aws.amazon.com/cli/latest/reference/organizations/describe-organization.html) AWS CLI 命令來檢查您的帳戶是否為 AWS 組織的一部分。  
如需 AWS Organizations 的詳細資訊，請參閱*AWS Organizations 《 使用者指南*》中的[什麼是 AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)。

如需適用於 RDS Custom for SQL Server 的一般需求，請參閱 [RDS Custom for SQL Server 的一般需求](custom-reqs-limits-MS.md#custom-reqs-limits.reqsMS)。

### 使用 自動建立執行個體描述檔 AWS 管理主控台
<a name="custom-setup-sqlserver.instanceProfileCreation"></a>

RDS Custom 要求您建立及設定執行個體設定檔，以啟動任何 RDS Custom for SQL Server 資料庫執行個體。使用 AWS 管理主控台 在單一步驟中建立和連接新的執行個體描述檔。此選項可在**建立資料庫**、**還原快照**和**還原至時間點**主控台頁面的 RDS Custom 安全區段下使用。選擇**建立新的執行個體設定檔**，以提供執行個體設定檔名稱尾碼。 AWS 管理主控台 會建立新的執行個體描述檔，其具有 RDS Custom 自動化任務所需的許可。若要自動建立新的執行個體描述檔，您的登入 AWS 管理主控台 使用者必須具有 `iam:CreateInstanceProfile`、`iam:CreateRole`、 `iam:AddRoleToInstanceProfile`和 `iam:AttachRolePolicy`許可。

**注意**  
此選項僅能在 AWS 管理主控台中使用。如果您使用 CLI 或 SDK，請使用 RDS Custom 提供的 CloudFormation 範本，或手動建立執行個體設定檔。如需詳細資訊，請參閱[手動建立 IAM 角色和執行個體設定檔](#custom-setup-sqlserver.iam)。

## 步驟 1：將所需的許可授予您的 IAM 主體
<a name="custom-setup-sqlserver.iam-user"></a>

確定您具有足夠存取權可建立 RDS Custom 執行個體。使用主控台或 CLI 建立 RDS Custom for SQL Server 資料庫執行個體的 IAM 角色或 IAM 使用者 (稱為 *IAM 主體*) 必須具有下列任一政策，才能成功建立資料庫執行個體：
+ `AdministratorAccess` 政策
+ 具有下列額外許可的 `AmazonRDSFullAccess` 政策：

  ```
  iam:SimulatePrincipalPolicy
  cloudtrail:CreateTrail
  cloudtrail:StartLogging
  s3:CreateBucket
  s3:PutBucketPolicy
  s3:PutBucketObjectLockConfiguration
  s3:PutBucketVersioning 
  kms:CreateGrant
  kms:DescribeKey
  kms:Decrypt
  kms:ReEncryptFrom
  kms:ReEncryptTo
  kms:GenerateDataKeyWithoutPlaintext
  kms:GenerateDataKey
  ec2:DescribeImages
  ec2:RunInstances
  ec2:CreateTags
  ```

  RDS Custom 會在執行個體建立期間使用這些許可。這些許可會設定您帳戶中 RDS Custom 作業所需的資源。

  如需 `kms:CreateGrant` 許可的詳細資訊，請參閱 [AWS KMS key 管理](Overview.Encryption.Keys.md)。

以下範例 JSON 政策授予必要許可。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ValidateIamRole",
            "Effect": "Allow",
            "Action": "iam:SimulatePrincipalPolicy",
            "Resource": "*"
        },
        {
            "Sid": "CreateCloudTrail",
            "Effect": "Allow",
            "Action": [
                "cloudtrail:CreateTrail",
                "cloudtrail:StartLogging"
            ],
            "Resource": "arn:aws:cloudtrail:*:*:trail/do-not-delete-rds-custom-*"
        },
        {
            "Sid": "CreateS3Bucket",
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:PutBucketPolicy",
                "s3:PutBucketObjectLockConfiguration",
                "s3:PutBucketVersioning"
            ],
            "Resource": "arn:aws:s3:::do-not-delete-rds-custom-*"
        },
        {
            "Sid": "CreateKmsGrant",
            "Effect": "Allow",
            "Action": [
                "kms:CreateGrant",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        }
    ]
}
```

------

IAM 主體需要下列額外許可才能使用自訂引擎版本 (CEV)：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ConfigureKmsKeyEncryptionPermission",
            "Effect": "Allow",
            "Action": [
                "kms:CreateGrant",
                "kms:DescribeKey",
                "kms:Decrypt",
                "kms:ReEncryptFrom",
                "kms:ReEncryptTo",
                "kms:GenerateDataKeyWithoutPlaintext",
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/key_id"
        },
        {
            "Sid": "CreateEc2Instance",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeImages",
                "ec2:RunInstances",
                "ec2:CreateTags"
            ],
            "Resource": "*"
        }
    ]
}
```

------

將 *111122223333* 取代為您用來建立執行個體的帳戶 ID。將 *us-east-1* 取代 AWS 區域 為您用來建立執行個體的 。以客戶受管金鑰 ID 取代 *key\$1id*。您可以視需要新增多個金鑰。

如需啟動 EC2 執行個體所需資源層級許可的詳細資訊，請參閱[啟動執行個體 (RunInstances)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-runinstances)。

此外，IAM 主體在 IAM 角色上需要 `iam:PassRole` 許可。這必須連接到在請求中以 `custom-iam-instance-profile` 參數傳遞的執行個體，才能建立 RDS Custom 資料庫執行個體。稍後會在 [步驟 2：設定網路、執行個體設定檔及加密](#custom-setup-sqlserver.iam-vpc) 中建立執行個體設定檔及其連接的角色。

**注意**  
確保先前列出的許可不受服務控制政策 (SCP)、許可界限或與 IAM 主體相關聯之工作階段政策的限制。

## 步驟 2：設定網路、執行個體設定檔及加密
<a name="custom-setup-sqlserver.iam-vpc"></a>

您可以使用下列任一程序來設定 IAM 執行個體描述檔角色、虛擬私有雲端 AWS KMS (VPC) 和對稱加密金鑰：
+ [使用 設定 CloudFormation](#custom-setup-sqlserver.cf) (建議)
+ [手動設定](#custom-setup-sqlserver.manual)

**注意**  
如果您的帳戶屬於任何 AWS Organizations，請確定執行個體描述檔角色所需的許可不受服務控制政策 (SCPs限制。  
本主題中的網路組態能夠最有效地處理未供公開存取的資料庫執行個體。您無法從 VPC 外部直接與這些資料庫執行個體連線。

### 使用 設定 CloudFormation
<a name="custom-setup-sqlserver.cf"></a>

若要簡化設定，您可以使用 CloudFormation 範本檔案來建立 CloudFormation 堆疊。CloudFormation 範本會根據 RDS Custom 的要求建立所有聯網、執行個體設定檔和加密資源。

若要了解如何建立堆疊，請參閱*CloudFormation 《 使用者指南*》中的[在 CloudFormation 主控台上建立堆疊](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)。

如需如何使用 CloudFormation 範本啟動 Amazon RDS Custom for SQL Server 的教學課程，請參閱 *AWS 資料庫部落格*中的[使用 CloudFormation 範本開始使用 Amazon RDS Custom for SQL Server](https://aws.amazon.com/blogs/database/get-started-with-amazon-rds-custom-for-sql-server-using-an-aws-cloudformation-template-network-setup/)。

**Topics**
+ [CloudFormation 所需的參數](#custom-setup-sqlserver.cf.params)
+ [下載 CloudFormation 範本檔案](#custom-setup-sqlserver.cf.download)
+ [使用 CloudFormation 設定資源](#custom-setup-sqlserver.cf.config)

#### CloudFormation 所需的參數
<a name="custom-setup-sqlserver.cf.params"></a>

使用 CloudFormation 設定 RDS Custom 先決條件資源時，需要下列參數：

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-setup-sqlserver.html)

#### 由 CloudFormation 建立的資源
<a name="custom-setup-sqlserver.cf.list"></a>

使用預設設定成功建立 CloudFormation 堆疊會在您的 中建立下列資源 AWS 帳戶：
+ 對稱加密 KMS 金鑰，用於加密由 RDS Custom 管理的資料。
+ 執行個體設定檔透過 `AmazonRDSCustomInstanceProfileRolePolicy` 與 IAM 角色相關聯，以提供 RDS Custom 所需的許可。如需詳細資訊，請參閱《AWS 受管政策參考指南》**中的 [AmazonRDSCustomServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSCustomServiceRolePolicy.html)。
+ 具有指定為 CloudFormation 參數之 CIDR 範圍的 VPC。預設值為 `10.0.0.0/16`。
+ 兩個私有子網路，具有參數中指定的 CIDR 範圍，以及 AWS 區域中兩個不同的可用區域。子網路 CIDR 的預設值為 `10.0.128.0/20` 和 `10.0.144.0/20`。
+ 一個公有子網路，具有參數中所指定的 CIDR 範圍。子網路 CIDR 的預設值為 10.0.0.0/20。EC2 執行個體位於此子網路中，可用於連線至 RDS Custom 執行個體。
+ 為 VPC 設定的 DHCP 選項，其網域名稱會解析為 Amazon Domain Name System (DNS) 伺服器。
+ 與兩個私有子網路相關聯且無法存取網際網路的路由表。
+ 與公有子網路相關聯且可存取網際網路的路由表。
+ 與 VPC 相關聯的網際網路閘道，以允許網際網路存取公有子網路。
+ 網路存取控制清單 (ACL)，其與兩個私有子網路相關聯，且僅限存取 HTTPS 和 VPC 內的資料庫連接埠。
+ 與 RDS Custom 執行個體相關聯的 VPC 安全群組。傳出 HTTPS 存取僅限於 RDS Custom 和來自 EC2 執行個體安全群組的傳入資料庫連接埠所需的 AWS 服務 端點。
+ 要與公有子網路中的 EC2 執行個體關聯的 VPC 安全群組。傳出資料庫連接埠的存取權限制為 RDS Custom 執行個體安全群組。
+ 要與為 RDS Custom 所需端點建立的 VPC AWS 服務 端點相關聯的 VPC 安全群組。
+ 在其中建立 RDS Custom 執行個體的資料庫子網路群組。此範本所建立的兩個私有子網路會新增至資料庫子網路群組。
+ RDS Custom 所需的每個端點的 VPC AWS 服務 端點。

除了上述清單之外，將可用性組態設定為多可用區也會建立下列資源：
+ 網路 ACL 規則允許私有子網路之間的通訊。
+ 與 RDS Custom 執行個體相關聯之 VPC 安全群組內多可用區連接埠的傳入和傳出存取權。
+ VPC 端點至 AWS 服務端點 （多可用區域通訊所需）。

此外，設定 RDP 存取組態會建立下列資源：
+ 從來源 IP 位址設定公有子網路的 RDP 存取：
  + 允許 RDP 從您的來源 IP 連線至公有子網路的網路 ACL 規則。
  + 將 RDP 連接埠的存取權從來源 IP 傳入與 EC2 執行個體相關聯的 VPC 安全群組。
+ 設定從公有子網路中的 EC2 執行個體到私有子網路中 RDS 自訂執行個體的 RDP 存取：
  + 網路 ACL 規則允許從公有子網路到私有子網路的 RDP 連線。
  + 從與 EC2 執行個體相關聯的 VPC 安全群組到與 RDS 自訂執行個體相關聯的 VPC 安全群組，對 RDP 連接埠的傳入存取。

使用下列程序為 RDS Custom for SQL Server 建立 CloudFormation 堆疊。

#### 下載 CloudFormation 範本檔案
<a name="custom-setup-sqlserver.cf.download"></a>

**下載範本檔案**

1. 開啟連結 [custom-sqlserver-onboard.zip](samples/custom-sqlserver-onboard.zip) 的內容 (滑鼠右鍵) 功能表，然後選擇 **Save Link As** (另存連結為)。

1. 將檔案儲存並擷取到您的電腦。

#### 使用 CloudFormation 設定資源
<a name="custom-setup-sqlserver.cf.config"></a>

**使用 CloudFormation 設定資源**

1. 開啟位於 https：//[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) 的 CloudFormation 主控台。

1. 若要啟動「建立堆疊」精靈，請選擇 **Create Stack** (建立堆疊)。

   **Create stack** (建立堆疊) 頁面隨即出現。

1. 對於 **Prepare template** (準備範本)，請選擇 **Template is ready** (範本已準備就緒)。

1. 針對 **Specify template** 執行下列操作：

   1. 針對 **Template source** (範本來源)，選擇 **Upload a template file** (上傳範本檔案)。

   1. 針對**選擇檔案**，導覽至該處並選擇正確檔案。

1. 選擇**下一步**。

   **Specify stack details** (指定堆疊詳細資訊) 頁面隨即出現。

1. 針對**堆疊名稱** 輸入 **rds-custom-sqlserver**。

1. 對於 **Parameters** (參數)，請執行下列動作：

   1. 若要保留預設選項，請選擇 **Next** (下一步)。

   1. 若要變更選項，請選擇適當的可用性組態、聯網組態和 RDP 存取組態，然後選擇**下一步**。

      在變更參數之前，請先仔細閱讀每個參數的說明。
**注意**  
如果您選擇在此 CloudFormation 堆疊中建立至少一個多可用區執行個體，請確定將 CloudFormation 堆疊參數**選取先決條件設定的可用性組態**設定為 `Multi-AZ`。如果您將 CloudFormation 堆疊建立為單一可用區，請在建立第一個多可用區執行個體之前，將 CloudFormation 堆疊更新為多可用區組態。

1. 在 **Configure stack options** (設定堆疊選項) 頁面，選擇 **Next** (下一步)。

1. 在 **Review rds-custom-sqlserver** (檢閱 rds-custom-sqlserver) 頁面上，執行下列操作：

   1. 針對 **Capabilities (功能)**，選取 ****I acknowledge that CloudFormation might create IAM resources with custom names**** (確認可能使用自訂名稱建立 IAM 資源) 核取方塊。

   1. 選擇 **Create Stack** (建立堆疊)。

**注意**  
請勿直接從資源頁面更新從此 CloudFormation 堆疊建立的資源。這可防止您使用 CloudFormation 範本，將未來的更新套用至這些資源。

CloudFormation 會建立 RDS Custom for SQL Server 需要的資源。如果堆疊建立失敗，請詳讀 **Events** 索引標籤，查看哪些資源建立失敗及其狀態原因。

主控台中此 CloudFormation 堆疊的 **Outputs** (輸出) 索引標籤應有要作為用於建立 RDS Custom for SQL Server 資料庫執行個體的參數傳遞的所有資源相關資訊。務必使用由 CloudFormation for RDS Custom 資料庫執行個體建立的 VPC 安全群組與資料庫子網路群組。依預設，RDS 會嘗試連接預設的 VPC 安全群組，此群組可能沒有您需要的存取權。

如果您使用 CloudFormation 建立資源，則可以略過 [手動設定](#custom-setup-sqlserver.manual)。

#### 更新 CloudFormation 堆疊
<a name="custom-setup-sqlserver.cf.update"></a>

您也可以在建立後更新 CloudFormation 堆疊上的部分組態。可更新的組態包括：
+ RDS Custom for SQL Server 的可用性組態
  + **選取先決條件設定的可用性組態**：更新此參數，以在單一可用區與多可用區組態之間切換。如果您將此 CloudFormation 堆疊用於至少一個多可用區執行個體，則必須更新堆疊，以選擇多可用區組態。
+ RDS Custom for SQL Server 的 RDP 存取考量
  + 來源的 IPv4 CIDR 區塊：您可以透過更新此參數來更新來源的 IPv4 CIDR 區塊 (或 IP 位址範圍)。將此參數設為空白會將來源 CIDR 區塊的 RDP 存取組態移除為公有子網路。
  + 設定 RDP 存取 RDS Custom for SQL Server：啟用或停用從 EC2 執行個體到 RDS Custom for SQL Server 執行個體的 RDP 連線。

#### 刪除 CloudFormation 堆疊
<a name="custom-setup-sqlserver.cf.delete"></a>

您在刪除所有使用堆疊中資源的 RDS Custom 執行個體後，可以刪除 CloudFormation 堆疊。RDS Custom 不會追蹤 CloudFormation 堆疊，因此，當有使用堆疊資源的資料庫執行個體時，不會封鎖刪除堆疊。刪除堆疊時，請確定沒有使用堆疊資源的 RDS Custom 資料庫執行個體。

**注意**  
當您刪除 CloudFormation 堆疊時，由該堆疊建立的所有資源皆會遭到刪除，唯 KMS 金鑰除外。KMS 金鑰會進入 pending-deletion 狀態並在 30 天後刪除。若要保留 KMS 金鑰，請在 30 天的寬限期執行 [CancelKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_CancelKeyDeletion.html) 操作。

### 手動設定
<a name="custom-setup-sqlserver.manual"></a>

如果您選擇手動設定資源，請執行以下任務。

**注意**  
若要簡化設定，您可以使用 CloudFormation 範本檔案來建立 CloudFormation 堆疊，而不是手動組態。如需詳細資訊，請參閱[使用 設定 CloudFormation](#custom-setup-sqlserver.cf)。  
您也可以使用 AWS CLI 來完成本節。若是如此，請下載並安裝最新 CLI。

**Topics**
+ [請確定您擁有對稱加密 AWS KMS 金鑰](#custom-setup-sqlserver.cmk)
+ [手動建立 IAM 角色和執行個體設定檔](#custom-setup-sqlserver.iam)
+ [手動設定您的 VPC](#custom-setup-sqlserver.vpc)

#### 請確定您擁有對稱加密 AWS KMS 金鑰
<a name="custom-setup-sqlserver.cmk"></a>

RDS Custom AWS KMS key 需要對稱加密。建立 RDS Custom for SQL Server 資料庫執行個體時，必須提供 KMS 金鑰識別符做為參數 `kms-key-id`。如需詳細資訊，請參閱[建立並連線至 Amazon RDS Custom for SQL Server 的資料庫執行個體](custom-creating-sqlserver.md)。

您有下列選項：
+ 如果您的 中有現有的客戶受管 KMS 金鑰 AWS 帳戶，您可以搭配 RDS Custom 使用它。無需採取進一步動作。
+ 若您已為不同的 RDS Custom 引擎建立客戶受管對稱加密 KMS 金鑰，您可以重複使用相同的 KMS 金鑰。無需採取進一步動作。
+ 若您的帳戶中並無現有的客戶受管對稱加密 KMS 金鑰，請藉由遵循《AWS Key Management Service 開發人員指南》**中的[建立金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)來建立 KMS 金鑰。
+ 如果您要建立 CEV 或 RDS Custom 資料庫執行個體，且 KMS 金鑰位於不同的 中 AWS 帳戶，請務必使用 AWS CLI。您無法搭配跨帳戶 KMS 金鑰使用 AWS 主控台。

**重要**  
RDS Custom 不支援 AWS 受管 KMS 金鑰。

請確定您的對稱加密金鑰將 `kms:Decrypt`和 `kms:GenerateDataKey`操作的存取權授予 IAM 執行個體設定檔中的 AWS Identity and Access Management (IAM) 角色。若您的帳戶中有新的對稱加密金鑰，則不需要變更。否則，請確定對稱加密金鑰政策授予這些操作的存取權。

如需詳細資訊，請參閱[步驟 4：設定 RDS Custom for Oracle 的 IAM](custom-setup-orcl.md#custom-setup-orcl.iam-vpc)。

#### 手動建立 IAM 角色和執行個體設定檔
<a name="custom-setup-sqlserver.iam"></a>

您可以手動建立執行個體設定檔，並使用它來啟動 RDS Custom 執行個體。如果您打算在 中建立執行個體 AWS 管理主控台，請略過本節。 AWS 管理主控台 可讓您建立執行個體描述檔，並將其連接至 RDS Custom 資料庫執行個體。如需詳細資訊，請參閱[使用 自動建立執行個體描述檔 AWS 管理主控台](#custom-setup-sqlserver.instanceProfileCreation)。

當您手動建立執行個體設定檔時，請將執行個體設定檔名稱做為 `custom-iam-instance-profile` 參數傳遞至 CLI `create-db-instance` 命令。RDS Custom 會使用與此執行個體設定檔相關聯的角色來執行自動化，以管理執行個體。

**建立 RDS Custom for SQL Server 的 IAM 執行個體設定檔和 IAM 角色**

1. 建立名為 `AWSRDSCustomSQLServerInstanceRole` 的 IAM 角色，具有可讓 Amazon EC2 擔任此角色的信任政策。

1. 將 AWS 受管政策`AmazonRDSCustomInstanceProfileRolePolicy`新增至 `AWSRDSCustomSQLServerInstanceRole`。

1. 為 RDS Custom for SQL Server 建立名為 `AWSRDSCustomSQLServerInstanceProfile` 的 IAM 執行個體設定檔。

1. 將 `AWSRDSCustomSQLServerInstanceRole` 新增至執行個體設定檔。

##### 建立 AWSRDSCustomSQLServerInstanceRole IAM 角色
<a name="custom-setup-sqlserver.iam.create-role"></a>

下列範例會建立 `AWSRDSCustomSQLServerInstanceRole` 角色。信任政策可讓 Amazon EC2 擔任角色。

```
aws iam create-role \
    --role-name AWSRDSCustomSQLServerInstanceRole \
    --assume-role-policy-document '{
        "Version": "2012-10-17",		 	 	 
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                  "Service": "ec2.amazonaws.com"
              }
            }
          ]
        }'
```

##### 將存取政策新增至 AWSRDSCustomSQLServerInstanceRole
<a name="custom-setup-sqlserver.iam.add-policy"></a>

若要提供所需的許可，請將 AWS 受管政策連接至 `AmazonRDSCustomInstanceProfileRolePolicy` `AWSRDSCustomSQLServerInstanceRole`。 `AmazonRDSCustomInstanceProfileRolePolicy` 允許 RDS Custom 執行個體傳送和接收訊息，並執行各種自動化動作。

**注意**  
確定存取政策中的許可不受與執行個體設定檔角色相關聯的 SCP 或許可界限所限制。

下列範例會將 AWS 受管政策連接至`AmazonRDSCustomInstanceProfileRolePolicy``AWSRDSCustomSQLServerInstanceRole`角色。

```
aws iam attach-role-policy \
    --role-name AWSRDSCustomSQLServerInstanceRole \
    --policy-arn arn:aws:iam::aws:policy/AmazonRDSCustomInstanceProfileRolePolicy
```

##### 建立您的 RDS Custom for SQL Server 執行個體設定檔
<a name="custom-setup-sqlserver.iam.create-profile"></a>

執行個體設定檔是包含單一 IAM 角色的容器。RDS Custom 會使用執行個體設定檔，將角色傳遞到執行個體。

如果您使用 AWS 管理主控台 為 Amazon EC2 建立角色，主控台會自動建立執行個體描述檔，並在建立角色時為其提供與角色相同的名稱。如下所示建立您的執行個體設定檔，將它命名為 `AWSRDSCustomSQLServerInstanceProfile`。

```
aws iam create-instance-profile \
    --instance-profile-name AWSRDSCustomSQLServerInstanceProfile
```

##### 將 AWSRDSCustomSQLServerInstanceRole 新增至您的 RDS Custom for SQL Server 執行個體設定檔
<a name="custom-setup-sqlserver.iam.add-profile"></a>

將 `AWSRDSCustomInstanceRoleForRdsCustomInstance` 角色新增至先前建立的 `AWSRDSCustomSQLServerInstanceProfile` 設定檔。

```
aws iam add-role-to-instance-profile \
    --instance-profile-name AWSRDSCustomSQLServerInstanceProfile \
    --role-name AWSRDSCustomSQLServerInstanceRole
```

#### 手動設定您的 VPC
<a name="custom-setup-sqlserver.vpc"></a>

根據 Amazon VPC 服務，您的 RDS Custom 資料庫執行個體位於虛擬私有雲端 (VPC)，就像是 Amazon EC2 執行個體或 Amazon RDS 執行個體。您可以提供和設定您自己的 VPC。因此，您可以完全控制您的執行個體網絡設定。

RDS Custom 會將通訊從您的資料庫執行個體傳送到其他 AWS 服務。請確定可從您建立 RDS Custom 資料庫執行個體的子網路存取下列服務：
+ Amazon CloudWatch (`com.amazonaws.region.monitoring`)
+ Amazon CloudWatch Logs (`com.amazonaws.region.logs`)
+ Amazon CloudWatch Events (`com.amazonaws.region.events`)
+ Amazon EC2 (`com.amazonaws.region.ec2` 和 `com.amazonaws.region.ec2messages`)
+ Amazon S3 (`com.amazonaws.region.s3`)
+ AWS Secrets Manager (`com.amazonaws.region.secretsmanager`)
+ AWS Systems Manager (`com.amazonaws.region.ssm` 和 `com.amazonaws.region.ssmmessages`)

若建立多可用區域部署
+ Amazon Simple Queue Service (`com.amazonaws.region.sqs`)

如果 RDS Custom 無法與必要服務進行通訊，則會發佈下列事件：

```
Database instance in incompatible-network. SSM Agent connection not available. Amazon RDS can't connect to the dependent AWS services.
```

```
Database instance in incompatible-network. Amazon RDS can't connect to dependent AWS services. Make sure port 443 (HTTPS) allows outbound connections, and try again. "Failed to connect to the following services: s3 events"
```

若要避免`incompatible-network`錯誤，請確定涉及 RDS Custom 資料庫執行個體之間通訊的 VPC 元件，並 AWS 服務 滿足下列要求：
+ 資料庫執行個體會在連接埠 443 上對其他 AWS 服務進行傳出連線。
+ VPC 允許對來自您 RDS Custom 資料庫執行個體的請求進行傳入回應。
+ RDS Custom 可以正確解析每個 AWS 服務的端點網域名稱。

若您已經為不同的 RDS Custom 資料庫引擎設定 VPC，您可重複使用該 VPC 並略過此程序。

**Topics**
+ [設定您的 VPC 安全群組](#custom-setup-sqlserver.vpc.sg)
+ [設定相依的端點 AWS 服務](#custom-setup-sqlserver.vpc.endpoints)
+ [設定個體中繼資料服務](#custom-setup-sqlserver.vpc.imds)

##### 設定您的 VPC 安全群組
<a name="custom-setup-sqlserver.vpc.sg"></a>

*安全群組*會做為 VPC 執行個體的虛擬防火牆，控制傳入及傳出流量。RDS Custom 資料庫執行個體具有連接至其網路介面的安全群組，會保護執行個體。請確定您的安全群組允許 RDS Custom 與其他 AWS 服務 之間的流量通過 HTTPS。您可以在執行個體建立請求中，將此安全群組做為 `vpc-security-group-ids` 參數傳遞。

**若要設定 RDS Custom 的安全群組**

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

1. 允許 RDS Custom 使用預設安全群組，或建立您自己的安全群組。

   如需詳細說明，請參閱 [建立安全群組以存取在您的 VPC 中您的資料庫執行個體](CHAP_SettingUp.md#CHAP_SettingUp.SecurityGroup)。

1. 請確定您的安全群組允許連接埠 443 上的傳出連線。RDS Custom 需要此連接埠與相依 AWS 服務通訊。

1. 如果您具備私有 VPC 並使用 VPC 端點，請確定與資料庫執行個體相關聯的安全群組允許連接埠 443 上傳出至 VPC 端點的連線。此外還要確定與 VPC 端點相關聯的安全群組允許連接埠 443 上從資料庫執行個體傳入的連線。

   如果不允許傳入的連線，則 RDS Custom 執行個體無法連線到 AWS Systems Manager 和 Amazon EC2 端點。如需詳細資訊，請參閱《*AWS Systems Manager 使用者指南*》中的[建立 Virtual Private Cloud 端點](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-create-vpc.html)。

1. 對於 RDS Custom for SQL Server 多可用區域執行個體，請確定與資料庫執行個體相關聯的安全群組允許連接埠 1120 上對此安全群組本身的傳入和傳出連線。這對於多可用區域 RDS Custom for SQL Server 資料庫執行個體上的對等主機連線是必要的。

如需安全群組的詳細資訊，請參閱《*Amazon VPC 開發人員指南*》中的[您的 VPC 的安全群組](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)。

##### 設定相依的端點 AWS 服務
<a name="custom-setup-sqlserver.vpc.endpoints"></a>

建議您使用下列指示將每個服務的端點新增至 VPC。不過，您可以使用任何解決方案，讓您的 VPC 與服務 AWS 端點通訊。例如，您可以使用網路位址轉譯 (NAT) 或 AWS Direct Connect。

**設定用於 RDS Custom AWS 服務 的端點**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在導覽列上，使用區域選取器來選擇 AWS 區域。

1. 在導覽窗格中選擇**端點**。在主窗格中，選擇 **Create Endpoint (建立端點)**。

1. 對於 **Service category** (服務類別)，選擇 **AWS 服務**。

1. 針對 **Service Name (服務名稱)**，選擇表格中顯示的端點。

1. 在 **VPC** 中，選擇您的 VPC。

1. 在 **Subnets (子網路)** 中，請從每個可用區域選擇要包含的子網路。

   VPC 端點可以跨越多個可用區域。 會為您選擇的每個子網路中的 VPC 端點 AWS 建立彈性網路介面。每個網路界面具有網域名稱系統 (DNS) 主機名稱和私有 IP 地址。

1. 針對 **Security group (安全群組)**，選擇或建立安全群組。

   您可以使用安全群組來控制對端點的存取，就像使用防火牆一樣。請確定安全群組允許連接埠 443 上從資料庫執行個體傳入的連線。如需安全群組的詳細資訊，請參閱《Amazon VPC 使用者指南》**中的 [VPC 的安全群組](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)。

1. 或者，您可以將政策連接至 VPC 端點。端點政策可以控制對您要連線之 AWS 服務 的存取。預設政策允許所有請求通過端點。如果您使用的是自訂政策，請確定該政策中允許來自資料庫執行個體的請求。

1. 選擇**建立端點**。

下表說明如何尋找您的 VPC 傳出通訊所需的端點清單。


| 服務 | 端點格式 | 備註和連結 | 
| --- | --- | --- | 
|  AWS Systems Manager  |  使用下列端點格式： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-setup-sqlserver.html)  |  如需每個區域的端點清單，請參閱 *Amazon Web Services 一般參考* 中的 [AWS Systems Manager 端點和配額](https://docs.aws.amazon.com/general/latest/gr/ssm.html)。  | 
|  AWS Secrets Manager  |  使用端點格式 `secretsmanager.region.amazonaws.com`。  |  如需每個區域的端點清單，請參閱 *Amazon Web Services 一般參考* 中的 [AWS Secrets Manager 端點和配額](https://docs.aws.amazon.com/general/latest/gr/asm.html)。  | 
|  Amazon CloudWatch  |  使用下列端點格式： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-setup-sqlserver.html)  | 如需每個區域中的端點清單，請參閱：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-setup-sqlserver.html) | 
|  Amazon EC2  |  使用下列端點格式： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-setup-sqlserver.html)  |  如需每個區域中的端點清單，請參閱 *Amazon Web Services 一般參考* 中的 [Amazon Elastic Compute Cloud 端點和配額](https://docs.aws.amazon.com/general/latest/gr/ec2-service.html)。  | 
|  Amazon S3  |  使用端點格式 `s3.region.amazonaws.com`。  |  如需每個區域中的端點清單，請參閱 *Amazon Web Services 一般參考* 中的 [Amazon Simple Storage Service 端點和配額](https://docs.aws.amazon.com/general/latest/gr/s3.html)。 若要進一步了解 Amazon S3 的閘道端點，請參閱《*Amazon VPC 開發人員指南*》中的 [Amazon S3 的端點](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html)。 若要了解如何建立存取點，請參閱《*Amazon VPC 開發人員指南*》中的[建立存取點](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/access-points-create-ap.html)。 若要瞭解如何為 Amazon S3 建立閘道端點，請參閱[閘道 VPC 端點](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-gateway.html)。  | 
|  Amazon Simple Queue Service  | 使用端點格式 sqs.region.amazonaws.com | 如需每個區域中的端點清單，請參閱 [Amazon Simple Queue Service 端點和配額](https://docs.aws.amazon.com/general/latest/gr/sqs-service.html)。 | 

##### 設定個體中繼資料服務
<a name="custom-setup-sqlserver.vpc.imds"></a>

請確定您的執行個體可以執行下列操作：
+ 使用執行個體中繼資料服務版本 2 (IMDSv2) 存取執行個體中繼資料服務。
+ 允許透過連接埠 80 (HTTP) 與 IMDS 連結 IP 地址進行傳出通訊。
+ 從 `http://169.254.169.254` (IMDSv2 連結) 要求執行個體中繼資料。

如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的[使用 IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)。

## 跨執行個體限制
<a name="custom-setup-sqlserver.cross-instance-restriction"></a>

當您依照上述步驟建立執行個體描述檔時，它會使用 AWS 受管政策`AmazonRDSCustomInstanceProfileRolePolicy`向 RDS Custom 提供必要的許可，以允許執行個體管理和監控自動化。受管政策可確保許可僅允許存取 RDS Custom 執行自動化所需的資源。建議您使用受管政策來支援新功能並解決安全需求，這些要求會自動套用至現有的執行個體設定檔，而無需手動介入。如需詳細資訊，請參閱 [ 受管政策：AmazonRDSCustomInstanceProfileRolePolicy](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-security-iam-awsmanpol.html#rds-security-iam-awsmanpol-AmazonRDSCustomInstanceProfileRolePolicy)。

`AmazonRDSCustomInstanceProfileRolePolicy` 受管政策限制執行個體設定檔具有跨帳戶存取權，但可能允許存取相同帳戶中跨 RDS Custom 執行個體的一些 RDS Custom 受管資源。根據您的需求，您可以使用許可界限來進一步限制跨執行個體存取。許可界限會定義身分型政策可授予實體的最大許可，但不會自行授予許可。如需詳細資訊，請參閱[使用邊界評估有效許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html#access_policies_boundaries-eval-logic)。

例如，下列邊界政策會限制執行個體描述檔角色存取特定 AWS KMS 金鑰，並限制跨使用不同 AWS KMS 金鑰的執行個體存取 RDS Custom 受管資源。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyOtherKmsKeyAccess",
            "Effect": "Deny",
            "Action": "kms:*",
            "NotResource": "arn:aws:kms:us-east-1:111122223333:key/KMS_key_ID"
        }
    ]
}
```

------

**注意**  
請確定許可界限不會封鎖 `AmazonRDSCustomInstanceProfileRolePolicy` 授予 RDS Custom 的任何許可。

# 透過 RDS Custom for SQL Server 使用自有媒體
<a name="custom-sqlserver.byom"></a>

RDS Custom for SQL Server 支援兩種授權模式：已包含授權 (LI) 和使用自有媒體 (BYOM)。

**透過 BYOM，您可以執行下列操作：**

1. 在 an AWS EC2 Windows AMI 上使用支援的累積更新 (CU) 提供並安裝您自己的 Microsoft SQL Server 二進位檔。

1. 將 AMI 另存為黃金映像，可將其用於建立自訂引擎版本 (CEV) 的範本。

1. 從您的黃金映像建立 CEV。

1. 使用 CEV 建立新的 RDS Custom for SQL Server 資料庫執行個體。

然後，Amazon RDS 會為您管理您的資料庫執行個體。

**注意**  
如果您也有 SQL Server 資料庫執行個體的已包含授權 (LI) RDS Custom，則無法將此資料庫執行個體中的 SQL Server 軟體與 BYOM 搭配使用。您必須對 BYOM 提供自己的 SQL Server 二進位檔案。

## RDS Custom for SQL Server 的 BYOM 要求
<a name="custom-sqlserver.byom.requirements"></a>

適用於 RDS Custom for SQL Server 引擎版本的相同一般需求也適用於 BYOM。如需詳細資訊，請參閱[RDS Custom for SQL Server CEV 的要求](custom-cev-sqlserver.preparing.md#custom-cev-sqlserver.preparing.Requirements)。

使用 BYOM 時，請務必滿足下列額外要求：
+ 使用下列其中一個支援的版本：SQL Server 2022 或 2019 Enterprise、Standard 或 Developer 版本。
+ 將 SQL Server 系統管理員 (SA) 伺服器角色權限授予 `NT AUTHORITY\SYSTEM`。
+ 開啟 TCP 埠 1433 和 UDP 連接埠 1434 以允許 SSM 連線。

## RDS Custom for SQL Server 的限制
<a name="custom-sqlserver.byom.limitations"></a>

適用於 RDS Custom for SQL Server 的相同一般限制也適用於 BYOM。如需詳細資訊，請參閱[Amazon RDS Custom for SQL Server 的需求和限制](custom-reqs-limits-MS.md)。

使用 BYOM 時，適用下列額外限制：
+ 僅支援預設 SQL Server 執行個體 (MSSQLSERVER)。不支援具名的 SQL Server 執行個體。RDS Custom for SQL Server 只會偵測並監控預設 SQL Server 執行個體。
+ 每個 AMI 僅支援安裝一次 SQL Server。不支援不同 SQL Server 版本的多重安裝。
+ BYOM 不支援 SQL Server 網頁版本。
+ BYOM 不支援 SQL Server 版本的評估版本。當您安裝 SQL Server 時，請勿選擇使用試用版本的核取方塊。
+ 功能可用性和支援會因每個資料庫引擎的特定版本以及 AWS 區域而有所不同。如需詳細資訊，請參閱[RDS Custom for SQL Server CEV 的區域可用性](custom-cev-sqlserver.preparing.md#custom-cev-sqlserver.preparing.RegionVersionAvailability)及[RDS Custom for SQL Server CEV 的版本支援](custom-cev-sqlserver.preparing.md#custom-cev-sqlserver.preparing.VersionSupport)。

## 使用 BYOM 建立 RDS Custom for SQL Server 資料庫執行個體
<a name="custom-sqlserver.byom.creating"></a>

若要使用 BYOM 準備和建立 RDS Custom for SQL Server 資料庫執行個體，請參閱 [使用自有媒體 (BYOM) 準備 CEV](custom-cev-sqlserver.preparing.md#custom-cev-sqlserver.preparing.byom)。

# 使用 RDS Custom for SQL Server 的自訂引擎版本
<a name="custom-cev-sqlserver"></a>

RDS Custom for SQL Server 的*自訂引擎版本 (AMI)* 是包含 Microsoft SQL Server 的 Amazon Machine Image (AMI)。

**CEV 工作流程的基本步驟如下：**

1. 選擇要用作 CEV 基礎映像的 an AWS EC2 Windows AMI。您可以選擇使用預先安裝型 Microsoft SQL Server 或使用自有媒體來安裝 SQL Server。

1. 在作業系統 (OS) 上安裝其他軟體，並自訂作業系統和 SQL Server 的組態，以符合您的企業需求。

1. 將 AMI 儲存為黃金映像

1. 從您的黃金映像建立自訂引擎版本 (CEV)。

1. 使用 CEV 建立新的 RDS Custom for SQL Server 資料庫執行個體。

然後，Amazon RDS 會為您管理這些資料庫執行個體。

CEV 可讓您維護作業系統和資料庫的偏好基準組態。使用 CEV 可確保主機組態 (例如任何第三方代理程式安裝或其他作業系統自訂) 會保存在 RDS Custom for SQL Server 資料庫執行個體上。有了 CEV，您可以使用相同組態快速部署 RDS Custom for SQL Server 資料庫執行個體的機群。

**Topics**
+ [準備建立 RDS Custom for SQL Server 的 CEV](custom-cev-sqlserver.preparing.md)
+ [建立 RDS Custom for SQL Server 的 CEV](custom-cev-sqlserver.create.md)
+ [修改 RDS Custom for SQL Server 的 CEV](custom-cev-sqlserver-modifying.md)
+ [檢視 Amazon RDS Custom for SQL Server 的 CEV 詳細資訊](custom-viewing-sqlserver.md)
+ [刪除 RDS Custom for SQL Server 的 CEV](custom-cev-sqlserver-deleting.md)

# 準備建立 RDS Custom for SQL Server 的 CEV
<a name="custom-cev-sqlserver.preparing"></a>

您可以使用 Amazon Machine Image (AMI)建立 CEV，該映像含有預先安裝的已包含授權 (LI) Microsoft SQL Server，或者使用安裝了自有 SQL Server 安裝媒體 (BYOM) 的 AMI。

## 準備 CEV
<a name="custom-cev-sqlserver.preparing.types"></a>

使用下列程序，使用自有媒體 (BYOM) 或預先安裝的 Microsoft SQL Server (LI) 來建立 CEV。

### 使用自有媒體 (BYOM) 準備 CEV
<a name="custom-cev-sqlserver.preparing.byom"></a>

下列步驟使用具有 **Windows Server 2019 Base** 的 AMI 做為範例。

**若要使用 BYOM 建立 CEV**

1. 在 Amazon EC2 主控台上，選擇**啟動執行個體**。

1. 在**名稱**中，輸入執行個體的名稱。

1. 在 [快速入門] 下，選擇 **Windows**。

1. 選擇 **Microsoft Windows Server 2019 Base**。

1. 選擇適當的執行個體類型、金鑰對、網路和儲存體設定，然後啟動執行個體。

1. 啟動或建立 EC2 執行個體之後，請確定從步驟 4 中選取正確的 Windows AMI：

   1. 在 Amazon EC2 主控台中選取 EC2 執行個體。

   1. 在**詳細資訊**區段中，檢查**使用操作**，確認其設定為 **RunInstances:0002**。  
![\[針對 BYOM 使用 RunInstances:0002 的 Windows AMI。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/cev-sqlserver-byom-ec2runinstances.png)

1. 登入 EC2 執行個體，然後將 SQL Server 安裝媒體複製到該執行個體。
**注意**  
如果您使用 SQL Server Developer 版本建置 CEV，您可能需要使用 [Microsoft Visual Studio 訂閱](https://my.visualstudio.com/Downloads?q=sqlserver%20developer)取得安裝媒體。

1. 安裝 SQL Server。請確定執行下列操作：

   1. 檢閱 [RDS Custom for SQL Server 的 BYOM 要求](custom-sqlserver.byom.md#custom-sqlserver.byom.requirements) 和 [RDS Custom for SQL Server CEV 的版本支援](#custom-cev-sqlserver.preparing.VersionSupport)。

   1. 將執行個體根目錄設定為預設值 `C:\Program Files\Microsoft SQL Server\`。請勿變更此目錄。

   1. 將 SQL Server 資料庫引擎帳戶名稱設定為 `NT Service\MSSQLSERVER` 或 `NT AUTHORITY\NETWORK SERVICE`。

   1. 將 SQL Server 啟動模式設定為**手動**。

   1. 將 SQL Server 驗證模式選擇為**混合**。

   1. 保留預設資料目錄和 TempDB 位置的現有設定。

1. 將 SQL Server系統管理員 (SA) 伺服器角色權限授予 `NT AUTHORITY\SYSTEM`：

   ```
   1. USE [master]
   2. GO
   3. EXEC master..sp_addsrvrolemember @loginame = N'NT AUTHORITY\SYSTEM' , @rolename = N'sysadmin'
   4. GO
   ```

1. 安裝其他軟體或自訂作業系統和資料庫組態以符合您的需求。

1. 在 EC2 執行個體上執行 Sysprep。如需詳細資訊，請參閱[使用 Windows Sysprep 建立 Amazon EC2 AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-create-win-sysprep.html)。

1. 儲存含有已安裝 SQL Server 版本、其他軟體和自訂項目的 AMI。這將是你的黃金映像。

1. 透過提供您所建立映像的 AMI ID 來建立新的 CEV。如需詳細步驟，請參閱[建立 RDS Custom for SQL Server 的 CEV](custom-cev-sqlserver.create.md)。

1. 使用 CEV 建立新的 RDS Custom for SQL Server 資料庫執行個體。如需詳細步驟，請參閱[從 CEV 建立 RDS Custom for SQL Server 資料庫執行個體](custom-cev-sqlserver.create.md#custom-cev-sqlserver.create.newdbinstance)。

### 使用預先安裝型 SQL Server (LI) 準備 CEV
<a name="custom-cev-sqlserver.preparing.licenseincluded"></a>

下列步驟使用預先安裝了 Microsoft SQL Server（LI）的 AMI 建立 CEV，並以使用 **SQL Server CU20** (版本號碼 `2023.05.10`) 的 AMI 作為範例。建立 CEV 時，請選擇具有最新版本號碼的 AMI。如此可確保您使用受支援的 Windows Server 和 SQL Server 版本，以及最新的累積更新 (CU)。

**使用預先安裝型 Microsoft SQL Server (LI) 建立 CEV 的方法如下**

1. 選擇最新的可用 AWS EC2 Windows Amazon Machine Image (AMI)，其中包含授權 (LI) Microsoft Windows Server 和 SQL Server。

   1. 在 [Windows AMI 版本歷史記錄](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-windows-ami-version-history.html)內搜尋 **CU20**。

   1. 請記下版本編號。對於 SQL Server 2019 CU20，版本編號為 `2023.05.10`。  
![\[SQL Server 2019 CU20 的 AMI 版本歷史記錄結果。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/rds_custom_sqlserver_cev_find_ami_history_li_cu20.png)

   1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

   1. 在 Amazon EC2 主控台的左導覽窗格中，選擇 **Images** (映像)，然後選擇 **AMIs**。

   1. 選擇**公有映像**。

   1. 將 `2023.05.10` 輸入搜尋方塊中。會出現 AMI 清單。

   1. 將 `Windows_Server-2019-English-Full-SQL_2019` 輸入搜尋方塊中以篩選結果。下列結果應該出現。  
![\[使用 SQL Server 2019 CU20 的受支援 AMI。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/rds_custom_sqlserver_cev_find_ami_li_cu.png)

   1. 選擇具有您要使用之 SQL Server 版本的 AMI。

1. 從您選擇的 AMI 建立或啟動 EC2 執行個體。

1. 登入 EC2 執行個體並安裝其他軟體，或自訂作業系統和資料庫組態以符合您的需求。

1. 在 EC2 執行個體上執行 Sysprep。如需使用 Sysprep 準備 AMI 的詳細資訊，請參閱[使用 Sysprep 建立標準化 Amazon Machine Image (AMI)](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Creating_EBSbacked_WinAMI.html#sysprep-using-ec2launchv2)。

1. 儲存含有已安裝 SQL Server 版本、其他軟體和自訂項目的 AMI。這將是你的黃金映像。

1. 透過提供您所建立映像的 AMI ID 來建立新的 CEV。如需建立 CEV 的詳細步驟，請參閱 [建立 RDS Custom for SQL Server 的 CEV](custom-cev-sqlserver.create.md)。

1. 使用 CEV 建立新的 RDS Custom for SQL Server 資料庫執行個體。如需詳細步驟，請參閱[從 CEV 建立 RDS Custom for SQL Server 資料庫執行個體](custom-cev-sqlserver.create.md#custom-cev-sqlserver.create.newdbinstance)。

## RDS Custom for SQL Server CEV 的區域可用性
<a name="custom-cev-sqlserver.preparing.RegionVersionAvailability"></a>

下列提供 RDS Custom for SQL Server 的自訂引擎版本 (CEV) 支援 AWS 區域：
+ 美國東部 (俄亥俄)
+ 美國東部 (維吉尼亞北部)
+ 美國西部 (奧勒岡)
+ 美國西部 (加利佛尼亞北部)
+ 亞太地區 (孟買)
+ 亞太區域 (大阪)
+ 亞太區域 (首爾)
+ 亞太區域 (新加坡)
+ 亞太地區 (雪梨)
+ 亞太區域 (東京)
+ 加拿大 (中部)
+ 歐洲 (法蘭克福)
+ 歐洲 (愛爾蘭)
+ 歐洲 (倫敦)
+ 歐洲 (巴黎)
+ 歐洲 (斯德哥爾摩)
+ 南美洲 (聖保羅)

## RDS Custom for SQL Server CEV 的版本支援
<a name="custom-cev-sqlserver.preparing.VersionSupport"></a>

下列 AWS EC2 Windows AMIs 支援建立 RDS Custom for SQL Server 的 CEV：
+ 對於使用預先安裝媒體CEVs， AWS EC2 Windows AMIs 包含授權 (LI) Microsoft Windows Server 2019 (OS) 和 SQL Server 2022 或 2019
+ 對於使用自帶媒體 (BYOM) 的 CEVs， AWS EC2 Windows AMIs搭配 Microsoft Windows Server 2019 (OS)

下列作業系統和資料庫版本支援 RDS Custom for SQL Server 的 CEV 建立程序：
+ 對於使用預先安裝媒體的 CEV：
  + SQL Server 2022 Enterprise、Standard 或 Web，搭配 CU9, CU13, CU14-GDR, CU15-GDR, CU16, CU17, CU18, CU19, CU19-GDR, CU20-GDR, CU21-GDR, CU22和 CU22-GDR。
  + SQL Server 2019 Enterprise、Standard 或 Web，搭配 CU8、CU17、CU18、CU20、CU24、CU26、CU28-GDR、CU29-GDR、CU30、CU32 和 CU32-GDR。
+ 對於使用自有媒體 (BYOM) 的 CEV：
  + SQL Server 2022 Enterprise、Standard 或 Developer，搭配 CU9, CU13, CU14-GDR, CU15-GDR, CU16, CU17, CU18, CU19, CU19-GDR, CU20-GDR, CU21-GDR, CU22和 CU22-GDR。
  + SQL Server 2019 Enterprise、Standard 或 Developer，搭配 CU8, CU17, CU18, CU20, CU24, CU26, CU28-GDR, CU29-GDR, CU30, CU32和 CU32-GDR。
+ 對於使用預先安裝媒體或自有媒體 (BYOM) 的 CEV，Windows Server 2019 是唯一支援的作業系統

如需詳細資訊，請參閱 [AWS Windows AMI 版本歷史記錄](https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/ec2-windows-ami-version-history.html)。

## RDS Custom for SQL Server CEV 的要求
<a name="custom-cev-sqlserver.preparing.Requirements"></a>

下列需求適用於建立 RDS for RDS Custom for SQL 的 CEV：
+ 用來建立 CEV 的 AMI 必須以 RDS Custom for SQL Server 所支援的作業系統和資料庫組態為基礎。如需所支援組態的詳細資訊，請參閱 [Amazon RDS Custom for SQL Server 的需求和限制](custom-reqs-limits-MS.md)。
+ CEV 必須具有唯一名稱。您無法建立與現有 CEV 同名的 CEV。
+ 您必須使用 SQL Server *主要版本 \$1 次要版本 \$1 自訂字串*的命名模式來命名 CEV。*主要版本 \$1 次要版本*必須符合 AMI 隨附的 SQL Server 版本。例如，您可以將具有 SQL Server 2019 CU17 的 AMI 命名為 **15.00.4249.2.my\$1cevtest**。
+ 您必須使用 Sysprep 準備 AMI。如需使用 Sysprep 準備 AMI 的詳細資訊，請參閱[使用 Sysprep 建立標準化 Amazon Machine Image (AMI)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-create-win-sysprep.html)。
+ 您負責維護 AMI 的生命週期。從 CEV 建立的 RDS Custom for SQL Server 資料庫執行個體不會存放 AMI 的複本。它會維護一個指標，指向您用來建立 CEV 的 AMI。AMI 必須存在，RDS Custom for SQL Server 資料庫執行個體才能保持可操作狀態。

## RDS Custom for SQL Server CEV 的限制
<a name="custom-cev-sqlserver.preparing.Limitations"></a>

下列限制適用於具有 RDS Custom for SQL Server 的自訂引擎版本：
+ 若有資源 (例如資料庫執行個體或資料庫快照) 與 CEV 相關聯，則無法刪除該 CEV。
+ 若要建立 RDS Custom for SQL Server 資料庫執行個體，CEV 必須具有 `pending-validation`、`available`、`failed` 或 `validating` 的狀態。如果 CEV 狀態為 `incompatible-image-configuration`，則無法使用 CEV 建立 RDS Custom for SQL Server 資料庫執行個體。
+ 若要修改 RDS Custom for SQL Server 資料庫執行個體，以使用新的 CEV，CEV 必須具有 `available` 的狀態。
+ 無法從現有 RDS Custom for SQL Server 資料庫執行個體建立 AMI 或 CEV。
+ 您無法修改現有 CEV 以使用不同的 AMI。不過，您可以修改 RDS Custom for SQL Server 資料庫執行個體，以使用不同的 CEV。如需詳細資訊，請參閱[修改 RDS Custom for SQL Server 資料庫執行個體](custom-managing.modify-sqlserver.md)。
+ 不支援使用與資料庫執行個體建立期間提供的 KMS 金鑰不同的客戶受管 KMS 金鑰來加密 AMI 或 CEV。
+ 不支援 CEV 的跨區域複本。
+ 不支援 CEV 的跨帳戶複本。
+ CEV 刪除後就無法還原或復原。不過，您可以從相同 AMI 建立新的 CEV。
+ RDS Custom for SQL Server 資料庫執行個體會將您的 SQL Server 資料庫檔案存放在 *D:\$1* 磁碟機中。與 CEV 相關聯的 AMI 應該將 Microsoft SQL Server 系統資料庫檔案儲存放在 *C:\$1* 磁碟機中。
+ RDS Custom for SQL Server 資料庫執行個體會保留您對 SQL Server 所做的組態變更。不會保留對執行中 RDS Custom for SQL Server 資料庫執行個體 (從 CEV 建立) 上作業系統所做的任何組態變更。如果您需要對作業系統進行永久組態變更，並將其保留為新的基準組態，請建立新 CEV 並修改資料庫執行個體以使用新的 CEV。
**重要**  
修改 RDS Custom for SQL Server 資料庫執行個體以使用新的 CEV，這是離線操作。您可以立即執行修改，或排程在每週維護時段期間進行修改。
+ 修改 CEV 後，Amazon RDS 不會將這些修改推送到任何相關聯的 RDS Custom for SQL Server 資料庫執行個體。您必須修改每個 RDS Custom for SQL Server 資料庫執行個體，才能使用新的或更新的 CEV。如需詳細資訊，請參閱[修改 RDS Custom for SQL Server 資料庫執行個體](custom-managing.modify-sqlserver.md)。
+ 
**重要**  
如果刪除 CEV 使用的 AMI，則可能需要進行主機取代的任何修改 (例如擴展運算) 都將失敗。然後，RDS Custom for SQL Server 資料庫執行個體會放置在 RDS 支援周邊之外。我們建議您避免刪除與 CEV 相關聯的任何 AMI。

# 建立 RDS Custom for SQL Server 的 CEV
<a name="custom-cev-sqlserver.create"></a>

您可以使用 AWS 管理主控台 或 AWS CLI 建立自訂引擎版本 (CEV)。然後，您可以使用 CEV 建立 RDS Custom for SQL Server 資料庫執行個體。

請確定 Amazon Machine Image (AMI) 位於與 CEV 相同的 AWS 帳戶和區域中。否則，建立 CEV 的程序會失敗。

如需更多詳細資訊，請參閱 [建立並連線至 Amazon RDS Custom for SQL Server 的資料庫執行個體](custom-creating-sqlserver.md)。

**重要**  
對於使用預先安裝型 SQL Server 建立的 AMI 與使用自有媒體 (BYOM) 建立的 AMI，兩者建立 CEV 的步驟皆為相同。

## 主控台
<a name="custom-cev-sqlserver.create.console"></a>

**若要建立 CEV**

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

1. 在導覽窗格中，選擇 **Custom engine versions** (自訂引擎版本)。

   **Custom engine versions** (自訂引擎版本) 頁面會顯示目前存在的所有 CEV。如果您尚未建立任何 CEV，則資料表為空白。

1. 選擇 **Create custom engine version** (建立自訂引擎版本)。

1. 針對 **Engine type** (引擎類型) 中，選擇 **Microsoft SQL Server**。

1. 針對**版本**，選擇您想要使用的資料庫引擎版本。

1. 針對 **Major version** (主要版本)，選擇您 AMI 上安裝的主要引擎版本。

1. 在 **Version details** (版本詳細資訊) 的 **Custom engine version name** (自訂引擎版本名稱) 中輸入有效名稱。

   名稱格式為 `major-engine-version.minor-engine-version.customized_string`。您可以使用 1–50 個英數字元、字元、底線、破折號和句點。例如，您輸入名稱 **15.00.4249.2.my\$1cevtest**。

   選擇性輸入 CEV 的描述。

1. 針對 **Installation Media** (安裝媒體)，瀏覽或輸入您要從中建立 CEV 的 AMI ID。

1. 在 **Tags** (標籤) 區段中，新增任何標籤以識別 CEV。

1. 選擇 **Create custom engine version** (建立自訂引擎版本)。

**Custom engine versions** (自訂引擎版本) 頁面隨即出現。即會顯示您的 CEV，狀態為 **pending-validation**

## AWS CLI
<a name="custom-cev-sqlserver.create.CEV"></a>

若要使用 AWS CLI 建立 CEV，請執行 [create-custom-db-engine-version](https://docs.aws.amazon.com/cli/latest/reference/rds/create-custom-db-engine-version.html) 命令。

下列選項是必要的：
+ `--engine`
+ `--engine-version`
+ `--image-id`

您還可以指定下列選項：
+ `--description`
+ `--region`
+ `--tags`

以下範例會建立名為 `15.00.4249.2.my_cevtest` 的 CEV。請確保 CEV 的名稱以主要引擎版本號碼為開頭。

**Example**  
對於 Linux、macOS 或 Unix：  

```
1. aws rds create-custom-db-engine-version \
2.     --engine custom-sqlserver-ee \
3.     --engine-version 15.00.4249.2.my_cevtest \
4.     --image-id ami-0r93cx31t5r596482 \                    
5.     --description "Custom SQL Server EE 15.00.4249.2 cev test"
```
下列部分輸出顯示引擎、參數群組及其他資訊。  

```
 1. "DBEngineVersions": [
 2.     {
 3.     "Engine": "custom-sqlserver-ee",
 4.     "MajorEngineVersion": "15.00",
 5.     "EngineVersion": "15.00.4249.2.my_cevtest",
 6.     "DBEngineDescription": "Microsoft SQL Server Enterprise Edition for RDS Custom for SQL Server",
 7.     "DBEngineVersionArn": "arn:aws:rds:us-east-1:<my-account-id>:cev:custom-sqlserver-ee/15.00.4249.2.my_cevtest/a1234a1-123c-12rd-bre1-1234567890",
 8.     "DBEngineVersionDescription": "Custom SQL Server EE 15.00.4249.2 cev test",
 9.                                                       
10.     "Image": [
11.         "ImageId": "ami-0r93cx31t5r596482",
12.         "Status": "pending-validation"
13.      ],
14.     "CreateTime": "2022-11-20T19:30:01.831000+00:00",
15.     "SupportsLogExportsToCloudwatchLogs": false,
16.     "SupportsReadReplica": false,
17.     "Status": "pending-validation",
18.     "SupportsParallelQuery": false,
19.     "SupportsGlobalDatabases": false,
20.     "TagList": []
21.     }
22. ]
```

如果建立 CEV 的程序失敗，RDS Custom for SQL Server 會發出 `RDS-EVENT-0198`，訊息為 `Creation failed for custom engine version major-engine-version.cev_name`。該訊息包含有關故障的詳細資訊，例如事件列印遺失的檔案。若要尋找 CEV 建立問題的疑難排解想法，請參閱 [針對 RDS Custom for SQL Server 的 CEV 錯誤進行疑難排解](custom-troubleshooting-sqlserver.md#custom-troubleshooting-sqlserver.cev)。

## 從 CEV 建立 RDS Custom for SQL Server 資料庫執行個體
<a name="custom-cev-sqlserver.create.newdbinstance"></a>

成功建立 CEV 後，**CEV status** (CEV 狀態) 會顯示 `pending-validation`。您現在可以使用 CEV 建立新的 RDS Custom for SQL Server 資料庫執行個體。若要從 CEV 建立新的 RDS Custom for SQL Server 資料庫執行個體，請參閱 [建立 RDS Custom for SQL Server 資料庫執行個體](custom-creating-sqlserver.md#custom-creating-sqlserver.create)。

## CEV 的生命週期
<a name="custom-cev-sqlserver.create.lifecycle"></a>

CEV 生命週期包含下列狀態。


****  

| CEV 狀態 | 描述 | 故障診斷建議 | 
| --- | --- | --- | 
| `pending-validation` | 已建立 CEV，且其正在等待相關聯 AMI 的驗證。CEV 會保留在 `pending-validation` 中，直到從中建立了 RDS Custom for SQL Server 資料庫執行個體為止。 | 如果沒有現有的任務，請從 CEV 建立新的 RDS Custom for SQL Server 資料庫執行個體。建立 RDS Custom for SQL Server 資料庫執行個體時，系統會嘗試驗證 CEV 的相關聯 AMI。  | 
| `validating` | 基於新 CEV 的 RDS Custom for SQL Server 資料庫執行個體的建立任務正在進行中。建立 RDS Custom for SQL Server 資料庫執行個體時，系統會嘗試驗證 CEV 的相關聯 AMI。 | 等待現有 RDS Custom for SQL Server 資料庫執行個體的建立任務完成。您可以使用 RDS EVENTS 主控台，檢閱詳細的事件訊息以進行疑難排解。  | 
| `available` | 已成功驗證 CEV。一旦成功從 CEV 建立了 RDS Custom for SQL Server 資料庫執行個體，該 CEV 就會進入 `available` 狀態。 | CEV 不需要任何額外的驗證。它可以用來建立其他 RDS Custom for SQL Server 資料庫執行個體，或修改現有的執行個體。 | 
| `inactive` | CEV 已修改為非作用中狀態。 | 您無法使用此 CEV 建立或升級 RDS Custom 資料庫執行個體。您也無法還原資料庫快照，以使用此 CEV 建立新的 RDS Custom 資料庫執行個體。若要取得如何將狀態變更為 `ACTIVE` 的資訊，請參閱 [修改 RDS Custom for SQL Server 的 CEV](custom-cev-sqlserver-modifying.md)。 | 
| `failed` | 在此 CEV 可以驗證 AMI 之前，無法對其進行建立資料庫執行個體步驟。或者，CEV 使用的基礎 AMI 未處於可用狀態。 | 針對根本原因進行疑難排解，找出系統為何無法建立資料庫執行個體。檢視詳細的錯誤訊息，然後嘗試再次建立新的資料庫執行個體。確保 CEV 使用的基礎 AMI 處於可用狀態。 | 
| `incompatible-image-configuration` | 驗證 AMI 時發生錯誤。 | 檢視錯誤的技術詳細資訊。您無法再次嘗試使用此 CEV 驗證 AMI。請檢閱下列建議： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-cev-sqlserver.create.html) 使用正確的資訊建立新的 CEV。 如有需要，請使用支援的 AMI 建立新的 EC2 執行個體，並在其上執行 Sysprep 程序。  | 

# 修改 RDS Custom for SQL Server 的 CEV
<a name="custom-cev-sqlserver-modifying"></a>

您可以使用 AWS 管理主控台 或 AWS CLI 修改 CEV。您可以修改 CEV 描述或其可用狀態。您的 CEV 有下列其中一個狀態值：
+ `available` – 您可以使用此 CEV 建立新的 RDS Custom 資料庫執行個體或升級資料庫執行個體。這是新建立的 CEV 的預設狀態。
+ `inactive` – 您無法使用此 CEV 建立或升級 RDS Custom 資料庫執行個體。您無法還原資料庫快照以使用此 CEV 建立新的 RDS Custom 資料庫執行個體。

您可以將 CEV 狀態從 `available` 變更為 `inactive` 或從 `inactive` 變更為 `available`。您可以將狀態變更為 `INACTIVE`，以防止意外使用 CEV，或讓已中止的 CEV 符合再次使用的資格。

## 主控台
<a name="custom-cev-sqlserver-modifying.console"></a>

**若要修改 CEV**

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

1. 在導覽窗格中，選擇 **Custom engine versions** (自訂引擎版本)。

1. 選擇您想要修改其描述或狀態的 CEV。

1. 在 **Actions** (動作) 中，選擇 **Modify** (修改)。

1. 進行下列任何變更：
   + 針對 **CEV status settings (CEV 狀態設定)**，選擇新的可用性狀態。
   + 針對 **Version description (版本描述)**，輸入新的描述。

1. 選擇 **Modify CEV (修改 CEV)**。

   如果 CEV 正在使用中，主控台會顯示**您無法修改 CEV 狀態**。修正問題，然後再試一次。

**Custom engine versions** (自訂引擎版本) 頁面隨即出現。

## AWS CLI
<a name="custom-cev-sqlserver-modifying.cli"></a>

若要使用 AWS CLI 修改 CEV，請執行 [modify-custom-db-engine-version](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-custom-db-engine-version.html) 命令。您可以藉由執行 [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) 命令來尋找要修改的 CEV。

下列選項是必要的：
+ `--engine`
+ `--engine-version cev`，其中 *`cev`* 是您要修改的自訂引擎版本的名稱。
+ `--status`` status`，其中 *`status`* 是您要指派給 CEV 的可用性狀態。

下列範例會將名為 `15.00.4249.2.my_cevtest` 的 CEV 從目前的狀態變更為 `inactive`。

**Example**  
對於 Linux、macOS 或 Unix：  

```
1. aws rds modify-custom-db-engine-version \
2.     --engine custom-sqlserver-ee \ 
3.     --engine-version 15.00.4249.2.my_cevtest \
4.     --status inactive
```
在 Windows 中：  

```
1. aws rds modify-custom-db-engine-version ^
2.     --engine custom-sqlserver-ee ^
3.     --engine-version 15.00.4249.2.my_cevtest ^
4.     --status inactive
```

若要修改 RDS Custom for SQL Server 資料庫執行個體以使用新的 CEV，請參閱 [修改 RDS Custom for SQL Server 資料庫執行個體以使用新的 CEV](custom-cev-sqlserver-modifying-dbinstance.md)。

# 修改 RDS Custom for SQL Server 資料庫執行個體以使用新的 CEV
<a name="custom-cev-sqlserver-modifying-dbinstance"></a>

您可以修改現有的 RDS Custom for SQL Server 資料庫執行個體，以使用不同的 CEV。您可以進行的變更包括：
+ 變更 CEV
+ 變更資料庫執行個體類別
+ 變更備份保留期和備份時段
+ 變更維護時段

## 主控台
<a name="custom-cev-sqlserver-modifying-dbinstance.CON"></a>

**若要修改 RDS Custom for SQL Server 資料庫執行個體**

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

1. 在導覽窗格中，選擇 **Databases** (資料庫)。

1. 選擇想要修改的資料庫執行個體。

1. 選擇 **Modify (修改)**。

1. 視需要進行下列變更：

   1. 對於 **DB engine version** (資料庫引擎版本)，選擇不同的 CEV。

   1. 變更 **DB instance class (資料庫執行個體類別)** 的值。如需支援的類別，請參閱 [RDS Custom for SQL Server 的資料庫執行個體類別支援](custom-reqs-limits.instancesMS.md)。

   1. 變更 **Backup retention period (備份保留期)** 的值。

   1. 針對 **Backup window (備份時段)**，設定 **Start time (開始時間)** 和 **Duration (持續時間)** 的值。

   1. 針對 **DB instance maintenance window (資料庫執行個體維護時段)**，設定 **Start day (開始日期)**、**Start time (開始時間)** 和 **Duration (持續時間)** 的值。

1. 選擇 **Continue (繼續)**。

1. 選擇 **Apply immediately (立即套用)** 或 **Apply during the next scheduled maintenance window (在下次排定的維護時段套用)**。

1. 選擇 **Modify DB instance (修改資料庫執行個體)**。
**注意**  
將資料庫執行個體從一個 CEV 修改為另一個 CEV (例如，升級次要版本時) 時，SQL Server 系統資料庫 (包括其資料和組態) 會從目前的 RDS Custom for SQL Server 資料庫執行個體保存下來。

## AWS CLI
<a name="custom-cev-sqlserver-modifying-dbinstance.CLI"></a>

若要使用 AWS CLI 修改資料庫執行個體，以使用不同的 CEV，請執行 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-custom-db-engine-version.html) 命令。

下列選項是必要的：
+ `--db-instance-identifier`
+ `--engine-version cev`，其中 *`cev`* 是自訂引擎版本的名稱，您想要資料庫執行個體變更為該版本。

下列範例會修改名為 `my-cev-db-instance` 的資料庫執行個體，以使用名為 `15.00.4249.2.my_cevtest_new` 的 CEV，並立即套用變更。

**Example**  
對於 Linux、macOS 或 Unix：  

```
1. aws rds modify-db-instance \
2.     --db-instance-identifier my-cev-db-instance \ 
3.     --engine-version 15.00.4249.2.my_cevtest_new \
4.     --apply-immediately
```
在 Windows 中：  

```
1. aws rds modify-db-instance ^
2.     --db-instance-identifier my-cev-db-instance ^
3.     --engine-version 15.00.4249.2.my_cevtest_new ^
4.     --apply-immediately
```

# 檢視 Amazon RDS Custom for SQL Server 的 CEV 詳細資訊
<a name="custom-viewing-sqlserver"></a>

您可以使用 AWS 管理主控台 或 AWS CLI 來檢視 CEV 的詳細資訊。

## 主控台
<a name="custom-viewing-sqlserver.console"></a>

**檢視 CEV 詳細資訊**

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

1. 在導覽窗格中，選擇 **Custom engine versions** (自訂引擎版本)。

   **Custom engine versions** (自訂引擎版本) 頁面會顯示目前存在的所有 CEV。如果您尚未建立任何 CEV，則頁面為空白。

1. 選擇要檢視的 CEV 名稱。

1. 選擇 **Configuration** (組態) 來檢視詳細資訊。  
![\[檢視 CEV 的組態詳細資訊。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/rds_custom_sqlserver_cev_viewdetails.PNG)

## AWS CLI
<a name="custom-viewing-sqlserver.CEV"></a>

若要使用 AWS CLI 檢視 CEV 的詳細資訊，請執行 [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) 命令。

您還可以指定下列選項：
+ `--include-all`，檢視具有任何生命週期狀態的所有 CEV。若沒有 `--include-all` 選項，只會傳回處於 `available` 生命週期狀態的 CEV。

```
aws rds describe-db-engine-versions --engine custom-sqlserver-ee --engine-version 15.00.4249.2.my_cevtest --include-all
{
    "DBEngineVersions": [
        {
            "Engine": "custom-sqlserver-ee",
            "MajorEngineVersion": "15.00",
            "EngineVersion": "15.00.4249.2.my_cevtest",
            "DBParameterGroupFamily": "custom-sqlserver-ee-15.0",
            "DBEngineDescription": "Microsoft SQL Server Enterprise Edition for custom RDS",
            "DBEngineVersionArn": "arn:aws:rds:us-east-1:{my-account-id}:cev:custom-sqlserver-ee/15.00.4249.2.my_cevtest/a1234a1-123c-12rd-bre1-1234567890",
            "DBEngineVersionDescription": "Custom SQL Server EE 15.00.4249.2 cev test",
            "Image": {
                "ImageId": "ami-0r93cx31t5r596482",
                "Status": "pending-validation"
            },
            "DBEngineMediaType": "AWS Provided",
            "CreateTime": "2022-11-20T19:30:01.831000+00:00",
            "ValidUpgradeTarget": [],
            "SupportsLogExportsToCloudwatchLogs": false,
            "SupportsReadReplica": false,
            "SupportedFeatureNames": [],
            "Status": "pending-validation",
            "SupportsParallelQuery": false,
            "SupportsGlobalDatabases": false,
            "TagList": [],
            "SupportsBabelfish": false
        }
    ]
}
```

您可以使用篩選條件，檢視具有特定生命週期狀態的 CEV。例如，若要檢視生命週期狀態為 `pending-validation`、`available` 或 `failed` 的 CEV：

```
aws rds describe-db-engine-versions engine custom-sqlserver-ee
                region us-west-2 include-all query 'DBEngineVersions[?Status == pending-validation || 
                Status == available || Status == failed]'
```

# 刪除 RDS Custom for SQL Server 的 CEV
<a name="custom-cev-sqlserver-deleting"></a>

您可以使用 AWS 管理主控台 或 AWS CLI 刪除 CEV。通常，此任務需要幾分鐘的時間。

刪除 CEV 前，請確定下列任何一項未使用該 CEV：
+ RDS Custom 資料庫執行個體
+ RDS Custom 資料庫執行個體的快照
+ RDS Custom 資料庫執行個體的自動備份

## 主控台
<a name="custom-cev-sqlserver-deleting.console"></a>

**若要刪除 CEV**

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

1. 在導覽窗格中，選擇 **Custom engine versions** (自訂引擎版本)。

1. 選擇您想要刪除其描述或狀態的 CEV。

1. 對於 **Actions** (動作)，請選擇 **Delete** (刪除)。

   **Delete *cev\$1name*? (是否刪除 cev\$1name？)** 對話方塊隨即顯示。

1. 輸入 **delete me**，然後選擇 **Delete (刪除)**。

   在 **Custom engine versions** (自訂引擎版本) 頁面上，橫幅會顯示您的 CEV 即將刪除。

## AWS CLI
<a name="custom-cev-sqlserver-deleting.console.cli"></a>

若要使用 AWS CLI 刪除 CEV，請執行 [delete-custom-db-engine-version](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-custom-db-engine-version.html) 命令。

下列選項是必要的：
+ `--engine custom-sqlserver-ee`
+ `--engine-version cev`，其中 *CEV* 是要刪除之自訂引擎版本的名稱

以下範例會刪除名為 `15.00.4249.2.my_cevtest` 的 CEV。

**Example**  
對於 Linux、macOS 或 Unix：  

```
1. aws rds delete-custom-db-engine-version \
2.     --engine custom-sqlserver-ee \
3.     --engine-version 15.00.4249.2.my_cevtest
```
在 Windows 中：  

```
1. aws rds delete-custom-db-engine-version ^
2.     --engine custom-sqlserver-ee ^
3.     --engine-version 15.00.4249.2.my_cevtest
```

# 建立並連線至 Amazon RDS Custom for SQL Server 的資料庫執行個體
<a name="custom-creating-sqlserver"></a>

您可以建立 RDS Custom 資料庫執行個體，然後使用 AWS Systems Manager 或遠端桌面通訊協定 (RDP) 連線到該執行個體。

**重要**  
您必須完成 [設定您的 Amazon RDS Custom for SQL Server 的環境](custom-setup-sqlserver.md) 中的任務，才能建立或連線至 RDS Custom for SQL Server 資料庫執行個體。  
當您建立 RDS Custom 資料庫執行個體時可以為它加上標籤，但是請勿建立或修改 RDS Custom 自動化所需的 `AWSRDSCustom` 標籤。如需詳細資訊，請參閱[標記 RDS Custom for SQL Server 資源](custom-managing-sqlserver.tagging.md)。  
第一次建立 RDS Custom for SQL Server 資料庫執行個體時，您可能會收到下列錯誤：服務連結角色正在建立的程序中。請稍後再試。如果收到這個訊息，請等待幾分鐘的時間然後再次嘗試建立資料庫執行個體。

**Topics**
+ [建立 RDS Custom for SQL Server 資料庫執行個體](#custom-creating-sqlserver.create)
+ [RDS Custom 服務連結角色](custom-creating-sqlserver.slr.md)
+ [使用 AWS Systems Manager 連線到您的 RDS Custom 資料庫執行個體](custom-creating-sqlserver.ssm.md)
+ [使用 RDS 連線到您的 RDS Custom 資料庫執行個體](custom-creating-sqlserver.rdp.md)

## 建立 RDS Custom for SQL Server 資料庫執行個體
<a name="custom-creating-sqlserver.create"></a>

使用 AWS 管理主控台 或 建立 Amazon RDS Custom for SQL Server 資料庫執行個體 AWS CLI。該程序與建立 Amazon RDS 資料庫執行個體的程序類型。

如需詳細資訊，請參閱[建立 Amazon RDS 資料庫執行個體](USER_CreateDBInstance.md)。

### 主控台
<a name="custom-creating-sqlserver.CON"></a>

**若要建立 RDS Custom for SQL Server 資料庫執行個體**

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

1. 在導覽窗格中，選擇 **Databases** (資料庫)。

1. 選擇 **Create database** (建立資料庫)。

1. 選擇 **Standard Create** (標準建立) 做為資料庫建立方法。

1. 針對 **Engine options (引擎選項)**，選擇 **Microsoft SQL Server** 做為引擎類型。

1. 針對 **Database management type (引擎管理類型)**，選擇 **Amazon RDS Custom**。

1. 在 **Edition** (版本) 區段中，選擇您想要使用的資料庫引擎版本。

1. (選用) 如果您想要從 CEV 建立資料庫執行個體，請核取 **Use custom engine version (CEV)** (使用自訂引擎版本 (CEV)) 核取方塊。在下拉式清單中選取您的 CEV。

1. 針對**資料庫版本**，保留 SQL Server 2019 預設值。

1. 在 **Templates** (範本) 中，選擇 **Production** (生產)。

1. 在 **Settings** (設定) 區段中，為 **DB instance identifier** (資料庫執行個體識別符) 輸入唯一的名稱。

1. 若要輸入您的主要密碼，請執行以下動作：

   1. 在 **Settings (設定)** 區段，開啟 **Credential Settings (登入資料設定)**。

   1. 清除 **Auto generate a password (自動產生密碼)** 核取方塊。

   1. 變更 **Master username (主要使用者名稱)** 值並在 **Master password (主要密碼)** 和 **Confirm password (確認密碼)** 中輸入相同的密碼。

   根據預設，新 RDS Custom 資料庫執行個體會將自動產生的密碼用於主要使用者。

1. 在 **DB instance size** (資料庫執行個體大小) 區段中，為 **DB instance class** (資料庫執行個體類別) 選擇值。

   如需支援的類別，請參閱 [RDS Custom for SQL Server 的資料庫執行個體類別支援](custom-reqs-limits.instancesMS.md)。

1. 選擇 **Storage (儲存)** 設定。

1. 針對 **RDS Custom security (RDS Custom 安全)**，請執行下列操作：

   1. 針對 **IAM 執行個體設定檔**，您有兩個選項可為您的 RDS Custom for SQL Server 資料庫執行個體選擇執行個體設定檔。

      1. 選擇**建立新的執行個體描述檔**，並提供執行個體描述檔名稱尾碼。如需詳細資訊，請參閱[使用 自動建立執行個體描述檔 AWS 管理主控台](custom-setup-sqlserver.md#custom-setup-sqlserver.instanceProfileCreation)。

      1. 選擇現有的執行個體設定檔。從下拉式清單中，選擇開頭為 `AWSRDSCustom` 的執行個體設定檔。

   1. 針對 **Encryption (加密)**，選擇 **Enter a key ARN (輸入金鑰 ARN)** 以列出可用的 AWS KMS 金鑰。然後從清單選擇您的金鑰。

      RDS Custom 需要 AWS KMS 金鑰。如需詳細資訊，請參閱[請確定您擁有對稱加密 AWS KMS 金鑰](custom-setup-sqlserver.md#custom-setup-sqlserver.cmk)。

1. 在其餘區段，指定您偏好的 RDS Custom 資料庫執行個體的設定。如需每項設定的相關資訊，請參閱 [資料庫執行個體的設定](USER_CreateDBInstance.Settings.md)。以下設定不會出現在主控台中，也不受支援：
   + **處理器功能**
   + **儲存體自動調整規模**
   + **Availability & durability (可用性與持久性)**
   + **Database authentication (資料庫身分驗證)** 中的 **Password and Kerberos authentication (密碼和 Kerberos 身分驗證)** 選項 (僅支援 **Password authentication (密碼身分驗證)**)
   + **Additional configuration (其他組態)** 中的 **Database options (資料庫選項)**
   + **Performance Insights** (績效詳情)
   + **Log exports (日誌匯出)**
   + **Enable auto minor version upgrade (啟用自動次要版本升級)**
   + **刪除保護**

   支援 **Backup retention period (備份保留期)**，但是您無法選擇 **0 days (0 天)**。

1. 選擇 **Create database** (建立資料庫)。

   **View credential details** (檢視憑證詳細資訊) 按鈕會顯示在 **Databases** (資料庫) 頁面上。

   若要檢視 RDS Custom 資料庫執行個體的主要使用者名稱和密碼，請選擇 **View credential details** (檢視憑證詳細資訊)。

   若要以主要使用者的身分連線至資料庫執行個體，請使用出現的使用者名稱和密碼。
**重要**  
您無法再次檢視主要使用者密碼。如果您沒有記錄下來，您可能需要進行變更。若要在 RDS Custom 資料庫執行個體可供使用後變更主要使用者密碼，請修改資料庫執行個體。如需修改 資料庫執行個體的詳細資訊，請參閱[管理 Amazon RDS Custom for SQL Server 資料庫執行個體](custom-managing-sqlserver.md)。

1. 選擇 **Databases** (資料庫) 以檢視 RDS Custom 資料庫執行個體的清單。

1. 選擇您剛剛建立的 RDS Custom 資料庫執行個體。

   在 RDS 主控台上，新 RDS Custom 資料庫執行個體的詳細資訊即會出現：
   + 在 RDS Custom 資料庫執行個體建立完成且可供使用之前，資料庫執行個體會處於 **Creating (建立中)** 狀態。狀態變更為 **Available (可用)** 時，您便能連線至資料庫執行個體。視執行個體類別和分配的儲存空間而定，新的資料庫執行個體可能需要幾分鐘才能使用。
   + **Role (角色)** 具有 **Instance (RDS Custom) (執行個體 (RDS Custom))** 值。
   + **RDS Custom automation mode** (RDS Custom 自動化模式) 具有 **Full automation** (全自動化) 值。此設定表示資料庫執行個體提供自動監控和執行個體復原。

### AWS CLI
<a name="custom-creating-sqlserver.CLI"></a>

您可以使用 [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) AWS CLI 命令建立 RDS Custom 資料庫執行個體。

下列選項是必要的：
+ `--db-instance-identifier`
+ `--db-instance-class` (如需支援執行個體類別的清單，請參閱 [RDS Custom for SQL Server 的資料庫執行個體類別支援](custom-reqs-limits.instancesMS.md))
+ `--engine` (`custom-sqlserver-ee`、`custom-sqlserver-se` 或 `custom-sqlserver-web`)
+ `--kms-key-id`
+ `--custom-iam-instance-profile`

下列範例會建立名稱為 `my-custom-instance` 的 RDS Custom for SQL Server 資料庫執行個體。備份保留期為 3 天。

**注意**  
若要從自訂引擎版本 (CEV) 建立資料庫執行個體，請將現有的 CEV 名稱提供給 `--engine-version` 參數。例如 `--engine-version 15.00.4249.2.my_cevtest`

**Example**  
在 Linux、macOS 或 Unix 中：  

```
 1. aws rds create-db-instance \
 2.     --engine custom-sqlserver-ee \
 3.     --engine-version 15.00.4073.23.v1 \
 4.     --db-instance-identifier my-custom-instance \
 5.     --db-instance-class db.m5.xlarge \
 6.     --allocated-storage 20 \
 7.     --db-subnet-group mydbsubnetgroup \
 8.     --master-username myuser \
 9.     --master-user-password mypassword \
10.     --backup-retention-period 3 \
11.     --no-multi-az \
12.     --port 8200 \
13.     --kms-key-id mykmskey \
14.     --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance
```
在 Windows 中：  

```
 1. aws rds create-db-instance ^
 2.     --engine custom-sqlserver-ee ^
 3.     --engine-version 15.00.4073.23.v1 ^
 4.     --db-instance-identifier my-custom-instance ^
 5.     --db-instance-class db.m5.xlarge ^
 6.     --allocated-storage 20 ^
 7.     --db-subnet-group mydbsubnetgroup ^
 8.     --master-username myuser ^
 9.     --master-user-password mypassword ^
10.     --backup-retention-period 3 ^
11.     --no-multi-az ^
12.     --port 8200 ^
13.     --kms-key-id mykmskey ^
14.     --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance
```
指定此處所顯示提示以外的密碼，作為安全最佳實務。

使用 `describe-db-instances` 命令取得執行個體的詳細資訊。

```
1. aws rds describe-db-instances --db-instance-identifier my-custom-instance
```

下列部分輸出顯示引擎、參數群組及其他資訊。

```
 1. {
 2.     "DBInstances": [
 3.         {
 4.             "PendingModifiedValues": {},
 5.             "Engine": "custom-sqlserver-ee",
 6.             "MultiAZ": false,
 7.             "DBSecurityGroups": [],
 8.             "DBParameterGroups": [
 9.                 {
10.                     "DBParameterGroupName": "default.custom-sqlserver-ee-15",
11.                     "ParameterApplyStatus": "in-sync"
12.                 }
13.             ],
14.             "AutomationMode": "full",
15.             "DBInstanceIdentifier": "my-custom-instance",
16.             "TagList": []
17.         }
18.     ]
19. }
```

# RDS Custom 服務連結角色
<a name="custom-creating-sqlserver.slr"></a>

*服務連結角色*會讓 Amazon RDS Custom 能夠存取您 AWS 帳戶 帳戶中的資源。它會讓使用 RDS Custom 更簡單，因為您不需要手動新增必要許可。RDS Custom 會定義其服務連結角色的許可，除非另有定義，否則僅有 RDS Custom 可以擔任其角色。定義的許可包括信任政策和許可政策，並且該許可政策不能連接到任何其他 IAM 實體。

當您建立 RDS Custom 資料庫執行個體時，Amazon RDS 和 RDS Custom 服務連結角色兩者都會建立 (如果尚未存在) 並且使用。如需更多詳細資訊，請參閱 [使用 Amazon RDS 的服務連結角色](UsingWithRDS.IAM.ServiceLinkedRoles.md)。

第一次建立 RDS Custom for SQL Server 資料庫執行個體時，您可能會收到下列錯誤：服務連結角色正在建立的程序中。請稍後再試。如果收到這個訊息，請等待幾分鐘的時間然後再次嘗試建立資料庫執行個體。

# 使用 AWS Systems Manager 連線到您的 RDS Custom 資料庫執行個體
<a name="custom-creating-sqlserver.ssm"></a>

在建立 RDS Custom 資料庫執行個體之後，您可以使用 AWS Systems Manager 工作階段管理員連線到該執行個體。「工作階段管理員」是 Systems Manager 功能，您可以用來透過瀏覽器型殼層或透過 AWS CLI 管理 Amazon EC2 執行個體。如需詳細資訊，請參閱 [AWS Systems Manager 工作階段管理員](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html)。

## 主控台
<a name="custom-creating-sqlserver.ssm.CON"></a>

**若要使用工作階段管理員連線至資料庫執行個體**

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

1. 在導覽窗格中選擇 **Databases** (資料庫)，然後選擇您要連線的 RDS Custom 資料庫執行個體。

1. 選擇 **Configuration (組態)**。

1. 請記下資料庫執行個體的 **Resource ID (資源 ID)** 值。例如，資源 ID 可能是 `db-ABCDEFGHIJKLMNOPQRS0123456`。

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 尋找 EC2 執行個體的名稱，然後選擇與其相關聯的執行個體 ID。例如，執行個體 ID 可能是 `i-abcdefghijklm01234`。

1. 選擇**連線**。

1. 選擇 **Session Manager (工作階段管理員)**。

1. 選擇**連線**。

   您的工作階段會開啟一個視窗。

## AWS CLI
<a name="custom-creating-sqlserver.ssm.CLI"></a>

您可以使用 AWS CLI 連線至 RDS Custom 資料庫執行個體。此技術需要 AWS CLI 的工作階段管理員外掛程式。若要了解如何安裝外掛程式，請參閱[安裝 AWS CLI 的工作階段管理員外掛程式](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)。

若要尋找 RDS Custom 資料庫執行個體的資料庫資源 ID，請使用 `[describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html)`。

```
aws rds describe-db-instances \
    --query 'DBInstances[*].[DBInstanceIdentifier,DbiResourceId]' \
    --output text
```

下列範例輸出顯示 RDS Custom 執行個體的資源 ID。字首是 `db-`。

```
db-ABCDEFGHIJKLMNOPQRS0123456
```

若要尋找資料庫執行個體的 EC2 執行個體 ID，請使用 `aws ec2 describe-instances`。以下範例使用 `db-ABCDEFGHIJKLMNOPQRS0123456` 做為資源 ID。

```
aws ec2 describe-instances \
    --filters "Name=tag:Name,Values=db-ABCDEFGHIJKLMNOPQRS0123456" \
    --output text \
    --query 'Reservations[*].Instances[*].InstanceId'
```

以下範例輸出顯示 EC2 執行個體 ID。

```
i-abcdefghijklm01234
```

使用 `aws ssm start-session` 命令，在 `--target` 參數中提供 EC2 執行個體 ID。

```
aws ssm start-session --target "i-abcdefghijklm01234"
```

成功的連線看起來如下。

```
Starting session with SessionId: yourid-abcdefghijklm1234
[ssm-user@ip-123-45-67-89 bin]$
```

# 使用 RDS 連線到您的 RDS Custom 資料庫執行個體
<a name="custom-creating-sqlserver.rdp"></a>

建立 RDS Custom 資料庫執行個體之後，您可以使用 RDP 用戶端連線到此執行個體。此程序與連線 Amazon EC2 執行個體的程序相同。如需詳細資訊，請參閱[連線至您的 Windows 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/connecting_to_windows_instance.html)。

若要連線到資料庫執行個體，您需要與執行個體相關聯的金鑰對。RDS Custom 會為您建立金鑰對。配對名稱使用字首 `do-not-delete-rds-custom-DBInstanceIdentifier`。AWS Secrets Manager 會將您的私有金鑰儲存為秘密。

完成下列步驟中的任務：

1. [將您的資料庫執行個體設定為允許 RDP 連線](#custom-creating-sqlserver.rdp.port).

1. [擷取您的私密金鑰](#custom-creating-sqlserver.rdp.key).

1. [使用 RDP 公用程式連線到 EC2 執行個體](#custom-creating-sqlserver.rdp.connect).

## 將您的資料庫執行個體設定為允許 RDP 連線
<a name="custom-creating-sqlserver.rdp.port"></a>

若要允許 RDP 連線，請設定 VPC 安全群組並在主機上設定防火牆規則。

### 設定您的 VPC 安全群組
<a name="custom-creating-sqlserver.rdp.port.vpc"></a>

請確定與資料庫執行個體相關聯的 VPC 安全群組允許傳輸控制通訊協定 (TCP) 的連接埠 3389 上的傳入連線。若要了解如何設定 VPC 安全群組，請參閱 [設定您的 VPC 安全群組](custom-setup-sqlserver.md#custom-setup-sqlserver.vpc.sg)。

### 在主機上設定防火牆規則
<a name="custom-creating-sqlserver.rdp.port.firewall"></a>

若要允許 TCP 的連接埠 3389 上的傳入連線，請在主機上設定防火牆規則。下列範例示範其做法。

建議您使用特定的 `-Profile` 值：`Public`、`Private` 或 `Domain`。使用 `Any` 指的是全部三個值。您也可指定以逗號分隔的值組合。如需設定防火牆規則的詳細資訊，請參閱 Microsoft 文件中的 [Set-NetFirewallRule](https://docs.microsoft.com/en-us/powershell/module/netsecurity/set-netfirewallrule?view=windowsserver2019-ps)。

**使用 Systems Manager 工作階段管理員來設定防火牆規則**

1. 連線至工作階段管理員，如 [使用 AWS Systems Manager 連線到您的 RDS Custom 資料庫執行個體](custom-creating-sqlserver.ssm.md) 中所示。

1. 執行下列命令。

   ```
   Set-NetFirewallRule -DisplayName "Remote Desktop - User Mode (TCP-In)" -Direction Inbound -LocalAddress Any -Profile Any
   ```

**使用 Systems Manager CLI 命令來設定防火牆規則**

1. 使用下列命令在主機上開啟 RDP。

   ```
   OPEN_RDP_COMMAND_ID=$(aws ssm send-command --region $AWS_REGION \
       --instance-ids $RDS_CUSTOM_INSTANCE_EC2_ID \
       --document-name "AWS-RunPowerShellScript" \
       --parameters '{"commands":["Set-NetFirewallRule -DisplayName \"Remote Desktop - User Mode (TCP-In)\" -Direction Inbound -LocalAddress Any -Profile Any"]}' \
       --comment "Open RDP port" | jq -r ".Command.CommandId")
   ```

1. 使用輸出中傳回的命令 ID，以取得前一個命令的狀態。若要使用以下查詢傳回命令 ID，請確定已安裝 jq 外掛程式。

   ```
   aws ssm list-commands \
       --region $AWS_REGION \
       --command-id $OPEN_RDP_COMMAND_ID
   ```

## 擷取您的私密金鑰
<a name="custom-creating-sqlserver.rdp.key"></a>

使用 AWS 管理主控台 或 AWS CLI 擷取您的私密金鑰。

### 主控台
<a name="custom-creating-sqlserver.rdp.key.CON"></a>

**若要擷取秘密金鑰**

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

1. 在導覽窗格中選擇 **Databases** (資料庫)，然後選擇您要連線的 RDS Custom 資料庫執行個體。

1. 選擇 **Configuration** (組態) 索引標籤。

1. 請記下資料庫執行個體的 **DB instance ID (資料庫執行個體 ID)**，例如 `my-custom-instance`。

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 尋找 EC2 執行個體的名稱，然後選擇與其相關聯的執行個體 ID。

   在此範例中，執行個體 ID 為 `i-abcdefghijklm01234`。

1. 在 **Details (詳細資訊)** 中尋找 **Key pair name (金鑰對名稱)**。配對名稱包含資料庫識別符。在此範例中，配對名稱是 `do-not-delete-rds-custom-my-custom-instance-0d726c`。

1. 在執行個體摘要中，尋找**公有 IPv4 DNS**。例如，公有 DNS 可能是 `ec2-12-345-678-901.us-east-2.compute.amazonaws.com`。

1. 開啟 AWS Secrets Manager 主控台，網址為 [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)。

1. 選擇與金鑰對具有相同名稱的密碼。

1. 選擇 **Retrieve secret value (擷取秘密值)**。

### AWS CLI
<a name="custom-creating-sqlserver.rdp.key.CLI"></a>

**若要擷取私有金鑰**

1. 藉由呼叫 `aws rds describe-db-instances` 命令來取得 RDS Custom 資料庫執行個體的清單。

   ```
   aws rds describe-db-instances \
       --query 'DBInstances[*].[DBInstanceIdentifier,DbiResourceId]' \
       --output text
   ```

1. 從範例輸出中選擇資料庫執行個體識別符，例如 `do-not-delete-rds-custom-my-custom-instance`。

1. 藉由呼叫 `aws ec2 describe-instances` 命令來尋找資料庫執行個體的 EC2 執行個體 ID。下列範例使用 EC2 執行個體名稱來描述資料庫執行個體。

   ```
   aws ec2 describe-instances \
       --filters "Name=tag:Name,Values=do-not-delete-rds-custom-my-custom-instance" \
       --output text \
       --query 'Reservations[*].Instances[*].InstanceId'
   ```

   以下範例輸出顯示 EC2 執行個體 ID。

   ```
   i-abcdefghijklm01234
   ```

1. 藉由指定 EC2 執行個體 ID 來尋找金鑰名稱，如以下範例所示。

   ```
   aws ec2 describe-instances \
       --instance-ids i-abcdefghijklm01234 \
       --output text \
       --query 'Reservations[*].Instances[*].KeyName'
   ```

   下列範例輸出會顯示金鑰名稱，該名稱使用字首 `do-not-delete-rds-custom-DBInstanceIdentifier`。

   ```
   do-not-delete-rds-custom-my-custom-instance-0d726c
   ```

## 使用 RDP 公用程式連線到 EC2 執行個體
<a name="custom-creating-sqlserver.rdp.connect"></a>

請遵循《Amazon EC2 使用者指南》**中的[使用 RDP 連線至您的 Windows 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/connecting_to_windows_instance.html#connect-rdp)的程序。此程序假設您已建立包含私有金鑰的 .pem 檔案。

# 管理 Amazon RDS Custom for SQL Server 資料庫執行個體
<a name="custom-managing-sqlserver"></a>

Amazon RDS Custom for SQL Server 支援 Amazon RDS 資料庫執行個體一般管理任務的子集。接著，您可以使用 AWS 管理主控台 和 AWS CLI 尋找支援的 RDS Custom for SQL Server 管理任務的指示。

**Topics**
+ [暫停和繼續 RDS Custom 自動化](custom-managing-sqlserver.pausing.md)
+ [修改 RDS Custom for SQL Server 資料庫執行個體](custom-managing.modify-sqlserver.md)
+ [修改 RDS Custom for SQL Server 資料庫執行個體的儲存體](custom-managing-sqlserver.storage-modify.md)
+ [標記 RDS Custom for SQL Server 資源](custom-managing-sqlserver.tagging.md)
+ [刪除 RDS Custom for SQL Server 資料庫執行個體](#custom-managing-sqlserver.deleting)
+ [啟動與停止 RDS Custom for SQL Server 資料庫執行個體](custom-managing-sqlserver.startstop.md)

# 暫停和繼續 RDS Custom 自動化
<a name="custom-managing-sqlserver.pausing"></a>

RDS Custom 會自動為 RDS Custom for SQL Server 資料庫執行個體提供監控和執行個體復原。如果需要自訂執行個體，請執行下列動作：

1. 在指定期間暫停 RDS Custom 自動化。暫停可確保您的自訂不會干擾 RDS Custom 自動化。

1. 視需要自訂 RDS Custom for SQL Server 資料庫執行個體。

1. 執行下列任何一項：
   + 手動繼續自動化。
   + 等待暫停期間結束。在此情況下，RDS Custom 會自動繼續監控和執行個體復原。

**重要**  
修改 RDS Custom for SQL Server 資料庫執行個體時，暫停和繼續自動化是唯一支援的自動化任務。

## 主控台
<a name="custom-managing.pausing.console"></a>

**若要暫停或繼續 RDS Custom 自動化**

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

1. 在導覽窗格中選擇 **Databases** (資料庫)，然後選擇您要修改的 RDS Custom 資料庫執行個體。

1. 選擇 **Modify (修改)**。**Modify DB instance (修改資料庫執行個體)** 頁面隨即出現。

1. 針對 **RDS Custom automation mode** (RDS Custom 自動化模式)，選擇下列其中一個選項：
   + **Paused** (暫停) 會暫停 RDS Custom 資料庫執行個體的監控和執行個體復原。輸入您想要的 **Automation mode duration** (自動化模式持續時間) 的暫停持續時間 (以分鐘為單位)。最小值為 60 分鐘 (預設值)。最大值為 1,440 分鐘。
   + **Full automation (全自動化)** 會繼續自動化。

1. 選擇 **Continue (繼續)** 以檢查修改的摘要。

   訊息隨即顯示，指出 RDS Custom 將會立即套用變更。

1. 如果您的變更正確，請選擇 **Modify DB instance (修改資料庫執行個體)**。或者，選擇 **Back (上一步)** 以編輯變更，或是選擇 **Cancel (取消)** 以取消變更。

   在 RDS 主控台上，修改的詳細資訊即會出現。如果您暫停了自動化，您的 RDS Custom 資料庫執行個體的 **Status (狀態)** 會指出 **Automation paused (自動化已暫停)**。

1. (選用) 在導覽窗格中，選擇 **Databases** (資料庫)，然後再執行 RDS Custom 資料庫執行個體。

   在 **Summary** (摘要) 窗格中，**RDS Custom automation mode** (RDS Custom 自動化模式) 會指出自動化狀態。如果暫停自動化，則值為 **Paused (暫停)。自動化會在 *num* 分鐘內繼續**。

## AWS CLI
<a name="custom-managing-sqlserver.pausing.CLI"></a>

若要暫停或繼續 RDS Custom 自動化，請使用 `modify-db-instance` AWS CLI 命令。使用所需的參數 `--db-instance-identifier` 識別資料庫執行個體。使用下列參數控制自動化模式：
+ `--automation-mode` 會指定資料庫執行個體的暫停狀態。有效值為 `all-paused` (會暫停自動化) 以及 `full` (會繼續自動化)。
+ `--resume-full-automation-mode-minutes` 會指定暫停的持續時間。預設值為 60 分鐘。

**注意**  
無論您指定 `--no-apply-immediately` 或 `--apply-immediately`，RDS Custom 會盡快以非同步的方式套用修改。

在命令回應中，`ResumeFullAutomationModeTime` 會以 UTC 時間戳記的形式表示繼續時間。當自動化模式為 `all-paused` 時，您可以使用 `modify-db-instance` 來繼續自動化模式或延長暫停時間。不支援其他 `modify-db-instance` 加密選項。

下列範例會暫停 `my-custom-instance` 的自動化 90 分鐘。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --automation-mode all-paused \
    --resume-full-automation-mode-minutes 90
```
在 Windows 中：  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --automation-mode all-paused ^
    --resume-full-automation-mode-minutes 90
```

下列範例會將暫停持續時間延長額外 30 分鐘。30 分鐘會新增至 `ResumeFullAutomationModeTime` 中顯示的原始時間。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --automation-mode all-paused \
    --resume-full-automation-mode-minutes 30
```
在 Windows 中：  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --automation-mode all-paused ^
    --resume-full-automation-mode-minutes 30
```

下列範例會繼續 `my-custom-instance` 的全自動化。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --automation-mode full \
```
在 Windows 中：  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --automation-mode full
```
在下面的部分範例輸出中，待定 `AutomationMode` 值為 `full`。  

```
{
    "DBInstance": {
        "PubliclyAccessible": true,
        "MasterUsername": "admin",
        "MonitoringInterval": 0,
        "LicenseModel": "bring-your-own-license",
        "VpcSecurityGroups": [
            {
                "Status": "active",
                "VpcSecurityGroupId": "0123456789abcdefg"
            }
        ],
        "InstanceCreateTime": "2020-11-07T19:50:06.193Z",
        "CopyTagsToSnapshot": false,
        "OptionGroupMemberships": [
            {
                "Status": "in-sync",
                "OptionGroupName": "default:custom-oracle-ee-19"
            }
        ],
        "PendingModifiedValues": {
            "AutomationMode": "full"
        },
        "Engine": "custom-oracle-ee",
        "MultiAZ": false,
        "DBSecurityGroups": [],
        "DBParameterGroups": [
            {
                "DBParameterGroupName": "default.custom-oracle-ee-19",
                "ParameterApplyStatus": "in-sync"
            }
        ],
        ...
        "ReadReplicaDBInstanceIdentifiers": [],
        "AllocatedStorage": 250,
        "DBInstanceArn": "arn:aws:rds:us-west-2:012345678912:db:my-custom-instance",
        "BackupRetentionPeriod": 3,
        "DBName": "ORCL",
        "PreferredMaintenanceWindow": "fri:10:56-fri:11:26",
        "Endpoint": {
            "HostedZoneId": "ABCDEFGHIJKLMNO",
            "Port": 8200,
            "Address": "my-custom-instance.abcdefghijk.us-west-2.rds.amazonaws.com"
        },
        "DBInstanceStatus": "automation-paused",
        "IAMDatabaseAuthenticationEnabled": false,
        "AutomationMode": "all-paused",
        "EngineVersion": "19.my_cev1",
        "DeletionProtection": false,
        "AvailabilityZone": "us-west-2a",
        "DomainMemberships": [],
        "StorageType": "gp2",
        "DbiResourceId": "db-ABCDEFGHIJKLMNOPQRSTUVW",
        "ResumeFullAutomationModeTime": "2020-11-07T20:56:50.565Z",
        "KmsKeyId": "arn:aws:kms:us-west-2:012345678912:key/aa111a11-111a-11a1-1a11-1111a11a1a1a",
        "StorageEncrypted": false,
        "AssociatedRoles": [],
        "DBInstanceClass": "db.m5.xlarge",
        "DbInstancePort": 0,
        "DBInstanceIdentifier": "my-custom-instance",
        "TagList": []
    }
```

# 修改 RDS Custom for SQL Server 資料庫執行個體
<a name="custom-managing.modify-sqlserver"></a>

修改 RDS Custom for SQL Server 資料庫執行個體類似於針對 Amazon RDS 執行這個操作，但是您可以進行的變更限制為下列項目：
+ 變更資料庫執行個體類別
+ 變更備份保留期和備份時段
+ 變更維護時段
+ 當新版本可用時升級資料庫引擎版本
+ 變更已配置的儲存體、佈建 IOPS 和儲存體類型
+ 允許和移除多可用區部署

修改 RDS Custom for SQL Server 資料庫執行個體時有下列限制：
+ 不支援自訂資料庫選項和參數群組。
+ 手動連接至 RDS Custom 資料庫執行個體的任何儲存磁碟區都在支援周邊外面。

  如需更多詳細資訊，請參閱 [RDS Custom 支援周邊](custom-concept.md#custom-troubleshooting.support-perimeter)。

## 主控台
<a name="custom-managing.modify-sqlserver.CON"></a>

**若要修改 RDS Custom for SQL Server 資料庫執行個體**

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

1. 在導覽窗格中，選擇 **Databases** (資料庫)。

1. 選擇想要修改的資料庫執行個體。

1. 選擇 **Modify (修改)**。

1. 視需要進行下列變更：

   1. 在 **DB engine version (資料庫引擎版本)** 中，選擇新版本。

   1. 變更 **DB instance class (資料庫執行個體類別)** 的值。如需支援的類別，請參閱 [RDS Custom for SQL Server 的資料庫執行個體類別支援](custom-reqs-limits.instancesMS.md)。

   1. 變更 **Backup retention period (備份保留期)** 的值。

   1. 針對 **Backup window (備份時段)**，設定 **Start time (開始時間)** 和 **Duration (持續時間)** 的值。

   1. 針對 **DB instance maintenance window (資料庫執行個體維護時段)**，設定 **Start day (開始日期)**、**Start time (開始時間)** 和 **Duration (持續時間)** 的值。

1. 選擇 **Continue (繼續)**。

1. 選擇 **Apply immediately (立即套用)** 或 **Apply during the next scheduled maintenance window (在下次排定的維護時段套用)**。

1. 選擇 **Modify DB instance (修改資料庫執行個體)**。

## AWS CLI
<a name="custom-managing.modify-sqlserver.CLI"></a>

若要修改 RDS Custom for SQL Server 資料庫執行個體，請使用 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) AWS CLI 命令。視需要設定下列參數：
+ `--db-instance-class` – 如需支援的類別，請參閱 [RDS Custom for SQL Server 的資料庫執行個體類別支援](custom-reqs-limits.instancesMS.md)
+ `--engine-version` – 您要升級的資料庫引擎版本號碼。
+ `--backup-retention-period` – 保留自動化備份的期間，從 0–35 天。
+ `--preferred-backup-window` – 每日時間範圍，自動化備份會在這段期間建立。
+ `--preferred-maintenance-window` – 系統維護可能發生期間的每週時間範圍 (格式為 UTC)。
+ `--apply-immediately` – 使用 `--apply-immediately` 可立即套用儲存變更。

  或使用 `--no-apply-immediately` (預設值) 在下個維護時段套用變更。

# 修改 RDS Custom for SQL Server 資料庫執行個體的儲存體
<a name="custom-managing-sqlserver.storage-modify"></a>

修改 RDS Custom for SQL Server 資料庫執行個體的儲存體類似於修改 Amazon RDS 資料庫執行個體的儲存體，但是您只能執行下列動作：
+ 增加配置的儲存體大小。
+ 變更儲存體類型。您可以使用可用的儲存體類型，例如一般用途或佈建 IOPS。gp3、io1 和 io2 Block Express 儲存體類型支援佈建 IOPS。
+ 如果您是使用支援佈建 IOPS 的磁碟區類型，則變更佈建 IOPS。

修改 RDS Custom for SQL Server 資料庫執行個體的儲存體時有下列限制：
+ 針對 RDS Custom for SQL Server 配置的儲存體大小下限為 20 GiB。io1、gp2 和 gp3 的儲存體上限為 16 TiB，而 io2 支援 64 TiB。
+ 與 Amazon RDS 一樣，您無法減少配置的儲存體。這是 Amazon Elastic Block Store (Amazon EBS) 磁碟區的限制。如需詳細資訊，請參閱[使用適合 Amazon RDS 資料庫執行個體的儲存體](USER_PIOPS.StorageTypes.md)
+ RDS Custom for SQL Server 執行個體不支援儲存體自動擴展。
+ 不會考慮對您手動連接至 RDS Custom 資料庫執行個體的任何儲存磁碟區進行儲存體擴展。只有 RSS 提供的預設資料磁碟區 (即 D 磁碟機)，才會考慮對其進行儲存體擴展。

  如需更多詳細資訊，請參閱 [RDS Custom 支援周邊](custom-concept.md#custom-troubleshooting.support-perimeter)。
+ 擴展儲存體通常不會導致資料庫執行個體的任何中斷或效能下降。修改完資料庫執行個體的儲存空間大小之後，其狀態呈現為 **storage-optimization (儲存最佳化)**。
+ 儲存體最佳化可能需要幾個小時。在六 (6) 小時或在執行個體上完成儲存體最佳化 (以時間較長者為準) 後，您才能進行進一步的儲存體修改。如需詳細資訊，請參閱[使用適合 Amazon RDS 資料庫執行個體的儲存體](USER_PIOPS.StorageTypes.md)

如需儲存體的詳細資訊，請參閱[Amazon RDS 資料庫執行個體儲存體](CHAP_Storage.md)。

如需與儲存體修改相關的一般資訊，請參閱 [使用適合 Amazon RDS 資料庫執行個體的儲存體](USER_PIOPS.StorageTypes.md)。

**重要**  
請勿使用 Amazon EC2 或 Amazon EBS 主控台或 API 來修改 RDS Custom for SQL Server 資料庫執行個體的儲存體。在 Amazon RDS 主控台或 API 外部直接儲存體修改會導致資料庫處於 `unsupported-configuration` 狀態。  
當您使用 Amazon EC2 或 Amazon EBS 進行直接儲存體變更時，Amazon RDS 無法追蹤或管理您的資料庫執行個體狀態。這可能會導致：  
高可用性容錯移轉機制無法正常運作
要中斷的資料庫複寫設定
要失敗的備援功能
僅透過 Amazon RDS 主控台或 API 修改儲存體，讓您的資料庫保持在支援的狀態。如需復原步驟，請參閱 [修正 RDS Custom for SQL Server 中不支援的組態](custom-troubleshooting-sqlserver.md#custom-troubleshooting-sqlserver.fix-unsupported)。

## 主控台
<a name="custom-managing.storage-modify.CON"></a>

**修改 RDS Custom for SQL Server 資料庫執行個體的儲存體**

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

1. 在導覽窗格中，選擇 **Databases** (資料庫)。

1. 選擇想要修改的資料庫執行個體。

1. 選擇 **Modify (修改)**。

1. 視需要進行下列變更：

   1. 針對 **Allocated storage (配置儲存)** 輸入新的值。它必須大於目前的值，並且從 20 GiB 至 64 TiB。

   1. 變更 **Storage type (儲存體類型)** 的值。您可以選擇可用的一般用途或佈建 IOPS 儲存體類型。gp3、io1 和 io2 Block Express 儲存體類型支援佈建 IOPS。

   1. 如果您指定支援佈建 IOPS 的儲存體類型，則可以定**佈建 IOPS** 值。

1. 選擇 **Continue (繼續)**。

1. 選擇 **Apply immediately (立即套用)** 或 **Apply during the next scheduled maintenance window (在下次排定的維護時段套用)**。

1. 選擇 **Modify DB instance (修改資料庫執行個體)**。

## AWS CLI
<a name="custom-managing-sqlserver.storage-modify.CLI"></a>

若要修改 RDS Custom for SQL Server 資料庫執行個體的儲存體，請使用 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) AWS CLI 命令。視需要設定下列參數：
+ `--allocated-storage` – 要配置給資料庫執行個體的儲存量 (以 GiB 為單位)。它必須大於目前的值，並且從 20 至 16,384 GiB。
+ `--storage-type` - 儲存體類型，例如，gp2、gp3、io1 或 io2。
+ `--iops` – 資料庫執行個體的佈建 IOPS。您只能針對支援佈建 IOPS (gp3、io1 和 io2) 的儲存體類型指定此項目。
+ `--apply-immediately` – 使用 `--apply-immediately` 可立即套用儲存變更。

  或使用 `--no-apply-immediately` (預設值) 在下個維護時段套用變更。

下列範例會將 my-custom-instance 的儲存大小變更為 200 GiB，將儲存類型變更為 io1，將佈建 IOPS 變更為 3000。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --storage-type io1 \
    --iops 3000 \
    --allocated-storage 200 \
    --apply-immediately
```
在 Windows 中：  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --storage-type io1 ^
    --iops 3000 ^
    --allocated-storage 200 ^
    --apply-immediately
```

# 標記 RDS Custom for SQL Server 資源
<a name="custom-managing-sqlserver.tagging"></a>

您可以將 RDS Custom 資源標記為與 Amazon RDS 資源一樣，但是有一些重要差異：
+ 請勿建立或修改 RDS Custom 自動化所需的 `AWSRDSCustom` 標籤。如果您這樣做，可能會破壞自動化。
+ `Name` 標籤會新增至字首為 `do-not-delete-rds-custom` 的 RDS Custom 資源。金鑰的任何客戶傳遞值都會遭到覆寫。
+ 在建立期間新增至 RDS Custom 資料庫執行個體的標籤會傳播至所有其他相關的 RDS Custom 資源。
+ 當您在建立資料庫執行個體之後將標籤新增至 RDS Custom 資源時，不會傳播標籤。

如需資源標記的一般資訊，請參閱 [標記 Amazon RDS 資源](USER_Tagging.md)。

## 刪除 RDS Custom for SQL Server 資料庫執行個體
<a name="custom-managing-sqlserver.deleting"></a>

若要刪除 RDS Custom for SQL Server 資料庫執行個體，請執行以下操作：
+ 提供資料庫執行個體的名稱。
+ 選擇或清除讓您建立資料庫執行個體最終資料庫快照的選項。
+ 選擇或清除保留自動化備份的選項。

您可以使用主控台或 CLI 刪除 RDS Custom for SQL Server 資料庫執行個體。刪除資料庫執行個體所需的時間會因備份保留期間 (也就是要刪除的備份數量)、刪除的資料量，以及是否要拍攝最終快照而有所不同。

**警告**  
刪除 RDS Custom for SQL Server 資料庫執行個體會永久刪除 EC2 執行個體和相關聯的 Amazon EBS 磁碟區。您不應隨時終止或刪除這些資源，否則刪除和最終快照建立可能會失敗。

**注意**  
如果資料庫執行個體的狀態為 `creating`、`failed`、`incompatible-create`、`incompatible-restore` 或 `incompatible-network`，則無法建立該資料庫執行個體的最終資料庫快照。如需更多詳細資訊，請參閱 [在 Amazon RDS 資料庫執行個體狀態](accessing-monitoring.md#Overview.DBInstance.Status)。

**重要**  
當您選擇建立最終快照時，建議您避免在資料庫執行個體刪除過程中將資料寫入至資料庫執行個體。一旦啟動了資料庫執行個體刪除，最終快照就不保證會擷取資料變更。

### 主控台
<a name="custom-managing-sqs.deleting.console"></a>

**若要刪除 RDS Custom 資料庫執行個體**

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

1. 在導覽窗格中選擇 **Databases** (資料庫)，然後選擇您要刪除的 RDS Custom for SQL Server 資料庫執行個體。RDS Custom for SQL Server 資料庫執行個體會顯示角色 **Instance (RDS Custom for SQL Server)** (執行個體 (RDS Custom for SQL Server))。

1. 對於 **Actions** (動作)，請選擇 **Delete** (刪除)。

1. 若要建立最終快照，請選擇 **Create final snapshot** (建立最終快照)，並提供 **Final snapshot name** (最終快照名稱) 的名稱。

1. 若要保留自動備份，請選擇 **Retain automated backups (保留自動備份)**。

1. 在方塊中輸入 **delete me**。

1. 選擇 **刪除**。

### AWS CLI
<a name="custom-managing-sqs.deleting.CLI"></a>

您可以藉由使用 [delete-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-instance.html) AWS CLI 命令來刪除 RDS Custom for SQL Server 資料庫執行個體。使用所需的參數 `--db-instance-identifier` 識別資料庫執行個體。其餘參數與 Amazon RDS 資料庫執行個體的參數相同。

下列範例會刪除名為 `my-custom-instance` 的 RDS Custom for SQL Server 資料庫執行個體、建立最終快照，並保留自動化備份。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
aws rds delete-db-instance \
    --db-instance-identifier my-custom-instance \
    --no-skip-final-snapshot \
    --final-db-snapshot-identifier my-custom-instance-final-snapshot \
    --no-delete-automated-backups
```
在 Windows 中：  

```
aws rds delete-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --no-skip-final-snapshot ^
    --final-db-snapshot-identifier my-custom-instance-final-snapshot ^
    --no-delete-automated-backups
```

若要建立最終快照，`--final-db-snapshot-identifier` 為必要選項，且必須加以指定。

若要略過最終快照，請在命令中指定 `--skip-final-snapshot` 選項，而非 `--no-skip-final-snapshot` 和 `--final-db-snapshot-identifier` 選項。

若要刪除自動備份，請在命令中指定 `--delete-automated-backups` 選項，而非 `--no-delete-automated-backups` 選項。

# 啟動與停止 RDS Custom for SQL Server 資料庫執行個體
<a name="custom-managing-sqlserver.startstop"></a>

您可以啟動與停止 RDS Custom for SQL Server 資料庫執行個體。RDS for SQL Server 資料庫執行個體的一般需求和限制，也適用於停止與啟動 RDS Custom for SQL Server 資料庫執行個體。如需更多詳細資訊，請參閱 [暫時停止 Amazon RDS 資料庫執行個體](USER_StopInstance.md)。

以下考量同樣適用於啟動與停止 RDS Custom for SQL Server 資料庫執行個體：
+ 不支援在資料庫執行個體為 `STOPPED` 時，修改 RDS Custom for SQL Server 資料庫執行個體的 EC2 執行個體屬性。
+ 您只能停止和啟動針對單一可用區域設定的 RDS Custom for SQL Server 資料庫執行個體。您無法停止多可用區域組態中的 RDS Custom for SQL Server 資料庫執行個體。
+ 當您停止 RDS Custom for SQL Server 資料庫執行個體時，會建立 `SYSTEM` 快照。當您再次啟動 RDS Custom for SQL Server 資料庫執行個體時，快照會自動刪除。
+ 如果您在 RDS Custom for SQL Server 資料庫執行個體停止時刪除 EC2 執行個體，當您再次啟動 RDS Custom for SQL Server 資料庫執行個體時，將會更換 `C:` 磁碟機。
+ 當您停止 RDS Custom for SQL Server 資料庫執行個體時，只要您不修改執行個體類型，`C:\` 磁碟機、主機名稱及您的自訂組態就會保留。
+ 下列動作會導致 RDS Custom 將資料庫執行個體置於支援周邊外，而您仍需支付資料庫執行個體時數的費用：
  + 在 Amazon RDS 停止時啟動基礎 EC2 執行個體。若要解決問題，您可以呼叫 `start-db-instance` Amazon RDS API，或是停止 EC2，讓 RDS Custom 執行個體恢復 `STOPPED`。
  + 在 RDS Custom for SQL Server 資料庫執行個體為 `ACTIVE` 時停止基礎 EC2 執行個體。

如需停止與啟動資料庫執行個體的詳細資訊，請參閱 [暫時停止 Amazon RDS 資料庫執行個體](USER_StopInstance.md)，以及 [啟動之前已停止的 Amazon RDS 資料庫執行個體](USER_StartInstance.md)。

# 使用 Microsoft Active Directory 搭配 RDS Custom for SQL Server
<a name="custom-sqlserver-WinAuth"></a>

RDS Custom for SQL Server 允許將您的執行個體加入自我管理 Active Directory (AD) 或 AWS Managed Microsoft AD。無論您的 AD 託管位置為何，例如內部部署資料中心、Amazon EC2 或任何其他雲端服務提供者。

針對使用者和服務的身分驗證，您可以在 RDS Custom for SQL Server 資料庫執行個體上使用 NTLM 或 Kerberos 身分驗證，而無需使用中繼網域和樹系信任。當使用者嘗試在 RDS Custom for SQL Server 資料庫執行個體上使用自我加入的 Active Directory 進行身分驗證時，身分驗證請求會轉送到自我管理 AD 或您指定的 AWS Managed Microsoft AD。

在以下各節中，您可以找到在使用自我管理 Active Directory 和 AWS 受管 Active Directory for RDS Custom for SQL Server 的相關資訊。

**Topics**
+ [區域和版本可用性](#custom-sqlserver-WinAuth.Regions)
+ [設定自我管理或內部部署 AD](custom-sqlserver-WinAuth.config-Self-Managed.md)
+ [使用 設定 Microsoft Active Directory Directory Service](custom-sqlserver-WinAuth.config-ADS.md)
+ [網路組態連接埠規則](custom-sqlserver-WinAuth.NWConfigPorts.md)
+ [網路驗證](custom-sqlserver-WinAuth.NWValidation.md)
+ [為 RDS Custom for SQL Server 執行個體設定 Windows 身分驗證](custom-sqlserver-WinAuth.settingUp.md)
+ [管理網域中的資料庫執行個體](custom-sqlserver-WinAuth.ManagingDBI.md)
+ [了解網域成員資格](custom-sqlserver-WinAuth.Understanding.md)
+ [故障診斷 Active Directory](custom-sqlserver-WinAuth.Troubleshoot.md)

## 區域和版本可用性
<a name="custom-sqlserver-WinAuth.Regions"></a>

RDS Custom for SQL Server 支援自我管理 AD 和 AWS Managed Microsoft AD，並在支援 RDS Custom for SQL Server 的所有區域中使用 NTLM 或 Kerberos。如需更多詳細資訊，請參閱 [支援的 RDS Custom 區域和資料庫引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.md)。

# 設定自我管理或內部部署 AD
<a name="custom-sqlserver-WinAuth.config-Self-Managed"></a>

若要將內部部署或自我管理的 Microsoft AD 加入 RDS Custom for SQL Server 資料庫執行個體，您的作用中網域必須設定如下：
+ 在自我管理或內部部署 AD 中，定義 VPC 中與 RDS Custom for SQL Server 資料庫執行個體相關聯的子網路。確認 VPC 中的子網路與 AD 網站中的子網路之間沒有任何衝突。
+ 您的 AD 網域控制器具有 Windows Server 2008 R2 或更新版本的網域功能層級。
+ 您的 AD 網域名稱不能採用單一標籤網域 (SLD) 格式。RDS Custom for SQL Server 不支援 SLD 網域。
+ AD 的完整網域名稱 (FQDN) 不得超過 47 個字元。

## 設定您的網路連線能力
<a name="custom-sqlserver-WinAuth.config-Self-Managed.network"></a>

以下列方式設定自我管理或內部部署 AD 網路連線：
+ 設定執行 RDS Custom for SQL Server 執行個體的 Amazon VPC 與您 AD 之間的連線。使用 Direct Connect Site-to-Site VPN AWS Transit Gateway、 和 VPC 對等互連。
+ 允許 RDS Custom for SQL Server 安全群組和網路 ACL 在連接埠上的流量傳送到自我管理或內部部署 AD。如需詳細資訊，請參閱[網路組態連接埠規則](custom-sqlserver-WinAuth.NWConfigPorts.md)。  
![\[Microsoft SQL Server Windows 身分驗證目錄\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/custom-sqs-SM-NC.png)

## 設定 DNS 解析
<a name="custom-sqlserver-WinAuth.config-Self-Managed.DNS"></a>

設定下列需求，以使用自我管理或內部部署 AD 設定 DNS 解析：
+ 在 VPC 中設定 DNS 解析，以解析自我託管 Active Directory 的完整網域名稱 (FQDN)。FQDN 的範例為 `corp.example.local`。若要設定 DNS 解析，請將 VPC DNS 解析程式設定為使用 Amazon Route 53 傳出端點和解析程式規則轉送特定網域的查詢。如需詳細資訊，請參閱[設定 Route 53 Resolver 傳出端點以解析 DNS 記錄](https://repost.aws/knowledge-center/route53-resolve-with-outbound-endpoint)。
+ 針對同時利用 VPC 和內部部署資源的工作負載，則必須解析內部部署託管的 DNS 記錄。內部部署資源可能需要解析託管在其中的名稱 AWS。

  若要建立混合雲端設定，請使用解析程式端點和條件式轉送機制，來解析內部部署資源和與自訂 VPC 之間的 DNS 查詢。如需詳細資訊，請參閱《Amazon Route 53 開發人員指南》**中的[在 VPC 和網路之間解析 DNS 查詢](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-overview-DSN-queries-to-vpc.html)。

**重要**  
修改 RDS Custom for SQL Server 上網路介面的 DNS 解析程式設定會導致已啟用 DNS 的 VPC 端點無法再正常運作。私有子網路內沒有網際網路存取的執行個體需要啟用 DNS 的 VPC 端點。

# 使用 設定 Microsoft Active Directory Directory Service
<a name="custom-sqlserver-WinAuth.config-ADS"></a>

AWS Managed Microsoft AD 在 中建立全受管 Microsoft Active Directory AWS ，該目錄採用 Windows Server 2019 技術，並在 2012 R2 樹系和網域功能層級運作。 會在 Amazon VPC 的不同子網路中 Directory Service 建立網域控制器，讓您的目錄即使在發生故障時也能高度使用。

若要使用 建立目錄 AWS Managed Microsoft AD，請參閱《 *AWS Directory Service 管理指南*》中的 [入門 AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_getting_started.html)。

## 設定您的網路連線能力
<a name="custom-sqlserver-WinAuth.config-ADS.network"></a>

### 啟用目錄和資料庫執行個體之間的跨 VPC 流量
<a name="custom-sqlserver-WinAuth.config-ADS.network.x-vpc"></a>

若要在相同 VPC 中尋找目錄和資料庫執行個體，請略過此步驟，並移至 [網路組態連接埠規則](custom-sqlserver-WinAuth.NWConfigPorts.md) 中的下一個步驟。

若要在不同 VPCs 中尋找目錄和資料庫執行個體，請使用 VPC 對等互連 或 設定跨 VPC 流量 AWS Transit Gateway。如需使用 VPC 對等互連的詳細資訊，請參閱《*Amazon* [VPC 對等互連指南》中的什麼是 VPC 對等互連？](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html)以及《*Amazon VPC 傳輸閘道*》中的[什麼是 AWS Transit Gateway？](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html)。

**使用 VPC 互連以啟用跨 VPC 流量**

1. 設定適當的 VPC 路由規則，以確保網路流量可以雙向對流。

1. 允許資料庫執行個體的安全群組可以從目錄的安全群組接收傳入流量。如需詳細資訊，請參閱[網路組態連接埠規則](custom-sqlserver-WinAuth.NWConfigPorts.md)。

1. 網路存取控制清單 (ACL) 不得封鎖流量。

如果不同的 AWS 帳戶 擁有該目錄，您必須共用該目錄。若要與 共用 RDS Custom for SQL Server 執行個體 AWS 帳戶 所在的目錄，請遵循《 *AWS Directory Service 管理指南*》中的[教學課程：共用您的 AWS Managed Microsoft AD 以實現無縫 EC2 網域加入](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_directory_sharing.html)。

**在 之間共用目錄 AWS 帳戶**

1. 使用資料庫執行個體的帳戶登入 Directory Service 主控台，並檢查網域是否具有 `SHARED` 狀態，再繼續。

1. 使用資料庫執行個體的帳戶登入 Directory Service 主控台後，請注意**目錄 ID** 值。您可以使用此 ID，將資料庫執行個體加入網域。

## 設定 DNS 解析
<a name="custom-sqlserver-WinAuth.config-ADS.DNS"></a>

當您使用 建立目錄時 AWS Managed Microsoft AD， 會 Directory Service 建立兩個網域控制站，並代表您新增 DNS 服務。

如果您有現有 AWS Managed Microsoft AD 或計劃在 RDS Custom for SQL Server 資料庫執行個體以外的 VPC 中啟動，請設定 VPC DNS 解析程式以轉送具有 Route 53 傳出和解析程式規則之特定網域的查詢，請參閱[設定 Route 53 Resolver 傳出端點以解析 DNS 記錄](https://repost.aws/knowledge-center/route53-resolve-with-outbound-endpoint)。

# 網路組態連接埠規則
<a name="custom-sqlserver-WinAuth.NWConfigPorts"></a>

請確定您已符合下列網路組態：
+ 在 Amazon VPC 之間設定的連線能力，而在 Amazon VPC，您想要建立 RDS Custom for SQL Server 資料庫執行個體至您的自我管理 Active Directory 或 AWS Managed Microsoft AD。對於自我管理 Active Directory，請使用 AWS Direct Connect、AWS VPN、VPC 對等互連或 AWS Transit Gateway 設定連線。對於 AWS Managed Microsoft AD，使用 VPC 對等互連設定連線。
+ 請確定您要在其中建立 RDS Custom for SQL Server 資料庫執行個體之子網路的安全群組和 VPC 網路 ACL 允許連接埠上的流量，並依下圖所示的方向前進。  
![\[Microsoft Active Directory 網路組態連接埠規則。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/custom_sqlserver_ActiveDirectory_Requirements_NetworkConfig.png)

  下表識別每個連接埠的角色。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-sqlserver-WinAuth.NWConfigPorts.html)
+ 一般而言，網域 DNS 伺服器位於 AD 網域控制器中。您不需要設定 VPC DHCP 選項集，即可使用此功能。如需詳細資訊，請參閱《Amazon VPC 使用者指南》**中的 [DHCP 選項集](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html)。

**重要**  
如果使用 VPC 網路 ACL，您也必須允許動態連接埠 (49152-65535) 上來自 RDS Custom for SQL Server 資料庫執行個體的傳出流量。請確定也會在適用於每個 AD 網域控制器、DNS 伺服器和 RDS Custom for SQL Server 資料庫執行個體的防火牆上鏡像這些流量規則。  
雖然 VPC 安全群組只需要以網路流量起始的方向開啟連接埠，但大多數 Windows 防火牆和 VPC 網路 ACL 都需要雙向開啟連接埠。

# 網路驗證
<a name="custom-sqlserver-WinAuth.NWValidation"></a>

將 RDS Custom 執行個體加入自我管理或 AWS Managed Microsoft AD 之前，請從您計劃啟動 RDS Custom for SQL Server 執行個體的相同 VPC 中的 EC2 執行個體檢查下列項目。
+ 檢查您是否能夠將完整網域名稱 (FQDN) 解析為網域控制站 IP。

  ```
  nslookup corp.example.com
  ```

  命令必須傳回類似的輸出：

  ```
  Server:  ip-10-0-0-2.us-west-2.compute.internal
  Address:  25.0.0.2
  
  Non-authoritative answer:
  Name:    corp.example.com
  Addresses:  40.0.9.25 (DC1 IP)
              40.0.50.123 (DC2 IP)
  ```
+ 解決您啟動 RDS Custom 執行個體所在 VPC 中 EC2 執行個體的 AWS 服務：

  ```
  $region='input-your-aws-region'
  $domainFQDN='input-your-domainFQDN'
   
  function Test-DomainPorts {
      param (
          [string]$Domain,
          [array]$Ports
      )
   
      foreach ($portInfo in $Ports) {
          try {
              $conn = New-Object System.Net.Sockets.TcpClient
              $connectionResult = $conn.BeginConnect($Domain, $portInfo.Port, $null, $null)
              $success = $connectionResult.AsyncWaitHandle.WaitOne(1000) # 1 second timeout
              if ($success) {
                  $conn.EndConnect($connectionResult)
                  $result = $true
              } else {
                  $result = $false
              }
          }
          catch {
              $result = $false
          }
          finally {
              if ($null -ne $conn) {
                  $conn.Close()
              }
          }
          Write-Host "$($portInfo.Description) port open: $result"
      }
  }
   
  # Check if ports can be reached 
  $ports = @(
      @{Port = 53;   Description = "DNS"},
      @{Port = 88;   Description = "Kerberos"},
      @{Port = 389;  Description = "LDAP"},
      @{Port = 445;  Description = "SMB"},
      @{Port = 5985; Description = "WinRM"},
      @{Port = 636;  Description = "LDAPS"},
      @{Port = 3268; Description = "Global Catalog"},
      @{Port = 3269; Description = "Global Catalog over SSL"},
      @{Port = 9389; Description = "AD DS"}
  )
   
  function Test-DomainReachability {
      param (
          [string]$DomainName
      )
      
      try {
          $dnsResults = Resolve-DnsName -Name $DomainName -ErrorAction Stop
          Write-Host "Domain $DomainName is successfully resolving to following IP addresses: $($dnsResults.IpAddress)"
          Write-Host ""
          return $true
      } 
      catch {
          Write-Host ""
          Write-Host "Error Message: $($_.Exception.Message)"
          Write-Host "Domain $DomainName reachability check failed, please Configure DNS resolution"
          return $false
      }
  }
   
  $domain = (Get-WmiObject Win32_ComputerSystem).Domain
  if ($domain -eq 'WORKGROUP') {
      Write-Host ""    
      Write-Host "Host $env:computername is still part of WORKGROUP and not part of any domain"
      }
  else {
      Write-Host ""
      Write-Host "Host $env:computername is joined to $domain domain"
      Write-Host ""
      }
   
   
  $isReachable = Test-DomainReachability -DomainName $domainFQDN  
  if ($isReachable) {
      write-Host "Checking if domain $domainFQDN is reachable on required ports  "
      Test-DomainPorts -Domain $domainFQDN -Ports $ports
  }
  else {
      Write-Host "Port check skipped. Domain not reachable"
  }   
   
   
   
  # Get network adapter configuration
  $networkConfig = Get-WmiObject Win32_NetworkAdapterConfiguration | 
                   Where-Object { $_.IPEnabled -eq $true } |
                   Select-Object -First 1
   
  # Check DNS server settings
  $dnsServers = $networkConfig.DNSServerSearchOrder
   
  if ($dnsServers) {
      Write-Host "`nDNS Server settings:"
      foreach ($server in $dnsServers) {
          Write-Host "  - $server"
      }
  } else {
      Write-Host "`nNo DNS servers configured or unable to retrieve DNS server information."
  }
   
  write-host ""
   
  # Checks reachability to dependent services
  $services = "s3", "ec2", "secretsmanager", "logs", "events", "monitoring", "ssm", "ec2messages", "ssmmessages"
   
  function Get-TcpConnectionAsync {
      param (
          $ServicePrefix,
          $region
      )
      $endpoint = "${ServicePrefix}.${region}.amazonaws.com"
      $tcp = New-Object Net.Sockets.TcpClient
      $result = $false
   
      try {
          $connectTask = $tcp.ConnectAsync($endpoint, 443)
          $timedOut = $connectTask.Wait(3000)
          $result = $tcp.Connected
      } 
      catch {
          $result = $false
      } 
      return $result
  }
   
  foreach ($service in $services) {
      $validationResult = Get-TcpConnectionAsync -ServicePrefix $service -Region $region
      Write-Host "Reachability to $service is $validationResult"
  }
  ```

  `TcpTestSucceeded` 值針對 `s3`、`ec2`、`secretsmanager`、`logs`、`events`、`monitoring`、`ssm`、`ec2messages` 和 `ssmmessages` 必須傳回 `True`。

# 為 RDS Custom for SQL Server 執行個體設定 Windows 身分驗證
<a name="custom-sqlserver-WinAuth.settingUp"></a>

任何 AWS 帳戶 若擁有加入您 AD 網域的 RDS for SQL Server 資料庫執行個體，我們建議為其建立範圍受限於該 OU 的專用 OU 和服務憑證。透過專用 OU 和服務憑證，您可避免衝突的許可，並遵循最低權限的主體。

Active Directory 層級群組政策可能與 AWS 自動化和許可衝突。我們建議選取僅適用於您為 RDS Custom for SQL Server 建立之 OU 的 GPO。
+ 若要在自我管理或內部部署 AD 中建立 OU 和 AD 網域使用者，您可以網域管理員身分連線網域控制器。
+ 若要在 Directory Service 目錄中建立使用者和群組，您必須連線到管理執行個體，還必須以具有建立使用者和群組之權限的使用者身分登入。如需詳細資訊，請參閱《AWS Directory Service 管理指南》**中的 [AWS Managed Microsoft AD 中的使用者和群組管理](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_manage_users_groups.html)。
+ 若要從 Amazon EC2 Windows Server 執行個體中管理您的 Active Directory，您必須在 EC2 執行個體上安裝 Active Directory 網域服務和 Active Directory 輕量型目錄服務工具。如需詳細資訊，請參閱《AWS Directory Service 管理指南》**中的[安裝 AWS Managed Microsoft AD 的 Active Directory 管理工具](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_install_ad_tools.html)。
+ 我們建議您在單獨的 EC2 執行個體上安裝這些工具以進行管理，而不是在 RDS Custom for SQL Server 資料庫執行個體上安裝這些工具，以便於管理。

以下是 AD 網域服務帳戶的需求：
+ 您在 AD 網域中必須具有一個服務帳戶，其具有將電腦加入網域的委派許可。網域服務帳戶是 AD 中的使用者帳戶，其已獲委派執行特定任務的許可。
+ 在您正要將 RDS Custom for SQL Server 執行個體加入其中的組織單位中，必須向網域服務帳戶委派下列許可：
  + 已驗證能夠寫入 DNS 主機名稱
  + 已驗證能夠寫入服務主體名稱
  + 建立和刪除電腦物件
+ 對於自我管理和內部部署 AD，網域服務帳戶必須是「AWS 委派網域名稱系統管理員」群組的成員。
+ 對於 AWS Managed Microsoft AD，網域服務帳戶應該是「DnsAdmins」群組的成員。

這些是將電腦物件加入自我管理 AD 和 AWS Managed Microsoft AD 所需的最低許可集。如需詳細資訊，請參閱 Microsoft Windows Server 文件中的[錯誤：當被委派控制的非管理員使用者嘗試將電腦加入網域控制站時，存取遭拒](https://learn.microsoft.com/en-us/troubleshoot/windows-server/active-directory/access-denied-when-joining-computers)。

**重要**  
在建立資料庫執行個體之後，請不要移動 RDS Custom for SQL Server 在組織單位中建立的電腦物件。移動相關聯的物件可能會導致 RDS Custom for SQL Server 資料庫執行個體設定錯誤。如果您需要移動 Amazon RDS 所建立的電腦物件，請使用 [ ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 動作，透過所需的電腦物件位置修改網域參數。

**Topics**
+ [步驟 1：在您的 AD 中建立組織單位](#custom-sqlserver-WinAuth.settingUp.CreateOU)
+ [步驟 2：建立 AD 網域使用者](#custom-sqlserver-WinAuth.settingUp.ADuser)
+ [步驟 3：將控制權委派給自我管理或 AWS Managed Microsoft AD 中的 AD 使用者](#custom-sqlserver-WinAuth.settingUp.Delegate)
+ [步驟 4：建立私密](#custom-sqlserver-WinAuth.settingUp.ASM)
+ [步驟 5：建立或修改 RDS Custom for SQL Server 資料庫執行個體](#custom-sqlserver-WinAuth.settingUp.CreateDBInstance)
+ [步驟 6：建立 Windows 身分驗證 SQL Server 登入](#custom-sqlserver-WinAuth.settingUp.CreateLogins)
+ [步驟 7：使用 Kerberos 或 NTLM 身分驗證](#custom-sqlserver-WinAuth.settingUp.KerbNTLM)

## 步驟 1：在您的 AD 中建立組織單位
<a name="custom-sqlserver-WinAuth.settingUp.CreateOU"></a>

使用下列步驟在您的 AD 中建立組織單位：

**在您的 AD 中建立 OU**

1. 以網域管理員身分連線至您的網域 AD。

1. 開啟 **Active Directory 使用者和電腦**，然後選取您要在其中建立 OU 的網域。

1. 在網域上按一下滑鼠右鍵，然後選擇**新增**，再選擇**組織單位**。

1. 輸入 OU 的名稱。

   啟用**保護容器免於意外刪除**。

1. 選擇**確定**。您的新 OU 會出現在您的網域下方。

對於 AWS Managed Microsoft AD，此 OU 的名稱的基礎，是您建立目錄時所輸入的 NetBIOS 名稱。此 OU 屬於 AWS 且包含您所有 AWS 相關的目錄物件，您對此擁有完全控制權。此 OU 下預設存在兩個子 OU：**電腦和使用者**。RDS Custom 建立的新 OU 是以 NetBIOS 為基礎的 OU 子系。

## 步驟 2：建立 AD 網域使用者
<a name="custom-sqlserver-WinAuth.settingUp.ADuser"></a>

網域使用者憑證會用於 Secrets Manager 中的秘密。

**在您的 AD 中建立 AD 網域使用者**

1. 開啟 **Active Directory 使用者和電腦**，然後選取您要在其中建立使用者的網域。

1. 在**使用者**上按一下滑鼠右鍵，然後選擇**新增**，再選擇**使用者**。

1. 輸入使用者的名字、姓氏和登入名稱。按一下 **Next (下一步)**。

1. 輸入使用者的密碼。不要選取**使用者在下次登入時必須變更密碼**或**帳戶已停用**。按一下 **Next (下一步)**。

1. 按一下 **OK (確定)**。您的新使用者會出現在您的網域下方。

## 步驟 3：將控制權委派給自我管理或 AWS Managed Microsoft AD 中的 AD 使用者
<a name="custom-sqlserver-WinAuth.settingUp.Delegate"></a>

**將控制權委派給網域中的 AD 網域使用者**

1. 開啟 **Active Directory 使用者和電腦** MMC 嵌入式管理單元，然後選取您的網域。

1. 在您先前建立的 OU 上按一下滑鼠右鍵，然後選擇**委派控制權**。

1. 在**委派控制權精靈**中，按**下一步**。

1. 在**使用者或群組**區段中，按一下**新增**。

1. 在**選取使用者、電腦或群組**中，輸入您建立的 AD 使用者，然後按一下**檢查名稱**。如果 AD 使用者檢查成功，請按一下**確定**。

1. 在**使用者或群組**區段中，確認已新增 AD 使用者，然後按**下一步**。

1. 在**要委派的任務**區段中，選取**建立要委派的自訂任務**，然後按**下一步**。

1. 在 **Active Directory 物件類型**區段中：

   選擇**僅限資料夾中的下列物件**。

   選取**電腦物件**

   選取**在此資料夾中建立選取的物件**

   選取**刪除此資料夾中選取的物件**，然後按**下一步**。

1. 在**許可**區段中：

   保持選取**一般**。

   選取**已驗證寫入 DNS 主機名稱**。

   選取**已驗證寫入服務主體名稱**，然後按**下一步**。

1. 在**完成委派控制權精靈**中，請確認您的設定，然後按一下**完成**。

## 步驟 4：建立私密
<a name="custom-sqlserver-WinAuth.settingUp.ASM"></a>

在相同的 AWS 帳戶 帳戶和區域中建立秘密，其中包含要納入自我管理 Active Directory 的 RDS Custom for SQL Server 資料庫執行個體。儲存在 [步驟 2：建立 AD 網域使用者](#custom-sqlserver-WinAuth.settingUp.ADuser) 中建立的 AD 網域使用者的憑證。

------
#### [ Console ]
+ 在 AWS Secrets Manager 中，選擇**儲存新機密**。
+ 針對**機密類型**，選擇**其他類型的機密**。
+ 對於**金鑰/值對**，新增兩個金鑰：
  + 第一個金鑰，`SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME` 然後針對值輸入 AD 使用者的名稱 (不含網域字首)。
  + 針對第二個金鑰，輸入 `SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD` 並輸入網域上 AD 使用者的密碼。
+ 針對**加密金鑰**，輸入您用來建立 RDS Custom for SQL Server 執行個體的相同 AWS KMS 金鑰。
+ 針對**秘密名稱**，選擇以 `do-not-delete-rds-custom-` 開頭的秘密名稱，以允許執行個體設定檔存取此秘密。如果您想要為秘密選擇不同的名稱，請更新 `RDSCustomInstanceProfile` 以存取**秘密名稱**。
+ (選用) 對於**描述**，輸入秘密名稱的描述。
+ 新增標籤 `Key="AWSRDSCustom",Value="custom-sqlserver"` 
+ 按一下**儲存**，然後按**下一步**。
+ 對於**設定輪換設定**，保留預設值並選擇**下一步**。
+ 檢閱秘密的設定，然後按一下**存放**。
+ 選擇新的秘密，然後複製**秘密 ARN** 的值。我們會在下一個步驟中使用此項目來設定您的 Active Directory。

------
#### [ CLI ]

在 CLI 中執行以下命令來建立秘密：

```
# Linux based
aws secretsmanager create-secret \
--name do-not-delete-rds-custom-DomainUserCredentails \ 
--description "Active directory user credentials for managing RDS Custom" \ 
--secret-string "{\"SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME\":\"tester\",\"SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD\":\"xxxxxxxx\"}" \
--kms-key-id <RDSCustomKMSKey> \
--tags Key="AWSRDSCustom",Value="custom-sqlserver"

# Windows based
aws secretsmanager create-secret ^
--name do-not-delete-rds-custom-DomainUserCredentails ^ 
--description "Active directory user credentials for managing RDS Custom" ^
--secret-string "{\"SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME\":\"tester\",\"SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD\":\"xxxxxxxx\"}" ^
--kms-key-id <RDSCustomKMSKey> ^
--tags Key="AWSRDSCustom",Value="custom-sqlserver"
```

------

## 步驟 5：建立或修改 RDS Custom for SQL Server 資料庫執行個體
<a name="custom-sqlserver-WinAuth.settingUp.CreateDBInstance"></a>

建立或修改要搭配您目錄使用的 RDS Custom for SQL Server 資料庫執行個體。您可以使用主控台、CLI 或 RDS API，將資料庫執行個體與目錄建立關聯。您可採用下列其中一種方式來這麼做：
+ 使用主控台、[create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) CLI 命令，或 [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) RDS API 操作，建立新的 SQL Server 資料庫執行個體。

  如需說明，請參閱「[建立 Amazon RDS 資料庫執行個體](USER_CreateDBInstance.md)」。
+ 使用主控台、[modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) CLI 命令，或 [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) RDS API 操作，修改現有的 SQL Server 資料庫執行個體。

  如需說明，請參閱「[修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)」。
+ 使用主控台、[restore-db-instance-from-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html) CLI 命令，或 [RestoreDBInstanceFromDBSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html) RDS API 操作，從資料庫快照還原 SQL Server 資料庫執行個體。

  如需說明，請參閱「[還原至資料庫執行個體](USER_RestoreFromSnapshot.md)」。
+ 使用主控台、[restore-db-instance-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) CLI 命令，或 [RestoreDBInstanceToPointInTime](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html) RDS API 操作，將 SQL Server 資料庫執行個體還原至某個時間點。

  如需說明，請參閱「[將 Amazon RDS 的資料庫執行個體還原至指定時間](USER_PIT.md)」。

**注意**  
如果您的 RDS Custom for SQL Server 執行個體已手動加入 AD，請檢查 [網路組態連接埠規則](custom-sqlserver-WinAuth.NWConfigPorts.md)、[網路驗證](custom-sqlserver-WinAuth.NWValidation.md) 的設定，並完成步驟 1 到步驟 4。將 `--domain-fqdn`、`--domain-ou` 和 `--domain-auth-secret-arn` 更新為您的 AD，以便向 RDS Custom 註冊網域聯結憑證和組態，以監控、註冊 CNAME，並採取復原動作。

使用 AWS CLI 時，需要下列參數，資料庫執行個體才能使用您建立的目錄：
+ 對於 `--domain-fqdn` 參數，使用自我管理 AD 的完整網域名稱。
+ 對於 `--domain-ou` 參數，使用您在自我管理 AD 中建立的 OU。
+ 對於 `--domain-auth-secret-arn` 參數，使用您所建立之**秘密 ARN** 的值。

**重要**  
如果您修改資料庫執行個體，以將其加入自我管理 AD 網域或 AWS Managed Microsoft AD 或從中移除，則需要重新啟動資料庫執行個體，修改才會生效。您可以選擇立即套用變更，也可以等到下一個維護時段。選擇**立即套用**選項會導致單一可用區域資料庫執行個體停機。多可用區域資料庫叢集會在完成重新啟動之前執行容錯移轉。如需更多詳細資訊，請參閱 [修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。

下列 CLI 命令會建立新的 RDS Custom for SQL Server 資料庫執行個體，並將其加入自我管理或 AWS Managed Microsoft AD 網域。

在 Linux、macOS 或 Unix 中：

```
aws rds create-db-instance  \
--engine custom-sqlserver-se \
--engine-version 15.00.4312.2.v1 \
--db-instance-identifier my-custom-instance \
--db-instance-class db.m5.large \
--allocated-storage 100 --storage-type io1 --iops 1000 \
--master-username my-master-username \
--master-user-password my-master-password \
--kms-key-id  my-RDSCustom-key-id \
--custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance  \
--domain-fqdn "corp.example.com" \
--domain-ou "OU=RDSCustomOU,DC=corp,DC=example,DC=com" \
--domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:do-not-delete-rds-custom-my-AD-test-secret-123456" \
--db-subnet-group-name my-DB-subnet-grp \
--vpc-security-group-ids  my-securitygroup-id \
--no-publicly-accessible \
--backup-retention-period 3 \
--port 8200 \
--region us-west-2 \
--no-multi-az
```

在 Windows 中：

```
aws rds create-db-instance  ^
--engine custom-sqlserver-se ^
--engine-version 15.00.4312.2.v1 ^
--db-instance-identifier my-custom-instance ^
--db-instance-class db.m5.large ^
--allocated-storage 100 --storage-type io1 --iops 1000 ^
--master-usernamemy-master-username ^
--master-user-password my-master-password ^
--kms-key-id  my-RDSCustom-key-id ^
--custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance  ^
--domain-fqdn "corp.example.com" ^
--domain-ou "OU=RDSCustomOU,DC=corp,DC=example,DC=com" ^
--domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:do-not-delete-rds-custom-my-AD-test-secret-123456" ^
--db-subnet-group-name my-DB-subnet-grp ^
--vpc-security-group-ids  my-securitygroup-id ^
--no-publicly-accessible ^
--backup-retention-period 3 ^
--port 8200 ^
--region us-west-2 ^
--no-multi-az
```

**重要**  
如果您 AWS Managed Microsoft AD 的 NetBIOS 是 **corpexample**，則會顯示為 OU 本身。任何先前建立的新 OU 都會顯示為巢狀 OU。針對 AWS Managed Microsoft AD，將 `--domain-ou` 設定為 `"OU=RDSCustomOU,OU=corpexample,DC=corp,DC=example,DC=com"`。

下列命令會修改現有的 RDS Custom for SQL Server 資料庫執行個體，以使用 Active Directory 網域。

在 Linux、macOS 或 Unix 中：

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --domain-fqdn "corp.example.com" \
    --domain-ou "OU=RDSCustomOU,DC=corp,DC=example,DC=com" \
    --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:do-not-delete-rds-custom-my-AD-test-secret-123456" \
```

在 Windows 中：

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --domain-fqdn "corp.example.com" ^
    --domain-ou "OU=RDSCustomOU,DC=corp,DC=example,DC=com" ^
    --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:do-not-delete-rds-custom-my-AD-test-secret-123456" ^
```

下列 CLI 命令會從 Active Directory 網域中移除 RDS Custom for SQL Server 資料庫執行個體。

在 Linux、macOS 或 Unix 中：

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --disable-domain
```

在 Windows 中：

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --disable-domain
```

使用主控台建立或修改執行個體時，請按一下**啟用 Microsoft SQL Server Windows 身分驗證**，以查看下列選項。

![\[Microsoft SQL Server Windows 身分驗證目錄\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/custom-sqs-WinAuth.png)


您有責任確保您的網域 FQDN 正在解析為網域控制器 IP 位址。如果網域控制器 IP 未解析，網域聯結作業就會失敗，但 RDS Custom for SQL Server 執行個體建立會成功。如需故障診斷資訊，請參閱[故障診斷 Active Directory](custom-sqlserver-WinAuth.Troubleshoot.md)。

## 步驟 6：建立 Windows 身分驗證 SQL Server 登入
<a name="custom-sqlserver-WinAuth.settingUp.CreateLogins"></a>

使用 Amazon RDS 主要使用者憑證來連線至 SQL Server 資料庫執行個體，如同您對任何其他資料庫執行個體所做一般。因為資料庫執行個體已加入 AD 網域，您可以佈建 SQL Server 登入和使用者。您可以從 AD 網域中的 AD 使用者和群組公用程式執行此作業。您可透過對這些 Windows 登入授予和撤銷的標準 SQL Server 許可來管理資料庫許可。

若要讓 AD 使用者向 SQL Server 進行身分驗證，必須存在 AD 使用者或使用者為其成員之 Active Directory 群組的 SQL Server Windows 登入。精細定義的存取控制是透過授予和撤銷這些 SQL Server 登入的許可來處理。沒有 SQL Server 登入或屬於具有此類登入的 AD 群組的 AD 使用者無法存取 SQL Server 資料庫執行個體。

需要 `ALTER ANY LOGIN` 許可才能建立 AD SQL Server 登入。如果您尚未使用此許可建立任何登入，請使用 SQL Server 身分驗證，以資料庫執行個體的主要使用者身分連線，並在主要使用者的內容下建立 AD SQL Server 登入。

您可以執行如下的資料定義語言 (DDL) 命令，為 AD 使用者或群組建立 SQL Server 登入。

```
USE [master]
GO
CREATE LOGIN [mydomain\myuser] FROM WINDOWS WITH DEFAULT_DATABASE = [master], DEFAULT_LANGUAGE = [us_english];
GO
```

來自您網域的使用者 (人員和應用程式兩者)，現在可以使用 Windows 身分驗證從加入網域的用戶端機器連接至 RDS Custom for SQL Server 執行個體。

## 步驟 7：使用 Kerberos 或 NTLM 身分驗證
<a name="custom-sqlserver-WinAuth.settingUp.KerbNTLM"></a>

### 使用 RDS 端點的 NTLM 身分驗證
<a name="custom-sqlserver-WinAuth.settingUp.KerbNTLM.NTLM"></a>

每個 Amazon RDS 資料庫執行個體都有端點，並且每個端點有資料庫執行個體的 DNS 名稱和連接埠號碼。若要使用 SQL 用戶端應用程式連線至您的資料庫執行個體，您需要資料庫執行個體的 DNS 名稱和連接埠號碼。若要使用 NTLM 身分驗證進行身分驗證，您必須連線至 RDS 端點。

在規劃的資料庫維護或未規劃的服務中斷期間，Amazon RDS 會自動容錯移轉到最新的次要資料庫，以便操作可以很快繼續執行，而無須人為介入。主要與次要執行個體會使用相同的端點，其實體網路會處理轉換至次要的作業，做為容錯移轉程序的一部分。當容錯移轉發生時，您不必重新設定應用程式。

### Kerberos 身分驗證
<a name="custom-sqlserver-WinAuth.settingUp.KerbNTLM.Kerb"></a>

RDS Custom for SQL Server 的 Kerberos 型身分驗證需要提供特定服務主體名稱 (SPN) 的連線。不過，容錯移轉事件之後，應用程式可能不知道新的 SPN。為了解決此問題，RDS Custom for SQL Server 提供 Kerberos 型端點。

Kerberos 型端點遵循特定格式。如果您的 RDS 端點為 `rds-instance-name.account-region-hash.aws-region.rds.amazonaws.com`，則對應的 Kerberos 型端點將為 `rds-instance-name.account-region-hash.aws-region.awsrds.fully qualified domain name (FQDN)`。

例如，如果 RDS 端點為 `ad-test.cocv6zwtircu.us-east-1.rds.amazonaws.com`，且網域名稱為 `corp-ad.company.com`，則 Kerberos 型端點將為 `ad-test.cocv6zwtircu.us-east-1.awsrds.corp-ad.company.com`。

此 Kerberos 型端點可以使用 Kerberos 與 SQL Server 執行個體進行驗證，即使在容錯移轉事件之後也一樣，因為端點會自動更新，以指向主要 SQL Server 執行個體的新 SPN。

### 尋找您的 CNAME
<a name="custom-sqlserver-WinAuth.settingUp.KerbNTLM.CNAME"></a>

若要尋找 CNAME，請連線至您的網域控制器，並開啟 **DNS Manager**。導覽至**轉送查詢區域**和您的 FQDN。

導覽 **awsrds**、**aws-region** 以及**帳戶和區域特定的雜湊**。

如果您要連接 RDS Custom EC2 執行個體，並嘗試使用 CNAME 在本機連線至資料庫，則您的連線將使用 NTLM 身分驗證，而不是 Kerberos。

如果從遠端用戶端連線 CNAME 之後傳回 NTLM 連線，請檢查是否允許列出必要的連接埠。

如果要檢查您的連線使用的是 Kerberos，請執行下列查詢：

```
SELECT net_transport, auth_scheme
    FROM sys.dm_exec_connections
    WHERE session_id = @@SSPID;
```

# 管理網域中的資料庫執行個體
<a name="custom-sqlserver-WinAuth.ManagingDBI"></a>

 您可以使用主控台、AWS CLI 或 Amazon RDS API 來管理資料庫執行個體，以及其與網域的關係。例如，您可以將資料庫執行個體移入、移出或移至網域之間。

 例如，使用 Amazon RDS API，您可以執行下列動作：
+  若要對失敗的成員資格重新嘗試加入網域，請使用 [ModifyDBInstance API](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 操作，並指定目前成員資格的目錄 ID。
+  如要更新成員資格的 IAM 角色名稱，請使用 `ModifyDBInstance` API 操作並指定目前成員資格的目錄 ID，以及新的 IAM 角色。
+  若要從網域移除資料庫執行個體，請使用 `ModifyDBInstance` API 操作，並指定 `none` 做為網域參數。
+  如要在網域之間移動資料庫執行個體，請使用 `ModifyDBInstance` API 操作，並指定新網域的網域識別符做為網域參數。
+  若要列出每個資料庫執行個體的成員資格，請使用 [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/DescribeDBInstances.html) API 操作。

## 還原 RDS Custom for SQL Server 資料庫執行個體，然後將其新增至 Active Directory 網域
<a name="custom-sqlserver-WinAuth.ManagingDBI.Restoring"></a>

您可以還原資料庫快照或為 SQL Server 資料庫執行個體執行時間點復原 (PITR)，然後將其新增至 Active Directory 網域。一旦還原資料庫執行個體，請使用 [步驟 5：建立或修改 RDS Custom for SQL Server 資料庫執行個體](custom-sqlserver-WinAuth.settingUp.md#custom-sqlserver-WinAuth.settingUp.CreateDBInstance) 中的說明程序來修改執行個體，以將資料庫執行個體新增至 AD 網域。

# 了解網域成員資格
<a name="custom-sqlserver-WinAuth.Understanding"></a>

 在您建立或修改資料庫執行個體之後，執行個體會成為網域的成員。AWS 主控台指出資料庫執行個體之網域成員資格的狀態。資料庫執行個體的狀態可以是下列其中一個：
+  **已加入** – 執行個體是網域的成員。
+  **加入中** – 執行個體正處於成為網域成員的程序中。
+  **加入待定** – 執行個體成員資格待定。
+  **維護加入待定** – AWS 將嘗試在下一個排定的維護時段讓執行個體成為網域的成員。
+  **移除待定** – 從網域移除執行個體待定。
+  **維護移除待定** – AWS 將嘗試在下一個排定的維護時段從網域移除執行個體。
+  **失敗** – 組態問題讓執行個體無法加入網域。請在重新發出執行個體修改命令之前檢查並修正您的組態。
+  **移除中** – 正在從網域移除執行個體。

因為網路連線問題或 IAM 角色不正確，成為網域成員的請求可能失敗。例如，您可以建立一個資料庫執行個體或修改現有執行個體，並嘗試讓資料庫執行個體失敗，以便成為網域的成員。在此情況下，請重新發出命令以建立或修改資料庫執行個體，或修改新建立的執行個體以加入網域。

# 故障診斷 Active Directory
<a name="custom-sqlserver-WinAuth.Troubleshoot"></a>

以下是您在設定或修改 AD 時可能會遇到的問題。


| 錯誤程式碼 | 描述 | 常見原因 | 故障診斷建議 | 
| --- | --- | --- | --- | 
| 錯誤 2 / 0x2 | 系統找不到指定的檔案。 | 使用 `—domain-ou` 參數指定的組織單位 (OU) 的格式或位置無效。透過 AWS Secrets Manager 指定的網域服務帳戶缺少加入 OU 所需的許可。 | 檢閱 `—domain-ou` 參數。確定網域服務帳戶具有 OU 的正確許可。 | 
| 錯誤 5 / 0x5 | 存取遭拒。 | 網域服務帳戶的許可設定錯誤，或網域中已存在電腦帳戶。 | 檢閱網域中的網域服務帳戶許可，並確認網域中沒有重複的 RDS 電腦帳戶。您可以在 RDS Custom for SQL Server 資料庫執行個體上執行 `SELECT @@SERVERNAME`，以驗證 RDS 電腦帳戶的名稱。如果您使用多可用區域，請嘗試透過容錯移轉重新開機，然後再次驗證 RDS 電腦帳戶。如需更多詳細資訊，請參閱 [在資料庫執行個體](USER_RebootInstance.md)。 | 
| 錯誤 87 / 0x57 | 參數不正確。 | 透過 AWS Secrets Manager 指定的網域服務帳戶沒有正確的許可。使用者設定檔也可能已損毀。 | 檢閱網域服務帳戶的需求。 | 
| 錯誤 234 / 0xEA | 指定的組織單位 (OU) 不存在。 | 使用 `—domain-ou` 參數指定的 OU 不存在於 AD 中。 | 檢閱 `—domain-ou` 參數，並確保指定的 OU 存在於您的 AD 中。 | 
| 錯誤 1326 / 0x52E | 使用者名稱或密碼不正確。 | AWS Secrets Manager 中提供的網域服務帳戶憑證包含未知的使用者名稱或錯誤的密碼。也可能在您的 AD 中停用了網域帳戶。 | 請確定 AWS Secrets Manager 中提供的憑證是正確的，而且網域帳戶已在 Active Directory 中啟用。 | 
| 錯誤 1355 / 0x54B | 指定的網域不存在或無法聯絡。 | 網域已關閉、指定的 DNS IP 集無法連線，或指定的 FQDN 無法連線。 | 檢閱 `—domain-dns-ips` 和 `—domain-fqdn` 參數以確定其正確無誤。檢閱 RDS Custom for SQL Server 資料庫執行個體的網路組態，並確定可連線到您的 AD。 | 
| 錯誤 1722 / 0x6BA | RPC 伺服器無法使用。 | 連線 AD 網域的 RPC 服務時發生問題。這可能是服務或網路問題。 | 驗證 RPC 服務是否正在您的網域控制器上執行，以及 TCP 連接埠 `135` 和 `49152-65535` 是否可在網域上，從 RDS Custom for SQL Server 資料庫執行個體進行連線。 | 
| 錯誤 2224 / 0x8B0 | 使用者帳戶已存在。 | 嘗試新增至 AD 的電腦帳戶已存在。 | 在 RDS Custom for SQL Server 資料庫執行個體上執行 `SELECT @@SERVERNAME`，來識別電腦帳戶，然後小心地將其從 AD 中移除。 | 
| 錯誤 2242 / 0x8c2 | 此使用者的密碼已過期。 | 透過 AWS Secrets Manager 所指定之網域服務帳戶的密碼已過期。 | 更新網域服務帳戶的密碼，此帳戶用來將 RDS Custom for SQL Server 資料庫執行個體加入 AD。 | 

# 管理 RDS Custom for SQL Server 的多可用區部署
<a name="custom-sqlserver-multiaz"></a>

 在 RDS Custom for SQL Server 的多可用區域資料庫執行個體部署中，Amazon RDS 會自動佈建，並在不同的可用區域 (AZ) 中維持同步待命複本。主要資料庫執行個體會在待命複本的可用區域間進行同步複製，以提供資料備援。

**重要**  
RDS Custom for SQL Server 的多可用區部署與 RDS for SQL Server 的異地同步備份不同。不同於 RDS for SQL Server 的異地同步備份，您必須先設定 RDS Custom for SQL Server 先決條件，才能建立異地同步備份資料庫執行個體，因為 RDS Custom 會在您自己的帳戶內執行，因此需要使用權限。  
若您未完成先決條件，異地同步備份資料庫執行個體就可能無法執行，或自動還原為單一可用區資料庫執行個體。如需先決條件的詳細資訊，請參閱 [RDS Custom for SQL Server 多可用區部署的先決條件](custom-sqlserver-multiaz.prerequisites.md)。

執行具有高可用性的資料庫執行個體，可以在規劃好的系統維護期間增強可用性。在進行已規劃的資料庫維護或發生意外的服務中斷時，Amazon RDS 會自動容錯移轉到最新的次要資料庫執行個體。此功能可讓資料庫操作迅速恢復，而不需要手動介入。主要和待命執行個體使用相同的端點，而此端點的實體網路地址在容錯移轉過程中會轉移到次要複本。當容錯移轉發生時，您不必重新設定應用程式。

![\[RDS Custom for SQL Server 支援異地同步備份。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/custom-sqlserver-multiaz-architecture.png)


您可以在建立 RDS Custom 資料庫執行個體時指定異地同步備份，以建立 RDS Custom for SQL Server 多可用區部署。您可以使用主控台，藉由修改資料庫執行個體並指定多可用區域選項，將現有 RDS Custom for SQL Server 資料庫執行個體轉換為異地同步備份部署。您也可以使用 AWS CLI 或 Amazon RDS API 來指定多可用區域資料庫執行個體部署。

RDS 主控台會顯示待命複本的可用區域 (次要 AZ)。您也可以使用 `describe-db-instances` CLI 命令或 `DescribeDBInstances` API 操作來尋找次要 AZ。

相較於單一可用區域部署，多可用區部署的 RDS Custom for SQL Server 資料庫執行個體會有增加的寫入和遞交延遲。這可能是資料庫執行個體之間的同步資料複寫造成。儘管 AWS 在可用區域間設計了低延遲網路連線，但如果您的部署容錯移轉到待命複本，延遲時間可能會變更。

**注意**  
對於生產應用程式，我們建議使用佈建 IOPS (每秒輸入/輸出操作) 資料庫執行個體類別來取得快速、一致的效能。如需資料庫執行個體類別的詳細資訊，請參閱 [Amazon RDS Custom for SQL Server 的需求和限制](custom-reqs-limits-MS.md)。

**Topics**
+ [區域和版本可用性](#custom-sqlserver-multiaz.regionversion)
+ [RDS Custom for SQL Server 多可用區部署的限制](#custom-sqlserver-multiaz.limitations)
+ [RDS Custom for SQL Server 多可用區部署的先決條件](custom-sqlserver-multiaz.prerequisites.md)
+ [建立 RDS Custom for SQL Server 多可用區部署](#custom-sqlserver-multiaz.creating)
+ [將 RDS Custom for SQL Server 單一可用區部署修改為多可用區部署](custom-sqlserver-multiaz.modify-saztomaz.md)
+ [將 RDS Custom for SQL Server 多可用區部署修改為單一可用區部署](custom-sqlserver-multiaz.modify-maztosaz.md)
+ [RDS Custom for SQL Server 多可用區部署的容錯移轉程序](custom-sqlserver-multiaz.failover.md)

## 區域和版本可用性
<a name="custom-sqlserver-multiaz.regionversion"></a>

下列 SQL Server 版次支援 RDS Custom for SQL Server 的多可用區部署：
+ SQL Server 2022 和 2019：Enterprise、Standard、Web 和 Developer Edition

**注意**  
SQL Server 2019 CU8 (15.00.4073.23) 或更低版本不支援 RDS Custom for SQL Server 的多可用區域部署。

RDS Custom for SQL Server 的多可用區部署可在所有可用 RDS Custom for SQL Server 的區域使用。如需詳細了解 RDS Custom for SQL Server 多可用區部署的區域可用性，請參閱 [支援的 RDS Custom for SQL Server 區域和資料庫引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.md#Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.sq)。

## RDS Custom for SQL Server 多可用區部署的限制
<a name="custom-sqlserver-multiaz.limitations"></a>

RDS Custom for SQL Server 多可用區部署具有下列限制：
+ 不支援跨區域多可用區部署。
+ 您無法設定次要資料庫執行個體來接受資料庫讀取活動。
+ 當您搭配使用自訂引擎版本 (CEV) 與多可用區部署時，次要資料庫執行個體也會使用相同的 CEV。次要資料庫執行個體不能使用不同的 CEV。

# RDS Custom for SQL Server 多可用區部署的先決條件
<a name="custom-sqlserver-multiaz.prerequisites"></a>

如果您有現有的 RDS Custom for SQL Server 單一可用區部署，您需要下列其他先決條件，才能將其修改為多可用區部署。您可以選擇手動完成先決條件，或使用提供的 CloudFormation 範本。最新的 CloudFormation 範本包含單一可用區和多可用區部署的先決條件。

**重要**  
若要簡化設定，建議您使用網路設定指示中提供的最新 CloudFormation 範本檔案來建立先決條件。如需更多詳細資訊，請參閱 [使用 設定 CloudFormation](custom-setup-sqlserver.md#custom-setup-sqlserver.cf)。

**注意**  
當您將現有 RDS Custom for SQL Server 單一可用區部署修改為多可用區部署時，您必須完成這些先決條件。若您未完成先決條件，不可進行多可用區設定。請遵循 [將 RDS Custom for SQL Server 單一可用區部署修改為多可用區部署](custom-sqlserver-multiaz.modify-saztomaz.md) 中的步驟以完成先決條件。
+ 更新 RDS 安全群組輸入和輸出規則，以允許連接埠 1120。
+ 在您的私人網路存取控制清單 (ACL) 中新增規則，以允許資料庫執行個體 VPC 使用 TCP 連接埠 `0-65535`。
+ 建立新的 Amazon SQS VPC 端點，讓 RDS Custom for SQL Server 資料庫執行個體與 SQS 通訊。
+ 更新執行個體設定檔角色中的 SQS 權限。

## 建立 RDS Custom for SQL Server 多可用區部署
<a name="custom-sqlserver-multiaz.creating"></a>

若要建立 RDS Custom for SQL Server 多可用區部署，請遵循 [建立並連線至 Amazon RDS Custom for SQL Server 的資料庫執行個體](custom-creating-sqlserver.md) 中的步驟。

**重要**  
若要簡化設定，建議您使用網路設定指示中提供的最新 CloudFormation 範本檔案。如需更多詳細資訊，請參閱 [使用 設定 CloudFormation](custom-setup-sqlserver.md#custom-setup-sqlserver.cf)。

多可用區部署的建立需要幾分鐘。

# 將 RDS Custom for SQL Server 單一可用區部署修改為多可用區部署
<a name="custom-sqlserver-multiaz.modify-saztomaz"></a>

您可以將現有 RDS Custom for SQL Server 資料庫執行個體從單一可用區部署修改為多可用區部署。當您修改資料庫執行個體時，Amazon RDS 會執行多個動作：
+ 拍攝主要資料庫執行個體的快照。
+ 從快照為待命複本建立新磁碟區。這些磁碟區會在背景中初始化，並在資料完全初始化之後達到最大磁碟區效能。
+ 開啟主要和次要資料庫執行個體之間的同步區塊層級複本。

**重要**  
建議您避免在尖峰活動期間，將 RDS Custom for SQL Server 資料庫執行個體從單一可用區修改為生產資料庫執行個體上的多可用區部署。

AWS 當您從單一可用區轉換為異地同步備份時， 會使用快照來建立待命執行個體，以避免停機時間，但在轉換為異地同步備份期間和之後，效能可能會受到影響。對於對寫入延遲敏感的工作負載而言，這個影響可能很重大。雖然此功能可以從快照中快速還原大量磁碟區，但由於是同步複寫，可能會導致 I/O 作業延遲。此延遲可能會影響您的資料庫效能。

**注意**  
如果您在 2024 年 8 月 29 日之前建立 RDS Custom for SQL Server 資料庫執行個體，在修改之前，請修補至最新的次要版本。  
針對 SQL Server 2019 執行個體，請將資料庫引擎版本升級至 `15.00.4410.1.v1` 或更高版本。
針對 SQL Server 2022 執行個體，請將資料庫引擎版本升級至 `16.00.4150.1.v1` 或更高版本。

**Topics**
+ [設定先決條件，以使用 CloudFormation 將單一可用區修改為多可用區部署](#custom-sqlserver-multiaz.modify-saztomaz-prereqs.cf)
+ [設定先決條件，以手動將單一可用區修改為多可用區部署](#custom-sqlserver-multiaz.modify-saztomaz-prereqs.manual)
+ [使用 RDS 主控台、 AWS CLI 或 RDS API 修改 。](#custom-sqlserver-multiaz.modify-saztomaz-afterprereqs)

## 設定先決條件，以使用 CloudFormation 將單一可用區修改為多可用區部署
<a name="custom-sqlserver-multiaz.modify-saztomaz-prereqs.cf"></a>

若要使用多可用區部署，請確保您已套用具有先決條件的最新 CloudFormation 範本，或手動設定最新的先決條件。若您已套用最新的 CloudFormation 先決條件範本，可以略過這些步驟。

使用 CloudFormation 設定 RDS Custom for SQL Server 多可用區部署先決條件

1. 開啟位於 https：//[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) 的 CloudFormation 主控台。

1. 若要啟動「建立堆疊」精靈，請選取您用來建立單一可用區部署的現有堆疊，然後選擇**更新**。

   **建立堆疊**頁面隨即出現。

1. 對於**先決條件 - 準備範本**，請選擇**取代現有範本**。

1. 針對 **Specify template** 執行下列操作：

   1. 下載最新的 CloudFormation 範本檔案。開啟連結 [custom-sqlserver-onboard.zip](samples/custom-sqlserver-onboard.zip) 的內容 (滑鼠右鍵) 功能表，然後選擇 **Save Link As** (另存連結為)。

   1. 將 `custom-sqlserver-onboard.json` 檔案儲存並擷取到您的電腦。

   1. 針對 **Template source** (範本來源)，選擇 **Upload a template file** (上傳範本檔案)。

   1. 針對 **Choose file** (選擇檔案)，導覽至 `custom-sqlserver-onboard.json` 並加以選擇。

1. 選擇**下一步**。

   **Specify stack details** (指定堆疊詳細資訊) 頁面隨即出現。

1. 若要保留預設選項，請選擇 **Next** (下一步)。

   **進階選項**頁面旋即出現。

1. 若要保留預設選項，請選擇 **Next** (下一步)。

1. 若要保留預設選項，請選擇 **Next** (下一步)。

1. 在**檢閱變更**頁面上，執行下列動作：

   1. 針對 **Capabilities (功能)**，選取 ****I acknowledge that CloudFormation might create IAM resources with custom names**** (確認可能使用自訂名稱建立 IAM 資源) 核取方塊。

   1. 選擇**提交**。

1. 確認更新是否成功。成功作業的狀態會顯示 `UPDATE_COMPLETE`。

如果更新失敗，更新過程指定的任何新組態都會復原。現有的資源仍然可以使用。例如，如果您新增編號為 18 和 19 的網路 ACL 規則，但現有規則的編號相同，則更新會傳回下列錯誤：`Resource handler returned message: "The network acl entry identified by 18 already exists.` 在此情況中，您可以將現有 ACL 規則修改為使用小於 18 的數字，然後重試更新。

## 設定先決條件，以手動將單一可用區修改為多可用區部署
<a name="custom-sqlserver-multiaz.modify-saztomaz-prereqs.manual"></a>

**重要**  
為了簡化設定，我們建議您使用網路設定說明中提供的最新 CloudFormation 範本檔案。如需詳細資訊，請參閱[設定先決條件，以使用 CloudFormation 將單一可用區修改為多可用區部署](#custom-sqlserver-multiaz.modify-saztomaz-prereqs.cf)。

如果您選擇手動設定先決條件，請執行以下任務。

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 選擇**端點**。**Create Endpoint** (建立端點) 頁面隨即出現。

1. 在**服務類別**中，選擇​ **AWS 服務**。

1. 在**服務**中，搜尋 *SQS*

1. 在 **VPC** 中，選擇部署 RDS Custom for SQL Server 資料庫執行個體的 VPC。

1. 在**子網路**中，選擇部署 RDS Custom for SQL Server 資料庫執行個體的子網路。

1. 在**安全群組**中，選擇 *-vpc-endpoint-sg* 群組。

1. 針對**政策**，選擇**自訂**

1. 在您的自訂政策中，以您自己的值取代 *AWS 分割區*、*區域*、*accountId* 和 *IAM-Instance-role*。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Condition": {
                   "StringLike": {
                       "aws:ResourceTag/AWSRDSCustom": "custom-sqlserver"
                   }
               },
               "Action": [
                   "SQS:SendMessage",
                   "SQS:ReceiveMessage",
                   "SQS:DeleteMessage",
                   "SQS:GetQueueUrl"
               ],
               "Resource": "arn:aws:sqs:us-east-1:111122223333:do-not-delete-rds-custom-*",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/{IAM-Instance-role}"
               }
           }
       ]
   }
   ```

------

1.  以 Amazon SQS 存取權限更新**執行個體設定檔**。以您自己的值取代 *AWS 分割區*、*區域* 和 *accountId*。

   ```
                           {
       "Sid": "SendMessageToSQSQueue",
       "Effect": "Allow",
       "Action": [
         "SQS:SendMessage",
         "SQS:ReceiveMessage",
         "SQS:DeleteMessage",                                    
         "SQS:GetQueueUrl"
   
       ],
       "Resource": [
         {
           "Fn::Sub": "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:do-not-delete-rds-custom-*"
         }
       ],
       "Condition": {
         "StringLike": {
           "aws:ResourceTag/AWSRDSCustom": "custom-sqlserver"
         }
       }
     } 
                           >
   ```

1. 更新 Amazon RDS 安全群組輸入和輸出規則，以允許連接埠 1120。

   1. 在**安全群組**中，選擇 *-rds-custom-instance-sg* 群組。

   1. 針對**輸入規則**，請建立**自訂 TCP** 規則，以允許來自來源 *-rds-custom-instance-sg* 群組的連接埠 *1120*。

   1. 針對**輸出規則**，請建立**自訂 TCP** 規則，以允許到目的地 *-rds-custom-instance-sg* 群組的連接埠 *1120*。

1. 在您的私人網路存取控制清單 (ACL) 中新增規則，以允許資料庫執行個體的來源子網路使用 TCP 連接埠 `0-65535`。
**注意**  
建立**輸入規則**和**輸出規則**時，請記下現有最高的**規則編號**。您建立的新規則必須具有小於 100 的**規則編號**，且不重複任何現有的**規則編號**。

   1. 在**網路 ACL** 中，選擇 *-private-network-acl* 群組。

   1. 針對**輸入規則**，請建立**所有 TCP** 規則，以允許來自來源 *privatesubnet1* 和 *privatesubnet2* 的 TCP 連接埠 `0-65535`。

   1. 針對**輸出規則**，請建立**所有 TCP** 規則，以允許到目的地 *privatesubnet1* 和 *privatesubnet2* 的 TCP 連接埠 `0-65535`。

## 使用 RDS 主控台、 AWS CLI 或 RDS API 修改 。
<a name="custom-sqlserver-multiaz.modify-saztomaz-afterprereqs"></a>

完成先決條件後，您可以使用 RDS 主控台、 AWS CLI 或 RDS API，將 RDS Custom for SQL Server 資料庫執行個體從單一可用區修改為多可用區部署。

### 主控台
<a name="custom-sqlserver-multiaz.modify-saztomaz.Console"></a>

**將現有 RDS Custom for SQL Server 單一可用區修改為多可用區部署**

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

1. 在 Amazon RDS 主控台，選擇 **Databases (資料庫)**。

   **Databases (資料庫)** 窗格隨即出現。

1. 選擇您想要修改的 RDS Custom for SQL Server 資料庫執行個體。

1. 從**動作**中，選擇**轉換為多可用區部署**。

1. 在**確認**頁面上，選擇**立即套用**，來立即套用變更。選擇此選項並不會產生停機時間，但可能會對效能產生影響。或者，您也可以選擇在下個維護時段套用更新。如需詳細資訊，請參閱[使用排程修改設定](USER_ModifyInstance.ApplyImmediately.md)。

1. 在**確認**頁面上，選擇**轉換為多可用區**。

### AWS CLI
<a name="custom-sqlserver-multiaz.modify-saztomaz.CLI"></a>

若要使用 轉換為多可用區域資料庫執行個體部署 AWS CLI，請呼叫 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 命令並設定 `--multi-az`選項。指定資料庫執行個體識別符，以及您要修改的其他選項值。如需每個選項的詳細資訊，請參閱[資料庫執行個體的設定](USER_ModifyInstance.Settings.md)。

**Example**  
下列代碼包含 `--multi-az` 選項，以修改 `mycustomdbinstance`。使用 `--no-apply-immediately`，會在下一次維護時段期間由系統套用變更。使用 `--apply-immediately` 可立即套用變更。如需詳細資訊，請參閱[使用排程修改設定](USER_ModifyInstance.ApplyImmediately.md)。  
在 Linux、macOS 或 Unix 中：  

```
aws rds modify-db-instance \
    --db-instance-identifier mycustomdbinstance \
    --multi-az \
    --no-apply-immediately
```
在 Windows 中：  

```
aws rds modify-db-instance ^
    --db-instance-identifier mycustomdbinstance ^
    --multi-az  \ ^
    --no-apply-immediately
```

### RDS API
<a name="custom-sqlserver-multiaz.modify-saztomaz.API"></a>

若要使用 RDS API 轉換為多個可用區資料庫執行個體部署，請呼叫 [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 操作，並將 `MultiAZ` 參數設為 true。

# 將 RDS Custom for SQL Server 多可用區部署修改為單一可用區部署
<a name="custom-sqlserver-multiaz.modify-maztosaz"></a>

您可以將現有 RDS Custom for SQL Server 資料庫執行個體從多可用區部署修改為單一可用區部署。

## 主控台
<a name="custom-sqlserver-multiaz.modify-maztosaz.Console"></a>

**將 RDS Custom for SQL Server 資料庫執行個體從多可用區部署修改為單一可用區部署。**

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

1. 在 Amazon RDS 主控台，選擇 **Databases (資料庫)**。

   **Databases (資料庫)** 窗格隨即出現。

1. 選擇您想要修改的 RDS Custom for SQL Server 資料庫執行個體。

1. 針對**多可用區部署**，請選擇**否**。

1. 在**確認**頁面上，選擇**立即套用**，來立即套用變更。選擇此選項並不會產生停機時間，但可能會對效能產生影響。或者，您也可以選擇在下個維護時段套用更新。如需更多詳細資訊，請參閱 [使用排程修改設定](USER_ModifyInstance.ApplyImmediately.md)。

1. 在**確認**頁面上，選擇**修改資料庫執行個體**。

## AWS CLI
<a name="custom-sqlserver-multiaz.modify-maztosaz.CLI"></a>

若要使用 AWS CLI 將多可用區部署修改為單一可用區部署，請呼叫 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 命令並包括 `--no-multi-az` 選項。指定資料庫執行個體識別符，以及您要修改的其他選項值。如需每個選項的詳細資訊，請參閱[資料庫執行個體的設定](USER_ModifyInstance.Settings.md)。

**Example**  
下列代碼包含 `--no-multi-az` 選項，以修改 `mycustomdbinstance`。使用 `--no-apply-immediately`，會在下一次維護時段期間由系統套用變更。使用 `--apply-immediately` 可立即套用變更。如需更多詳細資訊，請參閱 [使用排程修改設定](USER_ModifyInstance.ApplyImmediately.md)。  
在 Linux、macOS 或 Unix 中：  

```
aws rds modify-db-instance \
    --db-instance-identifier mycustomdbinstance \
    --no-multi-az  \
    --no-apply-immediately
```
在 Windows 中：  

```
aws rds modify-db-instance ^
    --db-instance-identifier mycustomdbinstance ^
    --no-multi-az \ ^
    --no-apply-immediately
```

## RDS API
<a name="custom-sqlserver-multiaz.modify-maztosaz.API"></a>

若要使用 RDS API 將多可用區部署修改為單一可用區部署，請呼叫 [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 操作並將參數 `MultiAZ` 設為 `false`。

# RDS Custom for SQL Server 多可用區部署的容錯移轉程序
<a name="custom-sqlserver-multiaz.failover"></a>

如果您已啟用多可用區域，當您的資料庫執行個體因為基礎設施瑕疵而發生計劃中或非計劃的中斷時，Amazon RDS 會自動切換到另一個可用區域中的待命複本。完成容錯移轉所需的時間取決於主要資料庫執行個體失效時的資料庫活動和其他條件。通常容錯移轉時間是 60–120 秒。不過，大型交易或冗長復原程序可能會增加容錯移轉時間。容錯移轉完成後，RDS 控制台使用者界面可能需要多一點時間來顯示新的可用區域。

**注意**  
重新啟動容錯移轉的資料庫執行個體時，您可以手動強制容錯移轉。如需重新啟動資料庫執行個體的相關資訊，請參閱 [在資料庫執行個體](USER_RebootInstance.md) 

Amazon RDS 會自動處理容錯移轉，因此您可以盡快恢復資料庫操作，而無須人為介入管理。如果發生下表所述的任何條件，主要資料庫執行個體會自動切換至待命複本。您可以在 RDS 事件日誌中檢視這些容錯移轉原因。


****  

| 容錯移轉原因 | 描述 | 
| --- | --- | 
| `The operating system for the RDS Custom for SQL Server Multi-AZ DB instance is being patched in an offline operation` | 作業系統修補或安全更新的維護期間觸發容錯移轉。如需更多詳細資訊，請參閱 [維持資料庫執行個體](USER_UpgradeDBInstance.Maintenance.md)。 | 
| `The primary host of the RDS Custom for SQL Server Multi-AZ DB instance is unhealthy.` | 多可用區域資料庫執行個體部署偵測到主要資料庫執行個體受損並容錯移轉。 | 
| `The primary host of the RDS Custom for SQL Server Multi-AZ DB instance is unreachable due to loss of network connectivity.` | RDS 監控偵測到主要資料庫執行個體的網路連線失敗，並觸發容錯移轉。 | 
| `The RDS Custom for SQL Server Multi-AZ DB instance was modified by the customer.` | 資料庫執行個體修改觸發了容錯移轉。如需更多詳細資訊，請參閱 [修改 RDS Custom for SQL Server 資料庫執行個體](custom-managing.modify-sqlserver.md)。 | 
| `The storage volume of the primary host of the RDS Custom for SQL Server Multi-AZ DB instance experienced a failure.` | 多可用區域資料庫執行個體部署在主要資料庫執行個體上偵測到儲存問題並容錯移轉。 | 
| `The user requested a failover of the RDS Custom for SQL Server Multi-AZ DB instance.` | RDS Custom for SQL Server 多可用區資料庫執行個體已透過容錯移轉重新啟動。如需更多詳細資訊，請參閱 [在資料庫執行個體](USER_RebootInstance.md)。 | 
| `The RDS Custom for SQL Server Multi-AZ primary DB instance is busy or unresponsive.` | 主要資料庫執行個體沒有回應。建議您採取下列步驟： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-sqlserver-multiaz.failover.html)  | 

若要判斷您的多可用區域資料庫執行個體是否已容錯移轉，您可以執行下列動作：
+ 設定資料庫事件訂閱，透過電子郵件或 SMS 通知您已啟動容錯移轉。如需事件的詳細資訊，請參閱[使用 Amazon RDS 事件通知](USER_Events.md)。
+ 您可以使用 RDS 主控台或 API 操作來檢視資料庫事件。
+ 您可以使用 RDS 主控台、CLI 和 API 操作，檢視 RDS Custom for SQL Server 多可用區域資料庫執行個體部署的目前狀態。

## 使用 RDS Custom for SQL Server 多可用區部署的應用程式存留時間 (TTL) 設定
<a name="custom-sqlserver-multiaz.ttldns"></a>

容錯移轉機制會自動將資料庫執行個體的網域名稱系統 (DNS) 記錄變更為指向待命資料庫執行個體。因此，您必須重新建立資料庫執行個體任何現有的連線。請確定任何 DNS 快取存留時間 (TTL) 組態值都很低，且您的應用程式不會長時間快取 DNS。高 TTL 值可能導致應用程式在容錯移轉後，無法快速重新連線至資料庫執行個體。

# 備份與還原 Amazon RDS Custom for SQL Server 資料庫執行個體
<a name="custom-backup-sqlserver"></a>

就像是 Amazon RDS 一樣，RDS Custom 會在啟用備份保留時，建立並儲存 RDS Custom for SQL Server 資料庫執行個體的自動備份。您也可以手動備份您的資料庫執行個體。自動備份由快照備份和交易日誌備份組成。快照備份會在指定的備份時段期間，針對資料庫執行個體的整個儲存磁碟區進行。交易日誌備份會定期針對符合 PITR 資格的資料庫進行。RDS Custom 會根據您的指定備份保留期間，儲存資料庫執行個體的自動備份。您可以使用自動備份，將資料庫執行個體復原至備份保留期間內的某個時間點。

您也可以手動進行快照備份。您可以隨時從這些快照備份建立新的資料庫執行個體。如需手動建立資料庫快照的詳細資訊，請參閱 [建立 RDS Custom for SQL Server 快照](custom-backup-sqlserver.creating.md)。

雖然快照備份可做為完整備份運作，但只會向您收取增量儲存用量的費用。RDS Custom 資料庫執行個體的第一個快照會包含完整的資料庫執行個體資料。相同資料庫的後續快照均採用遞增處理，這表示系統僅會儲存上次執行快照後有所變更的資料。

**Topics**
+ [建立 RDS Custom for SQL Server 快照](custom-backup-sqlserver.creating.md)
+ [從 RDS Custom for SQL Server 資料庫快照還原](custom-backup-sqlserver.restoring.md)
+ [將 RDS Custom for SQL Server 執行個體還原至某個時間點](custom-backup.pitr-sqs.md)
+ [刪除 RDS Custom for SQL Server 快照](custom-backup-sqlserver.deleting.md)
+ [刪除 RDS Custom for SQL Server 自動備份](custom-backup-sqlserver.deleting-backups.md)

# 建立 RDS Custom for SQL Server 快照
<a name="custom-backup-sqlserver.creating"></a>

RDS Custom for SQL Server 會建立資料庫執行個體的儲存體磁碟區快照，因此會備份整個資料庫執行個體，而不只是個別的資料庫。建立 RDS Custom 快照時，請指定要備份哪個 RDS Custom for SQL Server 資料庫執行個體。為快照命名，稍後即可從該快照進行還原。

建立快照時，RDS Custom for SQL Server 會為磁碟區 `(D:)` 建立 Amazon EBS 快照，這是連接到資料庫執行個體的資料庫磁碟區。為了讓快照更容易與特定資料庫執行個體產生關聯，它們透過 `DBSnapshotIdentifier`、`DbiResourceId` 和`VolumeType` 加上標籤。

建立資料庫快照會導致短暫的輸入/輸出暫停。根據資料庫執行個體的大小和類別，暫停時間會持續幾秒鐘至幾分鐘。快照建立時間會隨著資料庫的總數和大小而有所不同。若要進一步了解符合時間點還原 (PITR) 操作資格的資料庫數目，請參閱 [每個執行個體類別類型符合 PITR 資格的資料庫數目](custom-backup.pitr-sqs.md#custom-backup.pitr.sqlserver.eligiblecountperinstance)。

由於快照包括整個儲存體磁碟區，所以檔案大小 (例如暫存檔案) 也會影響建立快照建立時間。若要進一步了解建立快照，請參閱 [為 Amazon RDS 的單一可用區域資料庫執行個體建立資料庫快照](USER_CreateSnapshot.md)。

使用主控台或 AWS CLI 建立 RDS Custom for SQL Server 快照。

## 主控台
<a name="USER_CreateSnapshot-sqlserver.CON"></a>

**若要建立 RDS Custom 快照**

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

1. 在導覽窗格中，選擇 **Databases** (資料庫)。

1. 在 RDS Custom 資料庫執行個體清單中，選擇您要建立快照的執行個體。

1. 針對 **Actions** (動作)，選擇 **Take snapshot** (建立快照)。

   **Take DB Snapshot** (建立資料庫快照) 視窗隨即顯示。

1. 在 **Snapshot name (快照名稱)** 中輸入快照的名稱。

1. 選擇 **Take Snapshot** (擷取快照)。

## AWS CLI
<a name="USER_CreateSnapshot-sqlserver.CLI"></a>

您可以使用 [create-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-snapshot.html) AWS CLI 命令來建立 RDS Custom 資料庫執行個體的快照。

指定下列選項：
+ `--db-instance-identifier` – 識別您要備份的 RDS Custom 資料庫執行個體
+ `--db-snapshot-identifier` – 為您的 RDS Custom 快照命名以便稍後從該快照還原

在此範例中，您會為名稱為 `my-custom-instance` 的 RDS Custom 資料庫執行個體建立名稱為 *`my-custom-snapshot`* 的資料庫快照。

**Example**  
對於 Linux、macOS 或 Unix：  

```
1. aws rds create-db-snapshot \
2.     --db-instance-identifier my-custom-instance \
3.     --db-snapshot-identifier my-custom-snapshot
```
在 Windows 中：  

```
1. aws rds create-db-snapshot ^
2.     --db-instance-identifier my-custom-instance ^
3.     --db-snapshot-identifier my-custom-snapshot
```

# 從 RDS Custom for SQL Server 資料庫快照還原
<a name="custom-backup-sqlserver.restoring"></a>

還原 RDS Custom for SQL Server 資料庫執行個體時，您要提供資料庫快照的名稱和新執行個體的名稱。您無法從快照還原至現有的 RDS Custom 資料庫執行個體。還原時，會建立新的 RDS Custom for SQL Server 資料庫執行個體。

從快照還原會將儲存體磁碟區還原至拍攝快照的時間點。這將包括 `(D:)` 磁碟區上存在的所有資料庫和任何其他檔案。

## 主控台
<a name="custom-backup-sqlserver.restoring.console"></a>

**若要從資料庫快照還原 RDS Custom 資料庫執行個體**

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

1. 在導覽窗格中，選擇 **Snapshots** (快照)。

1. 選擇想要從中還原的資料庫執行個體。

1. 針對 **Actions** (動作)，選擇 **Restore snapshot** (還原快照)。

1. 在 **Restore DB Instance** (還原資料庫執行個體) 頁面上，針對 **DB Instance Identifier (資料庫執行個體識別符)**，輸入您還原的 RDS Custom 資料庫執行個體的名稱。

1. 選擇 **Restore DB instance** (還原資料庫執行個體)。

## AWS CLI
<a name="custom-backup-sqlserver.restoring.CLI"></a>

您可以使用 [restore-db-instance-from-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html) AWS CLI 命令來還原 RDS Custom 資料庫快照。

如果您要從中還原的快照適用於私有資料庫執行個體，請務必指定正確的 `db-subnet-group-name` 和 `no-publicly-accessible`。否則，資料庫執行個體預設為可公開存取。下列選項是必要的：
+ `db-snapshot-identifier` – 識別要從中進行還原的快照
+ `db-instance-identifier` – 指定要從資料庫快照建立之 RDS Custom 資料庫執行個體的名稱
+ `custom-iam-instance-profile` – 指定與 RDS Custom 資料庫執行個體的基礎 Amazon EC2 執行個體關聯的執行個體設定檔。

下列程式碼會為 `my-custom-instance` 還原名稱為 `my-custom-snapshot` 的快照。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
aws rds restore-db-instance-from-db-snapshot \
  --db-snapshot-identifier my-custom-snapshot \
  --db-instance-identifier my-custom-instance \
  --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance \
  --no-publicly-accessible
```
在 Windows 中：  

```
aws rds restore-db-instance-from-db-snapshot ^
  --db-snapshot-identifier my-custom-snapshot ^
  --db-instance-identifier my-custom-instance ^
  --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance ^
  --no-publicly-accessible
```

# 將 RDS Custom for SQL Server 執行個體還原至某個時間點
<a name="custom-backup.pitr-sqs"></a>

您可以將資料庫執行個體還原至特定時間點 (PITR)，建立新的資料庫執行個體。若要支援 PITR，您的資料庫執行個體必須啟用備份保留。

RDS Custom for SQL Server 資料庫執行個體的最晚可還原時間取決於許多因素，但通常是目前時間的 5 分鐘內。若要查看資料庫執行個體的最新可還原時間，請使用AWS CLI[describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 命令，並查看資料庫執行個體`LatestRestorableTime`欄位中傳回的值。若要在 Amazon RDS 主控台中查看每個資料庫執行個體的最新可還原時間，請選擇**自動備份**。

您可以還原至備份保留期間內的任何時間點。若要查看每個資料庫執行個體的最早可還原時間，請在 Amazon RDS 主控台中選擇**自動備份**。

如需 PITR 的一般資訊，請參閱 [將 Amazon RDS 的資料庫執行個體還原至指定時間](USER_PIT.md)。

**Topics**
+ [RDS Custom for SQL Server 的 PITR 考量](#custom-backup.pitr.sqlserver)
+ [每個執行個體類別類型符合 PITR 資格的資料庫數目](#custom-backup.pitr.sqlserver.eligiblecountperinstance)
+ [使資料庫不符合 PITR 的資格](#custom-backup.pitr.sqlserver.ineligible)
+ [Amazon S3 中的交易日誌](#custom-backup.pitr.sqlserver.tlogs)
+ [使用 AWS 管理主控台、 AWS CLI或 RDS API 還原 PITR。](#custom-backup.pitr-sqs-concli)

## RDS Custom for SQL Server 的 PITR 考量
<a name="custom-backup.pitr.sqlserver"></a>

在 RDS Custom for SQL Server 中，PITR 與 Amazon RDS 中的 PITR 有以下的重要不同：
+ PITR 只會還原資料庫執行個體中的資料庫。它不會還原作業系統或 C: 磁碟機上的檔案。
+ 對於 RDS Custom for SQL Server 資料庫執行個體，資料庫會自動備份，而且只有在下列條件下符合 PITR 的資格：
  + 資料庫在線上。
  + 其復原模型設定為 `FULL`。
  + 可寫入。
  + 在 D: 磁碟機上有實體檔案。
  + 並未列在 `rds_pitr_blocked_databases` 資料表中。如需詳細資訊，請參閱[使資料庫不符合 PITR 的資格](#custom-backup.pitr.sqlserver.ineligible)。
+ 符合 PITR 資格的資料庫是由其資料庫 ID 的順序決定。RDS Custom for SQL Server 最多允許每個資料庫執行個體有 5,000 個資料庫。但是 RDS Custom for SQL Server 資料庫執行個體的 PITR 操作還原的資料庫數上限取決於執行個體類別類型。如需詳細資訊，請參閱[每個執行個體類別類型符合 PITR 資格的資料庫數目](#custom-backup.pitr.sqlserver.eligiblecountperinstance)。

  其他不屬於 PITR 一部分的資料庫可以從資料庫快照還原，包括用於 PITR 的自動快照備份。
+ 新增資料庫、重新命名資料庫或還原符合 PITR 資格的資料庫，會啟動資料庫執行個體的快照。
+ 當資料庫執行個體經過擴展運算操作時，符合 PITR 資格的資料庫數目上限會變更，取決於目標執行個體類別類型。如果執行個體向上擴展，允許執行個體上的更多資料庫符合 PITR 的資格，則會擷取新的快照。
+ 還原的資料庫名稱與來源資料庫執行個體中的名稱相同。您無法指定不同的名稱。
+ `AWSRDSCustomSQLServerIamRolePolicy` 需要存取其他 AWS服務。如需詳細資訊，請參閱[將存取政策新增至 AWSRDSCustomSQLServerInstanceRole](custom-setup-sqlserver.md#custom-setup-sqlserver.iam.add-policy)。
+ 不支援 RDS Custom for SQL Server 的時區變更。如果您變更作業系統或資料庫執行個體時區，PITR (和其他自動化) 無法運作。

## 每個執行個體類別類型符合 PITR 資格的資料庫數目
<a name="custom-backup.pitr.sqlserver.eligiblecountperinstance"></a>

下表顯示根據執行個體類別類型符合 PITR 資格的資料庫數目上限。


| 執行個體類別類型 | PITR 合格資料庫的數目上限 | 
| --- | --- | 
| db.\$1.large | 100 | 
| db.\$1.xlarge 到 db.\$1.2xlarge | 150 | 
| db.\$1.4xlarge 到 db.\$1.8xlarge | 300 | 
| db.\$1.12xlarge 到 db.\$1.16xlarge | 600 | 
| db.\$1.24xlarge、db.\$132xlarge | 1000 | 

`*` *表示不同的執行個體類別類型。*

資料庫執行個體上符合 PITR 資格的資料庫數目上限取決於執行個體類別類型。在 RDS Custom for SQL Server 支援的執行個體類別類型上，數字範圍從最小 100 到最大 1000。SQL 伺服器系統資料庫 `(master, model, msdb, tempdb)` 不包含在此限制中。當資料庫執行個體向上擴展或縮減時，RDS Custom 會根據目標執行個體類別類型，自動更新符合 PITR 資格的資料庫數目。RDS Custom for SQL Server 會在資料庫執行個體上符合 PITR 資格的資料庫數目上限變更時傳送 `RDS-EVENT-0352`。如需詳細資訊，請參閱[自訂引擎版本事件](USER_Events.Messages.md#USER_Events.Messages.CEV)。

**注意**  
PITR 對超過 100 個資料庫的支援僅適用於 2023 年 8 月 26 日之後建立的資料庫執行個體。對於 2023 年 8 月 26 日之前建立的執行個體，無論執行個體類別為何，符合 PITR 資格的資料庫數目上限為 100。若要在 2023 年 8 月 26 日之前建立的資料庫執行個體上啟用超過 100 個資料庫的 PITR 支援，您可以執行下列動作：  
將資料庫引擎版本升級至 15.00.4322.2.v1 或更新版本

在 PITR 操作期間，RDS Custom 會在還原時間還原來源資料庫執行個體上屬於 PITR 一部分的所有資料庫。一旦目標資料庫執行個體完成還原操作，如果啟用備份保留，資料庫執行個體將根據目標資料庫執行個體上符合 PITR 資格的資料庫數目上限開始備份。

例如，如果您的資料庫執行個體在具有 200 個資料庫的 `db.*.xlarge` 上執行：

1. RDS Custom for SQL Server 會為 PITR 備份選擇依資料庫 ID 排序的前 150 個資料庫。

1. 您可以修改執行個體以向上擴展至 db.\$1.4xlarge。

1. 擴展運算操作完成後，RDS Custom for SQL Server 會為 PITR 備份選擇依資料庫 ID 排序的前 300 個資料庫。滿足 PITR 要求條件的 200 個資料庫現在都符合 PITR 的資格。

1. 您現在修改執行個體以縮減至 db.\$1.xlarge。

1. 擴展運算操作完成後，RDS Custom for SQL Server 會為 PITR 備份再次選取依資料庫 ID 排序的前 150 個資料庫。

## 使資料庫不符合 PITR 的資格
<a name="custom-backup.pitr.sqlserver.ineligible"></a>

您可以選擇從 PITR 排除個別資料庫。若要做到這一點，請將它們的 `database_id` 值放到 `rds_pitr_blocked_databases` 資料表。使用下列 SQL 指令碼以建立資料表。

**若要建立 rds\$1pitr\$1blocked\$1databases 資料表**
+ 執行以下 SQL 指令碼。

  ```
  create table msdb..rds_pitr_blocked_databases
  (
  database_id INT NOT NULL,
  database_name SYSNAME NOT NULL,
  db_entry_updated_date datetime NOT NULL DEFAULT GETDATE(),
  db_entry_updated_by SYSNAME NOT NULL DEFAULT CURRENT_USER,
  PRIMARY KEY (database_id)
  );
  ```

如需符合資格和不符合資格資料庫的清單，請參閱 Amazon S3 儲存貯體 `do-not-delete-rds-custom-$ACCOUNT_ID-$REGION-unique_identifier` 的 `RDSCustomForSQLServer/Instances/DB_instance_resource_ID/TransactionLogMetadata` 目錄中的 `RI.End` 檔案。如需 `RI.End` 詳細資訊，請參閱 [Amazon S3 中的交易日誌](#custom-backup.pitr.sqlserver.tlogs)。

您也可以使用下列 SQL 指令碼來判斷 PITR 的合格資料庫清單。將 `@limit` 變數設定為符合執行個體類別 PITR 資格的資料庫數目上限。如需詳細資訊，請參閱[每個執行個體類別類型符合 PITR 資格的資料庫數目](#custom-backup.pitr.sqlserver.eligiblecountperinstance)。

**判斷資料庫執行個體類別上 PITR 的合格資料庫清單**
+ 執行以下 SQL 指令碼。

  ```
  DECLARE @Limit INT;
  SET @Limit = (insert-database-instance-limit-here);
  
  USE msdb;
  IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND  TABLE_NAME = 'rds_pitr_blocked_databases'))
      WITH TABLE0 AS (
          SELECT hdrs.database_id as DatabaseId, sdb.name as DatabaseName, 'ALWAYS_ON_NOT_WRITABLE_REPLICA' as Reason, NULL as DatabaseNameOnPitrTable
          FROM sys.dm_hadr_database_replica_states hdrs
          INNER JOIN sys.databases sdb ON sdb.database_id = hdrs.database_id
          WHERE (hdrs.is_local = 1 AND hdrs.is_primary_replica = 0) 
          OR (sys.fn_hadr_is_primary_replica (sdb.name) = 1 AND DATABASEPROPERTYEX (sdb.name, 'Updateability') = 'READ_ONLY')
      ),
      TABLE1 as (
              SELECT dbs.database_id as DatabaseId, sysdbs.name as DatabaseName, 'OPTOUT' as Reason,
              CASE WHEN dbs.database_name = sysdbs.name THEN NULL ELSE dbs.database_name END AS DatabaseNameOnPitrTable
              FROM msdb.dbo.rds_pitr_blocked_databases dbs
              INNER JOIN sys.databases sysdbs ON dbs.database_id = sysdbs.database_id
              WHERE sysdbs.database_id > 4
              ),
      TABLE2 as (
              SELECT
              db.name AS DatabaseName,
              db.create_date AS CreateDate,
              db.state_desc AS DatabaseState,
              db.database_id AS DatabaseId,
              rs.database_guid AS DatabaseGuid,
              rs.last_log_backup_lsn AS LastLogBackupLSN,
              rs.recovery_fork_guid RecoveryForkGuid,
              rs.first_recovery_fork_guid AS FirstRecoveryForkGuid,
              db.recovery_model_desc AS RecoveryModel,
              db.is_auto_close_on AS IsAutoClose,
              db.is_read_only as IsReadOnly,
              NEWID() as FileName,
              CASE WHEN(db.state_desc = 'ONLINE'
                      AND db.recovery_model_desc != 'SIMPLE' 
                      AND((db.is_auto_close_on = 0 and db.collation_name IS NOT NULL) OR db.is_auto_close_on = 1)) 
                      AND db.is_read_only != 1
                      AND db.user_access = 0
                      AND db.source_database_id IS NULL
                      AND db.is_in_standby != 1
                      THEN 1 ELSE 0 END AS IsPartOfSnapshot,
              CASE WHEN db.source_database_id IS NULL THEN 0 ELSE 1 END AS IsDatabaseSnapshot
              FROM sys.databases db
              INNER JOIN sys.database_recovery_status rs
              ON db.database_id = rs.database_id
              WHERE DB_NAME(db.database_id) NOT IN('tempdb') AND
              db.database_id NOT IN (SELECT DISTINCT DatabaseId FROM TABLE1) AND
              db.database_id NOT IN (SELECT DISTINCT DatabaseId FROM TABLE0)
          ),
          TABLE3 as(
              Select @Limit+count(DatabaseName) as TotalNumberOfDatabases from TABLE2 where TABLE2.IsPartOfSnapshot=1 and DatabaseName in ('master','model','msdb')
          )
          SELECT TOP(SELECT TotalNumberOfDatabases from TABLE3)  DatabaseName,CreateDate,DatabaseState,DatabaseId from TABLE2 where TABLE2.IsPartOfSnapshot=1
          ORDER BY TABLE2.DatabaseID ASC
  ELSE
      WITH TABLE0 AS (
          SELECT hdrs.database_id as DatabaseId, sdb.name as DatabaseName, 'ALWAYS_ON_NOT_WRITABLE_REPLICA' as Reason, NULL as DatabaseNameOnPitrTable
          FROM sys.dm_hadr_database_replica_states hdrs
          INNER JOIN sys.databases sdb ON sdb.database_id = hdrs.database_id
          WHERE (hdrs.is_local = 1 AND hdrs.is_primary_replica = 0) 
          OR (sys.fn_hadr_is_primary_replica (sdb.name) = 1 AND DATABASEPROPERTYEX (sdb.name, 'Updateability') = 'READ_ONLY')
      ),
      TABLE1 as (
              SELECT
              db.name AS DatabaseName,
              db.create_date AS CreateDate,
              db.state_desc AS DatabaseState,
              db.database_id AS DatabaseId,
              rs.database_guid AS DatabaseGuid,
              rs.last_log_backup_lsn AS LastLogBackupLSN,
              rs.recovery_fork_guid RecoveryForkGuid,
              rs.first_recovery_fork_guid AS FirstRecoveryForkGuid,
              db.recovery_model_desc AS RecoveryModel,
              db.is_auto_close_on AS IsAutoClose,
              db.is_read_only as IsReadOnly,
              NEWID() as FileName,
              CASE WHEN(db.state_desc = 'ONLINE'
                      AND db.recovery_model_desc != 'SIMPLE' 
                      AND((db.is_auto_close_on = 0 and db.collation_name IS NOT NULL) OR db.is_auto_close_on = 1)) 
                      AND db.is_read_only != 1
                      AND db.user_access = 0
                      AND db.source_database_id IS NULL
                      AND db.is_in_standby != 1
                      THEN 1 ELSE 0 END AS IsPartOfSnapshot,
              CASE WHEN db.source_database_id IS NULL THEN 0 ELSE 1 END AS IsDatabaseSnapshot
              FROM sys.databases db
              INNER JOIN sys.database_recovery_status rs
              ON db.database_id = rs.database_id
              WHERE DB_NAME(db.database_id) NOT IN('tempdb') AND
              db.database_id NOT IN (SELECT DISTINCT DatabaseId FROM TABLE0)
          ),
          TABLE2 as(
              SELECT @Limit+count(DatabaseName) as TotalNumberOfDatabases from TABLE1 where TABLE1.IsPartOfSnapshot=1 and DatabaseName in ('master','model','msdb')
          )
          select top(select TotalNumberOfDatabases from TABLE2)  DatabaseName,CreateDate,DatabaseState,DatabaseId from TABLE1 where TABLE1.IsPartOfSnapshot=1
          ORDER BY TABLE1.DatabaseID ASC
  ```

**注意**  
僅有符號連結的資料庫也會從符合 PITR 操作資格的資料庫排除。上述查詢不會根據此準則進行篩選。

## Amazon S3 中的交易日誌
<a name="custom-backup.pitr.sqlserver.tlogs"></a>

備份保留期決定是否會自動擷取 RDS Custom for SQL Server 資料庫執行個體的交易日誌並上傳到 Amazon S3。非零值表示會建立自動備份，而且 RDS Custom 代理程式每 5 分鐘會將交易日誌上傳到 S3。

S3 上的交易日誌檔會使用您在建立資料庫執行個體時提供的 AWS KMS key 進行靜態加密。如需詳細資訊，請參閱《Amazon Simple Storage Service 使用者指南》**中的[使用伺服器端加密保護資料](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)。

每個資料庫的交易日誌會上傳至名稱為 `do-not-delete-rds-custom-$ACCOUNT_ID-$REGION-unique_identifier` 的 S3 儲存貯體。S3 儲存貯體中的 `RDSCustomForSQLServer/Instances/DB_instance_resource_ID` 目錄包含兩個子目錄：
+ `TransactionLogs` – 包含每個資料庫的交易日誌及其各自的中繼資料。

  交易日誌檔名稱遵循 `yyyyMMddHHmm.database_id.timestamp` 模式，例如：

  ```
  202110202230.11.1634769287
  ```

  具有尾碼 `_metadata` 的相同檔案名稱包含交易日誌的相關資訊，例如日誌序號、資料庫名稱和 `RdsChunkCount`。`RdsChunkCount` 會決定多少實體檔案表示單一交易日誌檔。您可能會看到具有尾碼 `_0001`、`_0002` 等等的檔案，這表示交易日誌檔的實際區塊。如果您想要使用區塊的交易日誌檔，請務必在下載區塊之後合併。

  請考量具有下列檔案的案例：
  + `202110202230.11.1634769287`
  + ` 202110202230.11.1634769287_0001`
  + ` 202110202230.11.1634769287_0002 `
  + ` 202110202230.11.1634769287_metadata`

  `RdsChunkCount` 為 `3`。合併檔案的順序如下：`202110202230.11.1634769287`、` 202110202230.11.1634769287_0001`、`202110202230.11.1634769287_0002`。
+ `TransactionLogMetadata` – 包含交易日誌擷取之每個反覆項目的相關中繼資料資訊。

  `RI.End` 檔案包含其交易日誌已擷取之所有資料庫的資訊，以及已存在但是其交易日誌未擷取之所有資料庫的資訊。`RI.End` 檔案名稱遵循 `yyyyMMddHHmm.RI.End.timestamp` 模式，例如：

  ```
  202110202230.RI.End.1634769281
  ```

## 使用 AWS 管理主控台、 AWS CLI或 RDS API 還原 PITR。
<a name="custom-backup.pitr-sqs-concli"></a>

您可以使用 AWS CLI、 或 RDS APIAWS 管理主控台，將 RDS Custom for SQL Server 資料庫執行個體還原至某個時間點。

### 主控台
<a name="custom-backup-sqs.pitr2.CON"></a>

**若要將 RDS Custom 資料庫執行個體還原至指定時間**

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

1. 在導覽窗格中，選擇 **Automated backups** (自動備份)。

1. 選擇您想要還原的 RDS Custom 資料庫執行個體。

1. 針對 **Actions** (動作)，選擇 **Restore to point in time** (還原至時間點)。

   **Restore to point in time (還原到時間點)** 視窗隨即出現。

1. 選擇 **Latest restorable time (最近的可還原時間)** 以還原最近一次的可能時間，或選擇 **Custom (自訂)** 以選擇一個時間。

   如果您選擇 **Custom (自訂)**，請輸入您希望執行個體叢集還原到什麼日期和時間。

   會以您的當地時區顯示時間，根據國際標準時間 (UTC) 的時差來表示。例如，UTC-5 是東部標準時間/中部日光節約時間。

1. 對於 **DB Instance Identifier** (資料庫執行個體識別符)，輸入目標還原 RDS Custom 資料庫執行個體的名稱。名稱必須是唯一的。

1. 視需要選擇其他選項，例如資料庫執行個體類別。

1. 選擇 **Restore to point in time (還原至時間點)**。

### AWS CLI
<a name="custom-backup-sqs.pitr2.CLI"></a>

您可以使用 [ restore-db-instance-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) AWS CLI 命令來建立新的 RDS Custom 資料庫執行個體，將資料庫執行個體還原至指定時間。

使用下列其中一個選項來指定要從中還原的備份：
+ `--source-db-instance-identifier mysourcedbinstance`
+ `--source-dbi-resource-id dbinstanceresourceID`
+ `--source-db-instance-automated-backups-arn backupARN`

`custom-iam-instance-profile` 選項為必要項目。

下列範例會將 `my-custom-db-instance` 還原至名稱為 `my-restored-custom-db-instance` 的新資料庫執行個體，截至指定的時間。

**Example**  
對於 Linux、macOS 或 Unix：  

```
1. aws rds restore-db-instance-to-point-in-time \
2.     --source-db-instance-identifier my-custom-db-instance\
3.     --target-db-instance-identifier my-restored-custom-db-instance \
4.     --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance \
5.     --restore-time 2022-10-14T23:45:00.000Z
```
在 Windows 中：  

```
1. aws rds restore-db-instance-to-point-in-time ^
2.     --source-db-instance-identifier my-custom-db-instance ^
3.     --target-db-instance-identifier my-restored-custom-db-instance ^
4.     --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance ^
5.     --restore-time 2022-10-14T23:45:00.000Z
```

# 刪除 RDS Custom for SQL Server 快照
<a name="custom-backup-sqlserver.deleting"></a>

當您不再需要時，可以刪除由 RDS Custom for SQL Server 管理的資料庫快照。Amazon RDS 與 RDS Custom 資料庫執行個體的刪除程序相同。

二進位和根磁碟區的 Amazon EBS 快照會在您的帳戶中保留較長的時間，因為這些快照可能會連結到您帳戶中執行的某些執行個體或其他 RDS Custom for SQL Server 快照。這些 EBS 快照不再與任何現有 RDS Custom for SQL Server 資源 (資料庫執行個體或備份) 相關之後，會自動刪除這些快照。

## 主控台
<a name="USER_DeleteSnapshot-sqlserver.CON"></a>

**若要刪除 RDS Custom 資料庫執行個體的快照**

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

1. 在導覽窗格中，選擇 **Snapshots** (快照)。

1. 選擇想要刪除的資料庫快照。

1. 針對 **Actions** (動作)，選擇 **Delete Snapshot** (刪除快照)。

1. 在確認頁面上，選擇 **Delete (刪除)**。

## AWS CLI
<a name="USER_DeleteSnapshot-sqlserver.CLI"></a>

若要刪除 RDS Custom 快照，請使用 AWS CLI 命令 [delete-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-snapshot.html)。

下列選項是必要的：
+ `--db-snapshot-identifier` – 要刪除的快照

以下範例會刪除 `my-custom-snapshot` 資料庫快照。

**Example**  
在 Linux、macOS 或 Unix 中：  

```
1. aws rds delete-db-snapshot \  
2.   --db-snapshot-identifier my-custom-snapshot
```
在 Windows 中：  

```
1. aws rds delete-db-snapshot ^
2.   --db-snapshot-identifier my-custom-snapshot
```

# 刪除 RDS Custom for SQL Server 自動備份
<a name="custom-backup-sqlserver.deleting-backups"></a>

不再需要保留 RDS Custom for SQL Server 的自動備份時，刪除即可。該程序與刪除 Amazon RDS 備份的程序相同。

## 主控台
<a name="USER_WorkingWithAutomatedBackups-sqlserver-Deleting.CON"></a>

**刪除保留的自動備份**

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

1. 在導覽窗格中，選擇 **Automated backups** (自動備份)。

1. 選擇 **Retained (已保留)**。

1. 選擇您要刪除的已保留自動備份。

1. 對於 **Actions** (動作)，請選擇 **Delete** (刪除)。

1. 在確認頁面上，輸入 **delete me**，然後選擇 **Delete (刪除)**。

## AWS CLI
<a name="USER_WorkingWithAutomatedBackups-sqlserver-Deleting.CLI"></a>

您可以使用 AWS CLI 命令 [delete-db-instance-automated-backup](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-instance-automated-backup.html) 刪除保留的自動備份。

下列選項用來刪除保留的自動備份：
+ `--dbi-resource-id` – 來源 RDS Custom 資料庫執行個體的資源識別符。

  您可以使用 AWS CLI 命令 [describe-db-instance-automated-backups](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instance-automated-backups.html)，刪除已保留自動備份的來源資料庫執行個體的來源識別符。

下列範例刪除來源資料庫執行個體識別符為 `custom-db-123ABCEXAMPLE` 的已保留自動備份。

**Example**  
對於 Linux、macOS 或 Unix：  

```
1. aws rds delete-db-instance-automated-backup \
2.     --dbi-resource-id custom-db-123ABCEXAMPLE
```
在 Windows 中：  

```
1. aws rds delete-db-instance-automated-backup ^
2.     --dbi-resource-id custom-db-123ABCEXAMPLE
```

# 複製 Amazon RDS Custom for SQL Server 資料庫快照
<a name="custom-copying-snapshot-sqlserver"></a>

透過 RDS Custom for SQL Server，即可複製自動備份和手動資料庫​快照。複製快照之後，您建立的複本即為手動快照。您可以製作自動備份或手動快照的多個複本，但每個複本都必須具有唯一的識別符。

您只能在可使用 RDS Custom for SQL Server 的不同 AWS AWS 區域 帳戶中複製快照。目前不支援下列作業：
+ 在相同的 AWS 區域中複製資料庫快照。
+ 跨帳戶複製資料庫快照 AWS 。

RDS Custom for SQL Server 支援增量快照複製。如需詳細資訊，請參閱[增量快照複製的考量事項](USER_CopySnapshot.md#USER_CopySnapshot.Incremental)。

**Topics**
+ [限制](#custom-copying-snapshot-sqlserver.Limitations)
+ [處理加密](#custom-copying-snapshot-sqlserver.Encryption)
+ [跨區域複製](#custom-copying-snapshot-sqlserver.XRCopy)
+ [使用自訂引擎版本 (CEV) 建立的資料庫執行個體快照](#custom-copying-snapshot-sqlserver.CEVSnap)
+ [將所需的許可授予您的 IAM 主體](#custom-copying-snapshot-sqlserver.GrantPermIAM)
+ [複製資料庫快照](#custom-copying-snapshot-sqlserver.CopyingDBSnapshot)

## 限制
<a name="custom-copying-snapshot-sqlserver.Limitations"></a>

下列限制適用於複製 RDS Custom for SQL Server 的資料庫快照：
+ 如果您在目標快照變成可用之前刪除來源快照，則快照複本可能會失敗。刪除來源快照之前，請確認目標快照的狀態為 `AVAILABLE`。
+ 您無法在資料庫快照複製請求中指定選項群組名稱或複製選項群組。
+ 如果您在複製程序之前或期間刪除來源資料庫快照的任何相依 AWS 資源，您的複製快照請求可能會以非同步方式失敗。
  + 如果您刪除儲存在帳戶中 RDS Custom 受管 S3 儲存貯體中之來源資料庫執行個體的服務主金鑰 (SMK) 備份檔案，資料庫快照複本就會以非同步方式成功。不過，依賴 SMK 的 SQL Server 功能 (例如啟用 TDE 的資料庫) 會遇到問題。如需詳細資訊，請參閱[針對 RDS Custom for SQL Server 中已啟用 TDE 之資料庫的 PENDING\$1RECOVERY 狀態進行故障診斷](custom-troubleshooting-sqlserver.md#custom-troubleshooting-sqlserver.pending_recovery)。
+  AWS 區域 目前不支援在相同 內複製資料庫快照。
+ 目前不支援跨 AWS 帳戶複製資料庫快照。

複製 Amazon RDS 資料庫快照的限制也適用於 RDS Custom for SQL Server。如需詳細資訊，請參閱[限制](USER_CopySnapshot.md#USER_CopySnapshot.Limitations)。

## 處理加密
<a name="custom-copying-snapshot-sqlserver.Encryption"></a>

所有 RDS Custom for SQL Server 資料庫執行個體和資料庫快照皆使用 KMS 金鑰加密。您只能將加密的快照複製到加密的快照，因此您必須 AWS 區域 為資料庫快照複製請求指定目的地中有效的 KMS 金鑰。

在整個複製過程中來源快照仍會保持加密狀態。Amazon RDS 使用封套加密，可在具有指定目的地 AWS 區域 KMS 金鑰的複製作業期間保護資料。如需詳細資訊，請參閱《AWS Key Management Service 開發人員指南》中的[封套加密](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#enveloping)。

## 跨區域複製
<a name="custom-copying-snapshot-sqlserver.XRCopy"></a>

您可跨 AWS 區域複製資料庫快照。但是，跨區域快照複製具有特定的限制和考量。

### 授權 RDS 跨 進行通訊 AWS 區域 以進行快照複製
<a name="custom-copying-snapshot-sqlserver.XRCopy.Authorize"></a>

成功處理跨區域資料庫快照複製請求後，RDS 隨即啟動複製。系統會建立 RDS 存取來源快照的授權請求。此授權請求會將來源資料庫快照連結至目標資料庫快照。這可讓 RDS 僅複製到指定的目標快照。

RDS 會透過使用服務連結 IAM 角色中的 `rds:CrossRegionCommunication` 許可來驗證授權。如果授權複本，RDS 即可與來源區域通訊並完成複本作業。

對於之前未透過 CopyDBSnapshot 請求授權的資料庫快照，RDS 將無法存取。複製完成後，即會撤銷授權。

RDS 使用服務連結的角色來驗證來源區域中的授權。如果您在複製程序期間刪除服務連結的角色，則複本會失敗。

如需詳細資訊，請參閱《AWS Identity and Access Management 使用者指南》**中的[使用服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)。

### 使用 AWS Security Token Service 登入資料
<a name="custom-copying-snapshot-sqlserver.XRCopy.STS"></a>

來自 global AWS Security Token Service (AWS STS) 端點的工作階段權杖僅在預設啟用 AWS 區域 的 中有效 （商業區域）。如果您在 中使用來自 `assumeRole` API 操作的登入資料 AWS STS，如果來源區域是選擇加入區域，請使用區域端點。否則，請求將失敗。您的登入資料在兩個區域中都必須有效，只有在您使用區域 AWS STS 端點時，才適用於選擇加入區域。

若要使用全域端點，請確保操作時在這兩個區域均已將其啟用。在 AWS STS 帳戶設定`Valid`中的所有 AWS 區域 中，將全域端點設定為 。

如需詳細資訊，請參閱《AWS Identity and Access Management 使用者指南》**中的[管理 AWS 區域中的 AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)。

## 使用自訂引擎版本 (CEV) 建立的資料庫執行個體快照
<a name="custom-copying-snapshot-sqlserver.CEVSnap"></a>

對於使用[自訂引擎版本 (CEV)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev-sqlserver.html) 的資料庫執行個體之資料庫快照，RDS 會將 CEV 與資料庫快照建立關聯。若要跨 複製與 CEV 相關聯的來源資料庫快照 AWS 區域，RDS 會將 CEV 以及來源資料庫快照複製到目的地區域。

如果您要將多個與相同 CEV 相關聯的資料庫快照複製到相同的目的地區域，則第一個複製請求會複製相關聯的 CEV。下列請求的複製程序會尋找最初複製的 CEV，並將其與下列資料庫快照複本建立關聯。現有的 CEV 複本必須處於 `AVAILABLE` 狀態，才能與資料庫快照複本建立關聯。

若要複製與 CEV 相關聯的資料庫快照，請求者的 IAM 政策必須具有許可，可同時授權資料庫快照複製和相關聯 CEV 複製。請求者的 IAM 政策需要下列許可，才能允許相關聯的 CEV 複製：
+ `rds:CopyCustomDBEngineVersion` - 您的申請者 IAM 主體需要具有許可，可將來源 CEV 與來源資料庫快照複製到目標區域。如果您的請求者 IAM 主體未獲授權複製來源 CEV，則快照複製請求會因授權錯誤而失敗。
+ `ec2:CreateTags` - 來源 CEV 的基礎 EC2 AMI 會複製到目標區域，做為 CEV 複本的一部分。RDS Custom 在複製 AMI 之前，會嘗試使用 `AWSRDSCustom` 標籤來標記 AMI。請確定您的請求者 IAM 主體具有許可，可針對來源區域中來源 CEV 基礎的 AMI 建立標籤。

如需更多 CEV 複製許可的相關資訊，請參閱 [將所需的許可授予您的 IAM 主體](#custom-copying-snapshot-sqlserver.GrantPermIAM)。

## 將所需的許可授予您的 IAM 主體
<a name="custom-copying-snapshot-sqlserver.GrantPermIAM"></a>

請確定您有足夠的存取權，可複製 RDS Custom for SQL Server 資料庫快照。使用主控台或 CLI 複製資料庫快照的 IAM 角色或使用者 (稱為 IAM 主體) 必須具有下列任一政策，才能成功建立資料庫執行個體：
+ `AdministratorAccess` 政策或
+ 具有下列額外許可的 `AmazonRDSFullAccess` 政策：

  ```
  s3:CreateBucket
  s3:GetBucketPolicy
  s3:PutBucketPolicy
  kms:CreateGrant
  kms:DescribeKey
  ec2:CreateTags
  ```

RDS Custom 在跨 AWS 區域複製快照期間會使用這些許可。這些許可會設定您帳戶中 RDS Custom 作業所需的資源。如需 `kms:CreateGrant` 許可的詳細資訊，請參閱 [AWS KMS key 管理](Overview.Encryption.Keys.md)。

以下範例 JSON 政策授予除 `AmazonRDSFullAccess` 政策之外的必要許可。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateS3BucketAndReadWriteBucketPolicy",
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:PutBucketPolicy",
                "s3:GetBucketPolicy"
            ],
            "Resource": "arn:aws:s3:::do-not-delete-rds-custom-*"
        },
        {
            "Sid": "CreateKmsGrant",
            "Effect": "Allow",
            "Action": [
                "kms:CreateGrant",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CreateEc2Tags",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**注意**  
確保所列出的許可不受服務控制政策 (SCP)、許可界限或與 IAM 主體相關聯之工作階段政策的限制。

如果您在請求者的 IAM 政策中使用條件與內容索引鍵，則某些條件可能會導致請求失敗。如需 IAM 政策條件所引起常見陷阱的詳細資訊，請參閱 [請求跨區域資料庫快照複本](USER_CopySnapshot.md#USER_CopySnapshot.AcrossRegions.Policy)。

## 複製資料庫快照
<a name="custom-copying-snapshot-sqlserver.CopyingDBSnapshot"></a>

使用以下程序來複製資料庫快照。對於每個 AWS 帳戶，您一次最多可將 20 個資料庫快照從一個 AWS 區域 複製到另一個。如果您將資料庫快照複製到另一個快照 AWS 區域，您可以建立保留在該快照中的手動資料庫快照 AWS 區域。從來源複製資料庫快照 AWS 區域 會產生 Amazon RDS 資料傳輸費用。如需資料傳輸定價的詳細資訊，請參閱 [Amazon RDS 定價](https://aws.amazon.com/rds/pricing/)。

在新的 中建立資料庫快照複本之後 AWS 區域，資料庫快照複本的行為會與其中的所有其他資料庫快照相同 AWS 區域。

您可以使用 AWS 管理主控台 AWS CLI或 Amazon RDS API 複製資料庫快照。

------
#### [ Console ]

下列程序會使用 AWS 管理主控台來複製 RDS Custom for SQL Server 資料庫快照。

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

1. 在導覽窗格中，選擇 **Snapshots** (快照)。

1. 選取您要複製的 RDS Custom for SQL Server 資料庫快照。

1. 在**動作**下拉式清單中，選擇**複製快照**。  
![\[Amazon RDS 主控台中的複製快照頁面。設定會載入頁面。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/XRSC-Snapshot-Copy.png)

1. 若要將資料庫快照複製到不同的 AWS 區域，請將**目的地區域**設定為所需的值。
**注意**  
目的地 AWS 區域 必須具有與來源相同的資料庫引擎版本 AWS 區域。

1. 在**新資料庫快照識別符**中，輸入資料庫快照的唯一名稱。您可以製作自動備份或手動快照的多個複本，但每個複本都必須具有唯一的識別符。

1. (選用) 選取 **Copy Tags (複製標籤)**，將快照中的標籤和值複製到快照的複本。

1. 在**加密**中，指定用來加密資料庫快照複本的 KMS 金鑰識別符。
**注意**  
RDS Custom for SQL Server 會加密所有資料庫快照。您無法建立未加密的資料庫快照。

1. 選擇 **Copy Snapshot (複製快照)**。

RDS Custom for SQL Server 會在您選取的 AWS 區域 中建立資料庫執行個體的資料庫快照複本。

------
#### [ AWS CLI ]

您可以使用 AWS CLI 命令 複製 RDS Custom for SQL Server 資料庫快照[https://docs.aws.amazon.com/cli/latest/reference/rds/copy-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/copy-db-snapshot.html)。如果您要將快照複製到新的 AWS 區域，請在新的 中執行 命令 AWS 區域。下列選項用來複製資料庫快照。並非所有情況需要使用所有選項。
+ `--source-db-snapshot-identifier` ‐ 來源資料庫快照的識別符。
  + 如果來源快照位於 AWS 區域 與複本不同的 中，請指定有效的資料庫快照 ARN。例如 `arn:aws:rds:us-west-2:123456789012:snapshot:instance1-snapshot-12345678`。
+ `--target-db-snapshot-identifier` – 資料庫快照之新複本的識別符。
+ `--kms-key-id` – 加密資料庫快照的 KMS 金鑰識別符。KMS 金鑰識別碼是 KMS 金鑰的 Amazon 資源名稱 (ARN)、金鑰識別碼或金鑰別名。
  + 如果您將加密的快照複製到不同的 AWS 區域，則必須指定目的地 AWS 區域的 KMS 金鑰。KMS 金鑰專屬於在 中建立 AWS 區域 的 ，除非使用多區域金鑰， AWS 區域 否則您無法在另一個 AWS 區域 中使用加密金鑰。如需多區域 KMS 金鑰的詳細資訊，請參閱[使用 AWS KMS中的多區域金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html)。
+ `--copy-tags` – 包含從來源快照到快照複本的標籤和值。

複製 RDS Custom for SQL Server 資料庫快照時不支援下列選項：
+ `--copy-option-group `
+ `--option-group-name`
+ `--pre-signed-url`
+ `--target-custom-availability-zone`

下列程式碼範例會在 US East (N. Virginia) 區域中，從美國西部 (奧勒岡) 區域複製到已加密的資料庫快照。在目的地 (us-east-1) 區域中執行命令。

針對 Linux、macOS 或 Unix：

```
aws rds copy-db-snapshot \
     --region us-east-1 \
    --source-db-snapshot-identifier arn:aws:rds:us-west-2:123456789012:snapshot:instance1-snapshot-12345678 \
    --target-db-snapshot-identifier mydbsnapshotcopy \
    --kms-key-id a1b2c3d4-1234-5678-wxyz-a1b2c3d4d5e6
```

針對 Windows：

```
aws rds copy-db-snapshot ^
     --region us-east-1 ^
    --source-db-snapshot-identifier arn:aws:rds:us-west-2:123456789012:snapshot:instance1-snapshot-12345678 ^
    --target-db-snapshot-identifier mydbsnapshotcopy ^
    --kms-key-id a1b2c3d4-1234-5678-wxyz-a1b2c3d4d5e6
```

------
#### [ RDS API ]

您可以使用 Amazon RDS API 作業 [CopyDBSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CopyDBSnapshot.html) 來複製 RDS Custom for SQL Server 資料庫快照。如果您要將快照複製到新的 AWS 區域，請在新的 AWS 區域中執行此動作。下列參數用來複製資料庫快照。並非所有參數皆為必要參數：
+ `SourceDBSnapshotIdentifier` ‐ 來源資料庫快照的識別符。
  + 如果來源快照位於 AWS 區域 與複本不同的 中，請指定有效的資料庫快照 ARN。例如 `arn:aws:rds:us-west-2:123456789012:snapshot:instance1-snapshot-12345678`。
+ `TargetDBSnapshotIdentifier` – 資料庫快照之新複本的識別符。
+ `KmsKeyId` – 加密資料庫快照的 KMS 金鑰識別符。KMS 金鑰識別碼是 KMS 金鑰的 Amazon 資源名稱 (ARN)、金鑰識別碼或金鑰別名。
  + 如果您將加密的快照複製到不同的 AWS 區域，則必須指定目的地 AWS 區域的 KMS 金鑰。KMS 金鑰專屬於在 中建立 AWS 區域 的 ，除非使用多區域金鑰， AWS 區域 否則您無法在另一個 AWS 區域 中使用加密金鑰。如需多區域 KMS 金鑰的詳細資訊，請參閱[使用 AWS KMS中的多區域金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html)。
+ `CopyTags` – 將此參數設為 `true`，將來源快照中的標籤和值複製到快照的複本。預設值為 `false`。

複製 RDS Custom for SQL Server 資料庫快照時，不支援下列選項：
+ `CopyOptionGroup`
+ `OptionGroupName`
+ `PreSignedUrl`
+ `TargetCustomAvailabilityZone`

下列程式碼會在 US East (N. Virginia) 區域中使用新名稱 `mydbsnapshotcopy` 來建立快照的複本。

```
https://rds.us-east-1.amazonaws.com/
    ?Action=CopyDBSnapshot
    &KmsKeyId=a1b2c3d4-1234-5678-wxyz-a1b2c3d4d5e6
    &SourceDBSnapshotIdentifier=arn%3Aaws%3Ards%3Aus-west-2%3A123456789012%3Asnapshot%3Ainstance1-snapshot-12345678
    &TargetDBSnapshotIdentifier=mydbsnapshotcopy
    &Version=2014-10-31
    &X-Amz-Algorithm=AWS4-HMAC-SHA256
    &X-Amz-Credential=AKIADQKE4SARGYLE/20161117/us-east-1/rds/aws4_request
    &X-Amz-Date=20161117T221704Z
    &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date
    &X-Amz-Signature=da4f2da66739d2e722c85fcfd225dc27bba7e2b8dbea8d8612434378e52adccf
```

------

# 將內部部署資料庫遷移到 Amazon RDS Custom for SQL Server
<a name="custom-migrating"></a>

您可以使用下列程序，使用原生備份和還原將內部部署 Microsoft SQL Server 資料庫遷移到 Amazon RDS Custom for SQL Server：

1. 對內部部署資料庫執行個體上的資料庫進行完整備份。

1. 將備份檔案上傳到 Amazon S3。

1. 將備份檔案從 S3 下載至 RDS Custom for SQL Server 資料庫執行個體。

1. 使用 RDS Custom for SQL Server 資料庫執行個體上下載的備份檔案還原資料庫。

此程序說明如何使用原生完整備份和還原，將資料庫從內部部署遷移到 RDS Custom for SQL Server。若要減少遷移程序期間的切換時間，您也可以考慮使用差異或日誌備份。

如需 RDS for SQL Server 其原生備份和還原的一般資訊，請參閱 [使用原生備份和還原，匯入和匯出 SQL Server 資料庫](SQLServer.Procedural.Importing.md)。

**Topics**
+ [先決條件](#custom-migrating.prereqs)
+ [備份內部部署資料庫](#custom-migrating.backup)
+ [將備份檔案上傳到 Amazon S3](#custom-migrating.upload)
+ [從 Amazon S3 下載備份檔案](#custom-migrating.upload)
+ [將備份檔案還原至 RDS Custom for SQL Server 資料庫執行個體](#custom-migrating.restore)

## 先決條件
<a name="custom-migrating.prereqs"></a>

在遷移資料庫之前，請先執行以下任務：

1. 為 RDS Custom for SQL Server 資料庫執行個體設定遠端桌面連線 (RDP)。如需更多詳細資訊，請參閱 [使用 RDS 連線到您的 RDS Custom 資料庫執行個體](custom-creating-sqlserver.rdp.md)。

1. 設定對 Amazon S3 的存取權限，以便上傳和下載資料庫備份檔案。

## 備份內部部署資料庫
<a name="custom-migrating.backup"></a>

您可以使用 SQL Server 原生備份，在內部部署資料庫執行個體上取得資料庫的完整備份。

下列範例顯示名為 `mydatabase` 的資料庫備份，已指定 `COMPRESSION` 選項以減少備份檔案大小。

**若要備份內部部署資料庫**

1. 使用 SQL Server Management Studio (SSMS)，連接至內部部署 SQL Server 執行個體。

1. 執行下列 T-SQL 命令。

   ```
   backup database mydatabase to
   disk ='C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\mydb-full-compressed.bak'
   with compression;
   ```

## 將備份檔案上傳到 Amazon S3
<a name="custom-migrating.upload"></a>

您可以使用 AWS 管理主控台 將備份檔案 `mydb-full-compressed.bak` 上傳到 Amazon S3。

**若要將備份檔案上傳到 S3**

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

1. 針對 **Buckets** (儲存貯體)，選擇您要上傳檔案的目標儲存貯體名稱。

1. 選擇 **Upload** (上傳)。

1. 在 **Upload (上傳)** 視窗中，執行下列其中一個操作︰
   + 將 `mydb-full-compressed.bak` 拖放到 **Upload (上傳)** 視窗。
   + 選擇 **Add file (新增檔案)**、選擇 `mydb-full-compressed.bak`，然後選擇 **Open (開啟)**。

   Amazon S3 會將備份檔案上傳為 S3 物件。上傳完成後，您可以在 **Upload: status** (上傳：狀態) 頁面上看到成功訊息。

## 從 Amazon S3 下載備份檔案
<a name="custom-migrating.upload"></a>

您可以使用主控台將備份檔案從 S3 下載到 RDS Custom for SQL Server 資料庫執行個體。

**若要從 S3 下載備份檔案**

1. 使用 RDP，連接至 RDS Custom for SQL Server 資料庫執行個體。

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

1. 在 **Buckets** (儲存貯體) 清單中，選擇其中包含您的備份檔案的儲存貯體名稱。

1. 選擇備份檔案 `mydb-full-compressed.bak`。

1. 針對 **Actions** (動作)，選擇 **Download as** (下載為)。

1. 開啟提供之連結的內容 (右鍵) 功能表，然後選擇 **Save As** (另存新檔)。

1. 將 `mydb-full-compressed.bak` 儲存到 `D:\rdsdbdata\BACKUP` 目錄。

## 將備份檔案還原至 RDS Custom for SQL Server 資料庫執行個體
<a name="custom-migrating.restore"></a>

您使用 SQL Server 原生還原將備份檔案還原至 RDS Custom for SQL Server 資料庫執行個體。

在此範例中會指定 `MOVE` 選項，因為資料和日誌檔目錄與內部部署資料庫執行個體不同。

**若要還原備份檔案**

1. 使用 SSMS，連接至 RDS Custom for SQL Server 資料庫執行個體。

1. 執行下列 T-SQL 命令。

   ```
   restore database mydatabase from disk='D:\rdsdbdata\BACKUP\mydb-full-compressed.bak'
   with move 'mydatabase' to 'D:\rdsdbdata\DATA\mydatabase.mdf',
   move 'mydatabase_log' to 'D:\rdsdbdata\DATA\mydatabase_log.ldf';
   ```

# RDS Custom for SQL Server 作業系統更新
<a name="custom-os-upgrade"></a>

RDS Custom for SQL Server 提供下列方法來將作業系統更新套用至 RDS 提供的引擎版本 (RPEV) 執行個體：
+ *system-update 維護動作*
+ *資料庫次要版本升級*
  + 使用 RPEV 的資料庫次要引擎版本升級包含最新的作業系統更新。如果您想要將作業系統更新與 SQL Server 次要版本升級結合，此方法特別有用。如需詳細資訊，請參閱[升級 Amazon RDS Custom for SQL Server 資料庫執行個體](custom-upgrading-sqlserver.md)。

## 作業系統更新的案例
<a name="custom-os-upgrade.Scenarios"></a>

有兩種方式可以管理 RDS Custom for SQL Server 執行個體的作業系統更新：
+ 對於單一可用區執行個體，執行個體在作業系統更新期間無法使用。
+ 對於異地同步備份部署，RDS 會以下列方式套用作業系統更新：
  + 首先，RDS 會在待命執行個體上執行作業系統更新。
  + RDS 會容錯移轉至升級的待命資料庫執行個體，使其成為新的主要資料庫執行個體。
  + 最後，RDS 會在新的待命資料庫執行個體上執行作業系統更新。

異地同步備份部署的停機時間是容錯移轉所需的時間。

## 使用系統更新維護動作套用作業系統更新
<a name="custom-os-upgrade.SystemUpdates"></a>

若要將作業系統更新套用至 Amazon RDS RPEV 執行個體，您可以使用 AWS CLI AWS 管理主控台或 RDS API。如需詳細資訊，請參閱[RDS 資料庫執行個體的作業系統更新](USER_UpgradeDBInstance.Maintenance.md#OS_Updates)。

**Example**  
在 Linux、macOS 或 Unix 中：  
**步驟 1：檢查是否有可用的更新**  
使用 `describe-pending-maintenance-actions`命令來查看您的執行個體是否可使用作業系統更新：  

```
aws rds describe-pending-maintenance-actions
```
回應範例：  

```
{
    "PendingMaintenanceActions": [
        {
            "ResourceIdentifier": "arn:aws:rds:us-east-1:111122223333:db:my-sqlserver-instance",
            "PendingMaintenanceActionDetails": [
                {
                    "Action": "system-update",
                    "Description": "New Operating System update is available"
                }
            ]
        }
    ]
}
```
動作類型 `system-update` 表示您的執行個體可使用作業系統更新。  
**步驟 2：套用作業系統更新**  
使用 `apply-pending-maintenance-action`命令來排程更新：  

```
aws rds apply-pending-maintenance-action \ 
                --resource-identifier arn:aws:rds:us-east-1:111122223333:db:my-sqlserver-instance \ 
                --apply-action system-update \ 
                --opt-in-type immediate
```
`opt-in-type` 輸入具有下列選項：  
+ `immediate`：立即套用更新
+ `next-maintenance`：在下一個排定的維護時段套用更新
+ `undo-opt-in`：取消先前排定的更新
回應範例：  

```
{
    "ResourcePendingMaintenanceActions": {
        "ResourceIdentifier": "arn:aws:rds:us-east-1:111122223333:db:my-sqlserver-instance",
        "PendingMaintenanceActionDetails": [
            {
                "Action": "system-update",
                "AutoAppliedAfterDate": "2024-04-10T20:41:01.695000+00:00",
                "ForcedApplyDate": "2024-04-10T20:41:01.694000+00:00",
                "CurrentApplyDate": "2024-04-10T20:41:01.695000+00:00",
                "Description": "New Operating System update is available"
            }
        ]
    }
}
```

## 作業系統更新通知
<a name="custom-os-upgrade.OSNotifications"></a>

若要在新的選用作業系統修補程式可用時收到通知，您可以訂閱安全修補事件類別中的 [RDS-EVENT-0230](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Messages.html#RDS-EVENT-0230)。如需訂閱 RDS 事件的資訊，請參閱[訂閱 Amazon RDS 事件通知](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Subscribing.html)。

## 考量事項
<a name="custom-os-upgrade.Considerations"></a>

下列考量和限制適用於作業系統更新：
+ 在作業系統更新期間，不會對 C：\$1 磁碟機進行任何作業系統自訂。
+ 我們建議您在套用更新之前先手動拍攝快照。

# 升級 Amazon RDS Custom for SQL Server 資料庫執行個體
<a name="custom-upgrading-sqlserver"></a>

您可以藉由將 Amazon RDS Custom for SQL Server 資料庫執行個體修改為使用新的資料庫引擎版本來進行升級。如需與升級資料庫執行個體相關的一般資訊，請參閱 [升級資料庫執行個體 引擎版本](USER_UpgradeDBInstance.Upgrading.md)。

**Topics**
+ [RDS Custom for SQL Server 中的升級概觀](#custom-upgrading-sqlserver.Overview)
+ [升級主要和次要引擎版本](#custom-upgrading-sqlserver.Upgrade)
+ [資料庫相容性等級](#custom-upgrading-sqlserver.Major.Compatibility)

## RDS Custom for SQL Server 中的升級概觀
<a name="custom-upgrading-sqlserver.Overview"></a>

Amazon RDS Custom for SQL Server 支援主要和次要版本升級。次要版本升級可能包括安全性修補程式、錯誤修正和引擎改進。Microsoft 會將這些更新發佈為累積更新 (CU)。主要版本升級會在版本之間引入新功能和引擎變更，例如從 SQL Server 2019 升級到 2022。您可以立即或在排定的維護時段期間套用這兩個升級。為了避免潛在的回溯相容性問題，建議您先在非生產環境中測試應用程式，然後再進行升級。

RDS Custom for SQL Server 可讓您升級 RDS 提供的引擎版本 (RPEV) 或自訂引擎版本 (CEV)。
+ RDS 提供的引擎版本 (RPEV) 包含最新的作業系統 (OS) 修補程式和 SQL Server 累積更新 (CU)。
+ 對於自訂引擎版本 (CEV)，您必須遵循兩步驟程序。首先，使用目標 SQL Server 版本建立新的 CEV，請參閱 [準備建立 RDS Custom for SQL Server 的 CEV](custom-cev-sqlserver.preparing.md)。此目標版本必須等於或大於您目前的版本。建立新的 CEV 後，請修改資料庫執行個體以使用此新版本。如需詳細資訊，請參閱[使用多可用區域執行 Amazon RDS Custom for SQL Server CEV 的次要版本升級](https://aws.amazon.com/blogs/database/performing-a-minor-version-upgrade-for-amazon-rds-custom-for-sql-server-cev-with-multi-az/)。

  請勿將 SQL Server 累積更新就地套用至執行中的 RDS Custom 執行個體。使用特定 SQL Server 版本 (例如 SQL Server 2022 CU16) 建立 CEV 之後，直接將較新的累積更新套用至執行個體，即可將其移出支援周邊並報告錯誤 `SP-S3006`。若要使用 CEV 修補現有的 SQL Server 執行個體，請建立新的 CEV，其中包含所需的累積更新，然後修改現有的執行個體以切換至新的 CEV。

如果您在多可用區域部署中升級 RDS Custom for SQL Server 資料庫執行個體，RDS Custom for SQL Server 會為您的執行個體執行滾動升級。此方法透過一次升級一個執行個體，將停機時間降至最低。RDS 會執行下列動作來執行滾動升級：

1. 升級待命資料庫執行個體。

1. 容錯移轉至升級的待命資料庫執行個體，使其成為新的主要資料庫執行個體。

1. 升級新的待命資料庫執行個體。

多可用區域部署的資料庫執行個體停機時間是容錯移轉所需的時間。

升級 RDS Custom for SQL Server 資料庫執行個體時有下列限制：
+ 不支援自訂資料庫選項和參數群組。
+ 升級後，不會連接您連接至 RDS Custom for SQL Server 資料庫執行個體的任何其他儲存磁碟區。
+ 對於 CEV，不支援就地套用 SQL Server 累積更新，並且會導致執行個體被移出支援周邊。

## 升級主要和次要引擎版本
<a name="custom-upgrading-sqlserver.Upgrade"></a>

主要和次要引擎版本升級皆為不可復原，且必須一律更新至較新的版本。若要識別可用的目標版本，請使用 AWS 管理主控台，並在修改資料庫執行個體時，從可用的版本中進行選擇。或者，使用 [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) CLI 命令或 [DescribeDBEngineVersions](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBEngineVersions.html) RDS API 命令。

在 Linux、macOS 或 Unix 中：

```
aws rds describe-db-engine-versions \
    --engine custom-sqlserver-se \
    --engine-version 15.00.4322.2.v1 \
    --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" \
    --output table
```

在 Windows 中：

```
aws rds describe-db-engine-versions ^
    --engine custom-sqlserver-se ^
    --engine-version 15.00.4322.2.v1 ^
    --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" ^
    --output table
```

輸出會顯示可用的目標引擎版本：

```
--------------------------
|DescribeDBEngineVersions|
+------------------------+
|      EngineVersion     |
+------------------------+
|  15.00.4410.1.v1       |
|  15.00.4415.2.v1       |
|  15.00.4430.1.v1       |
|  16.00.4165.4.v1       |
|  16.00.4175.1.v1       |
|  16.00.4185.3.v1       |
+------------------------+
```

識別目標版本後，請使用 AWS 管理主控台 並遵循 [修改 RDS Custom for SQL Server 資料庫執行個體](custom-managing.modify-sqlserver.md) 中的指示。或者，使用 [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) CLI 命令或 [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) RDS API 命令。

在 Linux、macOS 或 Unix 中：

```
aws rds modify-db-instance \
    --db-instance-identifier DB_INSTANCE_IDENTIFIER \
    --engine-version ENGINE_VERSION \
    --allow-major-version-upgrade \
    --region Region \
    --no-apply-immediately
```

在 Windows 中：

```
aws rds modify-db-instance ^
    --db-instance-identifier DB_INSTANCE_IDENTIFIER ^
    --engine-version ENGINE_VERSION ^
    --allow-major-version-upgrade ^
    --region Region ^
    --no-apply-immediately
```

**注意**  
您必須包含 `--allow-major-version-upgrade` 參數才能執行主要版本升級。

## 資料庫相容性等級
<a name="custom-upgrading-sqlserver.Major.Compatibility"></a>

您可以使用 Microsoft SQL Server 資料庫相容性等級來調整某些資料庫行為，以模仿舊版的 SQL Server。如需詳細資訊，請參閱 Microsoft 文件中的[相容性等級](https://msdn.microsoft.com/en-us/library/bb510680.aspx)。

升級資料庫執行個體時，所有現有的資料庫都會保持其原來的相容性等級。例如，如果從 SQL Server 2019 升級到 SQL Server 2022，則所有現有資料庫的相容性等級均為 150。升級後建立的任何新資料庫都具有相容性等級 160。

您可以使用 ALTER DATABASE 命令來變更資料庫的相容性等級。例如，若要將名為 `customeracct` 的資料庫變更為與 SQL Server 2022 相容，可使用以下命令：

```
1. ALTER DATABASE customeracct SET COMPATIBILITY_LEVEL = 160
```

# 針對 Amazon RDS Custom for SQL Server 的資料庫問題進行故障診斷
<a name="custom-troubleshooting-sqlserver"></a>

RDS Custom 的共同的責任模型提供作業系統殼層層級存取權和資料庫管理員存取權。RDS Custom 會執行您的帳戶中的資源，不像是 Amazon RDS，它會執行系統帳戶中的資源。責任越大，存取權也越大。在下列各節中，您可以了解如何針對 Amazon RDS Custom for SQL Server 資料庫執行個體的問題進行故障診斷。

**注意**  
本節說明如何對 RDS Custom for SQL Server 進行故障診斷。若要對 RDS Custom for Oracle 進行故障診斷，請參閱 [針對 Amazon RDS Custom for Oracle 的資料庫問題進行故障診斷](custom-troubleshooting.md)。

**Topics**
+ [檢視 RDS Custom 事件](#custom-troubleshooting-sqlserver.support-perimeter.viewing-events)
+ [訂閱 RDS Custom 事件](#custom-troubleshooting-sqlserver.support-perimeter.subscribing)
+ [針對 RDS Custom for SQL Server 的 CEV 錯誤進行疑難排解](#custom-troubleshooting-sqlserver.cev)
+ [修正 RDS Custom for SQL Server 中不支援的組態](#custom-troubleshooting-sqlserver.fix-unsupported)
+ [針對 RDS Custom for SQL Server 中的 `Storage-Full` 進行故障診斷](#custom-troubleshooting-storage-full)
+ [針對 RDS Custom for SQL Server 中已啟用 TDE 之資料庫的 PENDING\$1RECOVERY 狀態進行故障診斷](#custom-troubleshooting-sqlserver.pending_recovery)

## 檢視 RDS Custom 事件
<a name="custom-troubleshooting-sqlserver.support-perimeter.viewing-events"></a>

RDS Custom 和 Amazon RDS 資料庫執行個體的檢視事件程序相同。如需詳細資訊，請參閱[檢視 Amazon RDS 事件](USER_ListEvents.md)。

若要使用 檢視 RDS Custom 事件通知 AWS CLI，請使用 `describe-events`命令。RDS Custom 引入數個新事件。事件類別與 Amazon RDS 的類別相同。如需事件清單，請參閱 [ Amazon RDS 事件類別和事件訊息](USER_Events.Messages.md)。

下列範例會擷取針對指定 RDS Custom 資料庫執行個體發生之事件的詳細資訊。

```
1. aws rds describe-events \
2.     --source-identifier my-custom-instance \
3.     --source-type db-instance
```

## 訂閱 RDS Custom 事件
<a name="custom-troubleshooting-sqlserver.support-perimeter.subscribing"></a>

RDS Custom 與 Amazon RDS 資料庫執行個體的訂閱事件程序相同。如需詳細資訊，請參閱[訂閱 Amazon RDS 事件通知](USER_Events.Subscribing.md)。

若要使用 CLI 來訂閱 RDS Custom 事件通知，請使用 `create-event-subscription` 命令。包含下列必要參數：
+ `--subscription-name`
+ `--sns-topic-arn`

下列範例會在目前 AWS 帳戶中建立 RDS Custom 資料庫執行個體之備份和復原事件的訂閱。通知會傳送至 Amazon Simple Notification Service (Amazon SNS) 主題，由 `--sns-topic-arn` 指定。

```
1. aws rds create-event-subscription \
2.     --subscription-name my-instance-events \
3.     --source-type db-instance \
4.     --event-categories '["backup","recovery"]' \
5.     --sns-topic-arn arn:aws:sns:us-east-1:123456789012:interesting-events
```

## 針對 RDS Custom for SQL Server 的 CEV 錯誤進行疑難排解
<a name="custom-troubleshooting-sqlserver.cev"></a>

當您嘗試建立 CEV 時，其可能會失敗。在此情況下，RDS Custom 會發出 `RDS-EVENT-0198` 事件訊息。如需檢視 RDS 事件的詳細資訊，請參閱 [ Amazon RDS 事件類別和事件訊息](USER_Events.Messages.md)。

使用下列資訊來協助您處理可能的原因。


****  

| 訊息 | 故障診斷建議 | 
| --- | --- | 
| `Custom Engine Version creation expected a Sysprep’d AMI. Retry creation using a Sysprep’d AMI.` | 在您從 AMI 建立的 EC2 執行個體上執行 Sysprep。如需使用 Sysprep 準備 AMI 的詳細資訊，請參閱[使用 Sysprep 建立標準化 Amazon Machine Image (AMI)](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Creating_EBSbacked_WinAMI.html#sysprep-using-ec2launchv2)。 | 
| `EC2 Image permissions for image (AMI_ID) weren't found for customer (Customer_ID). Verify customer (Customer_ID) has valid permissions on the EC2 Image.` | 驗證用於建立的帳戶和設定檔是否在所選 AMI 的 `create EC2 Instance` 和 `Describe Images` 上具有所需的許可。 | 
| `Failed to rebuild databases with server collation (collation name) due to missing setup.exe file for SQL Server.` | 確認 `setup` 檔案位於 `C:\Program Files\Microsoft SQL Server\nnn\Setup Bootstrap\SQLnnnn\setup.exe`。 | 
| `Image (AMI_ID) doesn't exist in your account (ACCOUNT_ID). Verify (ACCOUNT_ID) is the owner of the EC2 image.` | 確定 AMI 存在於相同的客戶帳戶中。 | 
| `Image id (AMI_ID) isn't valid. Specify a valid image id, and try again.` | AMI 的名稱不正確。確定提供了正確的 AMI ID。 | 
| `Image (AMI_ID) operating system platform isn't supported. Specify a valid image, and try again.` |  選擇具有 Windows Server 搭配 SQL Server Enterprise、Standard 或 Web Edition 的受支援 AMI。從 EC2 Marketplace 選擇具有下列其中一個使用操作的 AMI： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting-sqlserver.html)  | 
| `SQL Server Web Edition isn't supported for creating a Custom Engine Version using Bring Your Own Media. Specify a valid image, and try again.` | 使用包含受支援 SQL Server版本的 AMI。如需詳細資訊，請參閱[RDS Custom for SQL Server CEV 的版本支援](custom-cev-sqlserver.preparing.md#custom-cev-sqlserver.preparing.VersionSupport)。 | 
| `The custom engine version can't be the same as the OEV engine version. Specify a valid CEV, and try again.` | 不支援傳統 RDS Custom for SQL Server 引擎版本。例如，版本 **15.00.4073.23.v1**。使用支援的版本號碼。 | 
| `The custom engine version isn't in an active state. Specify a valid CEV, and try again.` | CEV 必須處於 `AVAILABLE` 狀態才能完成操作。將 CEV 從 `INACTIVE` 修改為 `AVAILABLE`。 | 
| `The custom engine version isn't valid for an upgrade. Specify a valid CEV with an engine version greater or equal to (X), and try again.` | 目標 CEV 無效。檢查有效升級路徑的需求。 | 
| `The custom engine version isn't valid. Names can include only lowercase letters (a-z), dashes (-), underscores (_), and periods (.). Specify a valid CEV, and try again.` | 遵循所需的 CEV 命名慣例。如需詳細資訊，請參閱[RDS Custom for SQL Server CEV 的要求](custom-cev-sqlserver.preparing.md#custom-cev-sqlserver.preparing.Requirements)。 | 
| `The custom engine version isn't valid. Specify valid database engine version, and try again. Example: 15.00.4073.23-cev123.` | 已提供不受支援的 DB 引擎版本。請使用支援的資料庫引擎版本。 | 
| `The expected architecture is (X) for image (AMI_ID), but architecture (Y) was found.` | 使用建置在 **x86\$164** 架構上的 AMI。 | 
| `The expected owner of image (AMI_ID) is customer account ID (ACCOUNT_ID), but owner (ACCOUNT_ID) was found.` | 從您對其具有許可的 AMI 建立 EC2 執行個體。在 EC2 執行個體上執行 Sysprep，以建立並儲存基礎映像。 | 
| `The expected platform is (X) for image (AMI_ID), but platform (Y) was found.` | 使用透過 Windows 平台建置的 AMI。 | 
| `The expected root device type is (X) for image %s, but root device type (Y) was found.` | 使用 EBS 裝置類型建立 AMI。 | 
| `The expected SQL Server edition is (X), but (Y) was found.` |  選擇具有 Windows Server 搭配 SQL Server Enterprise、Standard 或 Web Edition 的受支援 AMI。從 EC2 Marketplace 選擇具有下列其中一個使用操作的 AMI： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/custom-troubleshooting-sqlserver.html)  | 
| `The expected state is (X) for image (AMI_ID), but the following state was found: (Y).` | 確定 AMI 處於 `AVAILABLE` 的狀態。 | 
| `The provided Windows OS name (X) isn’t valid. Make sure the OS is one of the following: (Y).` | 使用支援的 Windows 作業系統。 | 
| `Unable to find bootstrap log file in path.` | 確認日誌檔案位於 `C:\Program Files\Microsoft SQL Server\nnn\Setup Bootstrap\Log\Summary.txt`。 | 
| `RDS expected a Windows build version greater than or equal to (X), but found version (Y).`. | 使用最低作業系統組建版本為 **14393** 的 AMI。 | 
| `RDS expected a Windows major version greater than or equal to (X), but found version (Y).`. | 使用最低作業系統主要版本為 **10.0** 或更新版本的 AMI。 | 

## 修正 RDS Custom for SQL Server 中不支援的組態
<a name="custom-troubleshooting-sqlserver.fix-unsupported"></a>

由於採取共同的責任模型，您必須負責修正讓 RDS Custom for SQL Server 資料庫執行個體進入 `unsupported-configuration` 狀態的組態問題。如果問題出在 AWS 基礎設施，您可以使用 主控台或 AWS CLI 進行修正。如果問題與作業系統或資料庫組態相關，您可以登入主機進行修正。

**注意**  
本節說明如何修正 RDS Custom for SQL Server 中不支援的組態。如需 RDS Custom for Oracle 的相關資訊，請參閱 [修正 RDS Custom for Oracle 中不支援的組態](custom-troubleshooting.md#custom-troubleshooting.fix-unsupported)。

您可以在下表中找到支援周邊所傳送通知和事件的說明，以及了解如何進行修正。這些通知和支援周邊可能會變更。如需支援周邊的相關背景，請參閱 [RDS Custom 支援周邊](custom-concept.md#custom-troubleshooting.support-perimeter)。如需事件說明，請參閱 [ Amazon RDS 事件類別和事件訊息](USER_Events.Messages.md)。


| 事件代碼 | 組態區域 | RDS 事件訊息 | 驗證程序 | 
| --- | --- | --- | --- | 
|  `SP-S0000`  |  手動不支援的組態  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：`X`。  |  若要解決此問題，請建立支援案例。  | 

**AWS 資源 （基礎設施）**


| 事件代碼 | 組態區域 | RDS 事件訊息 | 驗證程序 | 
| --- | --- | --- | --- | 
|  `SP-S1001`  |  EC2 執行個體狀態  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：基礎 EC2 執行個體 %s 已停止，但未停止 RDS 執行個體。您可以透過啟動基礎 EC2 執行個體，並確保連接二進位和資料磁碟區來解決此問題。如果您打算停止 RDS 執行個體，請先確定基礎 EC2 執行個體處於可用狀態，然後使用 RDS 主控台或 CLI 來停止 RDS 執行個體。  |  若要檢查資料庫執行個體的狀態，請使用主控台或執行下列 AWS CLI 命令： <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep DBInstanceStatus<br />                            </pre>  | 
|  `SP-S1002`  |  EC2 執行個體狀態  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：RDS 資料庫執行個體狀態設定為 `STOPPED`，但基礎 EC2 執行個體 %s 已啟動。您可以停止基礎 EC2 執行個體來解決此問題。如果您打算啟動 RDS 執行個體，請使用主控台或 CLI。  |   使用下列 AWS CLI 命令來檢查資料庫執行個體的狀態： <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep DBInstanceStatus</pre> 您還可以使用 EC2 主控台來檢查 EC2 執行個體的狀態。 若要啟動資料庫執行個體，請使用主控台或執行下列 AWS CLI 命令： <pre>aws rds start-db-instance \<br />    --db-instance-identifier db-instance-name</pre>  | 
|  `SP-S1003`   |  EC2 執行個體類別  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：EC2 主機的預期和設定的資料庫執行個體類別不相符。您可以透過將資料庫執行個體類別修改為其原始類別類型來解決此問題。  |   使用下列 CLI 命令來檢查預期的資料庫執行個體類別： <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep DBInstanceClass</pre>  | 
|  `SP-S1004`  |  EBS 儲存磁碟區無法存取  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：目前無法存取與 EC2 執行個體相關聯的原始 EBS 儲存磁碟區 %s。  |    | 
|  `SP-S1005`  |  EBS 儲存磁碟區已分離  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：未連接原始 EBS 儲存磁碟區 "volume-id"。您可以透過連接與 EC2 執行個體相關聯的 EBS 磁碟區來解決此問題。  |   重新連接 EBS 磁碟區後，請使用下列 CLI 命令來檢查 EBS 磁碟區 'volume-id' 是否已正確連接至 RDS 執行個體： <pre>aws ec2 describe-volumes \<br />    --volume-ids volume-id |grep InstanceId</pre>  | 
|  `SP-S1006`  |  EBS 儲存磁碟區大小  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：EBS 儲存磁碟區 "volume-id" 的預期和設定的設定不相符。磁碟區大小已在 EC2 層級從其原始值 [%s] 手動變更過。若要解決此問題，請建立支援案例。  |   使用下列 CLI 命令來比較 EBS 磁碟區 'volume-id' 詳細資訊和 RDS 執行個體詳細資訊的磁碟區大小： <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep AllocatedStorage</pre>  使用下列 CLI 命令來檢視實際配置的磁碟區大小： <pre>aws ec2 describe-volumes \<br />    --volume-ids |grep Size</pre>  | 
|  `SP-S1007`  |  EBS 儲存磁碟區組態  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：EBS 儲存磁碟區 "volume-id" 的預期和設定的設定不相符。您可以透過在 EC2 層級將 EBS 儲存磁碟區組態 [IOPS、輸送量、磁碟區類型] 修改為其原始值 [IOPS：%s、輸送量：%s、磁碟區類型：%s] 來解決此問題。對於未來的儲存體修改，請使用 RDS 主控台或 CLI。磁碟區大小也已在 EC2 層級從其原始值 [%s] 手動變更過。若要解決此問題，請建立支援案例。  |   使用下列 CLI 命令來比較 EBS 磁碟區 'volume-id' 詳細資訊和 RDS 執行個體詳細資訊的磁碟區類型：確定 EBS 層級的值符合 RDS 層級的值： <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep StorageType</pre> 若要在 RDS 層級取得儲存輸送量的預期值： <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep StorageThroughput</pre>  若要在 RDS 層級取得磁碟區 IOPS 的預期值： <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep Iops</pre> 若要在 EC2 層級取得目前的儲存類型： <pre>aws ec2 describe-volumes \<br />    --volume-ids |grep VolumeType</pre>  若要在 EC2 層級取得儲存輸送量的目前值： <pre>aws ec2 describe-volumes \<br />    --volume-ids |grep Throughput</pre> 若要在 EC2 層級取得磁碟區 IOPS 的目前值： <pre>aws ec2 describe-volumes \<br />    --volume-ids |grep Iops</pre>  | 
|  `SP-S1008`  |  EBS 儲存磁碟區大小和組態  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：EBS 儲存磁碟區 "volume-id" 的預期和設定的設定不相符。您可以透過在 EC2 層級將 EBS 儲存磁碟區組態 [IOPS、輸送量、磁碟區類型] 修改為其原始值 [IOPS：%s、輸送量：%s、磁碟區類型：%s] 來解決此問題。對於未來的儲存體修改，請使用 RDS 主控台或 CLI。磁碟區大小也已在 EC2 層級從其原始值 [%s] 手動變更過。若要解決此問題，請建立支援案例。  |   使用下列 CLI 命令來比較 EBS 磁碟區 'volume-id' 詳細資訊和 RDS 執行個體詳細資訊的磁碟區類型：確定 EBS 層級的值符合 RDS 層級的值： <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep StorageType</pre> 若要在 RDS 層級取得儲存輸送量的預期值： <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep StorageThroughput</pre>  若要在 RDS 層級取得磁碟區 IOPS 的預期值： <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep Iops</pre> 若要在 EC2 層級取得目前的儲存類型： <pre>aws ec2 describe-volumes \<br />    --volume-ids |grep VolumeType</pre>  若要在 EC2 層級取得儲存輸送量的目前值： <pre>aws ec2 describe-volumes \<br />    --volume-ids |grep Throughput</pre> 若要在 EC2 層級取得磁碟區 IOPS 的目前值： <pre>aws ec2 describe-volumes \<br />    --volume-ids |grep Iops</pre> 若要取得預期的已配置磁碟區大小： <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep AllocatedStorage</pre> 若要取得實際的已配置磁碟區大小： <pre>aws ec2 describe-volumes \<br />    --volume-ids |grep Size</pre>  | 
|  `SP-S1009`  |  SQS 許可  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：IAM 執行個體設定檔缺少 Amazon Simple Queue Service (SQS) 許可。您可以透過確保與主機相關聯的 IAM 設定檔具有下列許可：["SQS:SendMessage","SQS:ReceiveMessage","SQS:DeleteMessage","SQS:GetQueueUrl"] 來解決此問題。  |    | 
|  `SP-S1010`  |  SQS VPC 端點  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：VPC 端點政策會封鎖 Amazon Simple Queue Service (SQS) 作業。您可以透過修改 VPC 端點政策以允許必要的 SQS 動作來解決此問題。  |    | 
|  `SP-S1011`  |  事件匯流排政策  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：事件匯流排 arn:aws:events:region-1:123456789012:event-bus/default 拒絕 Amazon CloudWatch Events：PutEvents 動作的資源型政策。透過修改資源型政策以允許 EventBus %s 的 events:PutEvents 動作來解決此問題。  |    | 
|  `SP-S1012`  |  CloudWatch VPC 許可  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：VPC 端點政策缺少存取 Amazon CloudWatch Events 的許可。透過修改 VPC 端點政策以在 EventBus arn:aws:events:region-1:123456789012:event-bus/default 上允許 events:PutEvents 來解決此問題。  |    | 
|  `SP-S1013`  |  服務控制政策  |  RDS Custom 資料庫執行個體狀態設定為 【不支援的組態】，因為：您 中的服務控制政策 AWS Organizations 缺少存取 Amazon CloudWatch 事件的許可。透過修改服務控制政策以在 EventBus arn:aws:events:region-1:123456789012:event-bus/default 上允許 events:PutEvents 來解決此問題。  |    | 
|  `SP-S1014`  |  IAM 執行個體描述檔  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：您的 IAM 執行個體設定檔 %s 許可拒絕 Amazon CloudWatch Events。透過將 ["events:PutEvents"] 設定為 'Allow'，並在與執行個體相關聯的 IAM 設定檔中，在 EventBus arn:aws:events:region-1:123456789012:event-bus/default 上允許 events:PutEvents 來解決此問題。  |    | 
|  `SP-S1015`  |  IAM 執行個體描述檔  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：您的 IAM 執行個體設定檔 %s 缺少 Amazon CloudWatch Events 許可。透過包含 ["events:PutEvents"] 許可，並在與執行個體相關聯的 IAM 設定檔中，在 EventBus arn:aws:events:region-1:123456789012:event-bus/default 上允許 events:PutEvents 來解決此問題。  |    | 
|  `SP-S1016`  |  IAM 許可界限  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：您的 IAM 執行個體設定檔 %s 有許可界限，拒絕 Amazon CloudWatch Events。透過在您的 IAM 執行個體設定檔許可界限中，針對 EventBus arn:aws:events:region-1:123456789012:event-bus/default，將 ["events:PutEvents"] 設定為 'Allow' 來解決此問題。  |    | 

**作業系統**


| 事件代碼 | 組態區域 | RDS 事件訊息 | 驗證程序 | 
| --- | --- | --- | --- | 
|  `SP-S2001`  |  SQL 服務狀態  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：SQL Server 服務未啟動。您可以透過在主機上重新啟動 SQL Server 服務來解決此問題。如果此資料庫執行個體是多可用區域資料庫執行個體且重新啟動失敗，則停止然後啟動主機，以啟動容錯移轉。  |  | 
|  `SP-S2002`  |  RDS Custom 代理程式狀態  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：RDS Custom Agent 服務未安裝或無法啟動。您可以透過檢閱 Windows 事件日誌以判斷服務無法啟動的原因，並採取適當的步驟以修正問題來解決此問題。如需其他協助，請建立支援案例。  |  登入主機並確定 RDS Custom 代理程式正在執行。 您可以使用下列命令來檢視代理程式狀態。 <pre>$name = "RDSCustomAgent"<br />$service = Get-Service $name<br />Write-Host $service.Status</pre> 如果狀態不是 `Running`，您可以使用下列命令啟動服務： <pre>Start-Service $name</pre> 如果代理程式無法啟動，請檢查 Windows 事件，以了解無法啟動的原因。代理程式需要 Windows 使用者才能啟動服務。確保 Windows 使用者存在，並具有執行服務的權限。  | 
|  `SP-S2003`  |  SSM 代理程式狀態  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：無法連線 Amazon SSM Agent 服務。您可以透過使用 `Get-Service AmazonSSMAgent` PowerShell 命令檢查服務狀態，或使用 `Start-Service AmazonSSMAgent` 啟動服務，對此進行故障診斷。確保允許 HTTPS (連接埠 443) 傳出流量至 **ssm**、**ssmmessages** 和 **ec2messages** 區域端點。  |  如需詳細資訊，請參閱[針對 SSM Agent 進行故障診斷](https://docs.aws.amazon.com/systems-manager/latest/userguide/troubleshooting-ssm-agent.html)。 若要對 SSM 端點進行故障診斷，請參閱[無法連線至 SSM 端點](https://docs.aws.amazon.com/systems-manager/latest/userguide/troubleshooting-ssm-agent.html#systems-manager-ssm-agent-troubleshooting-endpoint-access)和[使用 ssm-cli 對受管節點可用性進行故障診斷](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-cli.html#agent-ts-ssm-cli)。  | 
|  `SP-S2004`  |  RDS Custom Agent 登入  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：SQL `"$HOSTNAME/RDSAgent”` 登入時發生非預期問題。若要解決此問題，請建立支援案例。  |  | 
|  `SP-S2005`  |  時區  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：Amazon EC2 執行個體 [%s] 上的時區已變更。您可以透過將時區修改回執行個體建立期間所指定的設定來解決此問題。如果您想要建立具有特定時區的執行個體，請參閱 RDS Custom 文件。  |  執行 `Get-Timezone` PowerShell 命令以確認時區。 如需詳細資訊，請參閱[RDS Custom for SQL Server 資料庫執行個體的本機時區](custom-reqs-limits-MS.TimeZone.md)。  | 
|  `SP-S2006`  |  高可用性軟體解決方案版本  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：目前執行個體的高可用性軟體解決方案與預期的版本不同。若要解決此問題，請建立支援案例。  |  | 
|  `SP-S2007`  |  高可用性軟體解決方案組態  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：執行個體 %s 上高可用性軟體解決方案的組態設定已修改為非預期的值。若要修正此問題，請重新啟動 EC2 執行個體。當您重新啟動 EC2 執行個體時，它會自動將設定更新為高可用性軟體解決方案所需的組態。  |    | 
| SP-S2008 |  SQL Server 服務   |  RDS Custom 資料庫執行個體設定為 [不支援的組態]：SQLServer (MSSQLServer) 服務不存在於主機上。若要解決此問題，請建立支援案例。  |  您可以使用下列命令來檢視代理程式狀態。 <pre>$name = "MSSQLServer"<br />$service = Get-Service $name<br />Write-Host $service.Status</pre>  | 
| SP-S2009 | SSL 憑證 |  RDS Custom 資料庫執行個體設定為 [不支援的組態]，原因：在 RDS 中導致中斷的非自我簽署 SSL 憑證。若要解決此問題，請從信任的根憑證存放區移除非自我簽署憑證。  |  執行下列 PowerShell 命令來檢閱非自我簽署憑證。 <pre>Get-ChildItem cert:\LocalMachine\root -Recurse | Where-Object {$_.Issuer -ne $_.Subject -and $_.Issuer -notlike "*RDSCustomAgentCA*"}</pre> 如需詳細資訊，請參閱[嘗試存取 IIS 上託管的網站時，發生 HTTP Error 403.16](https://learn.microsoft.com/en-us/troubleshoot/developer/webapps/iis/site-behavior-performance/http-403-forbidden-access-website)。  | 
| SP-S2010 | 根磁碟區儲存狀態 |  RDS Custom 資料庫執行個體設定為 [不支援的組態]，原因：根磁碟區儲存已滿。若要解決此問題，請釋出根 EBS 磁碟區 "volume-id" 中至少 500 MiB 的儲存空間，或增加磁碟區大小，並在 EC2 執行個體 "instance-id" 上調整 C 磁碟機的大小。當您取代 EC2 執行個體時，根磁碟區大小變更不會持續存在。  |  使用下列命令來檢視根 (C:) 磁碟區上的可用儲存。 <pre>(Get-PSDrive -Name C).Free / 1MB</pre> 如需修改 EBS 根磁碟區的詳細資訊，請參閱[方法](https://forums.aws.amazon.com/knowledge-center/expand-ebs-root-volume-windows)  | 

**資料庫**


| 事件代碼 | 組態區域 | RDS 事件訊息 | 驗證程序 | 
| --- | --- | --- | --- | 
|  `SP-S3001`  |  SQL Server 共用記憶體通訊協定  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：SQL Server 共用記憶體通訊協定已停用。您可以透過在 SQL Server Configuration Manager 中啟用共用記憶體通訊協定來解決此問題。  |  您可以透過檢查：**SQL Server Configuration Manager > SQL Server Network 組態 > MSSQLSERVER 的協定 > 共用記憶體** 為 [已啟用] 來進行驗證。啟用通訊協定之後，請重新啟動 SQL Server 程序。  | 
|  `SP-S3002`  |  服務主金鑰  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：RDS 自動化無法在新的 SMK 產生過程中採用備份服務主金鑰 (SMK)。若要解決此問題，請建立支援案例。  |    | 
|  `SP-S3003`  |  服務主金鑰  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：與服務主金鑰 (SMK) 相關的中繼資料遺失或不完整。若要解決此問題，請建立支援案例。  |    | 
|  `SP-S3004`  |  資料庫引擎版本  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：預期和已安裝的 SQL Server 版本不相符：RDS Custom for SQL Server 不支援修改 SQL Server 版本。此外，不支援在 RDS Custom EC2 執行個體上手動變更 SQL Server 版本。若要解決此問題，請建立支援案例。  |   執行下列查詢以取得 SQL 版本： <pre>select @@version</pre>  執行下列 AWS CLI 命令以取得 RDS SQL 引擎版本和版本： <pre>aws rds describe-db-instances \<br />--db-instance-identifier db-instance-name |grep EngineVersion<br />aws rds describe-db-instances \<br />--db-instance-identifier db-instance-name |grep Engine</pre> 如需詳細資訊，請參閱[修改 RDS Custom for SQL Server 資料庫執行個體](custom-managing.modify-sqlserver.md)及[升級資料庫執行個體 引擎版本](USER_UpgradeDBInstance.Upgrading.md)。  | 
|  `SP-S3005`   |  資料庫引擎版本  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：目前的 SQL Server 版本不符合預期的 SQL Server 版本 [%s]：RDS Custom for SQL Server 不支援修改 SQL Server 版本。若要解決此問題，請建立支援案例。  |   執行下列查詢以取得 SQL 版本： 

**Example**  

```
select @@version
```  執行下列 AWS CLI 命令以取得 RDS SQL 引擎版本： <pre>aws rds describe-db-instances \<br />--db-instance-identifier db-instance-name |grep Engine</pre>  | 
|  `SP-S3006`   |  資料庫引擎版本  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：目前的 SQL Server 版本不符合預期的 SQL Server 版本 [%s]：您無法手動變更 RDS Custom EC2 執行個體上的 SQL Server 版本。若要解決此問題，請建立支援案例。對於 SQL Server 版本的任何未來修改，您可以從 AWS RDS 主控台或透過 modify-db-instance CLI 命令修改執行個體。  |   執行下列查詢以取得 SQL 版本： 

**Example**  

```
select @@version
```  執行下列 AWS CLI 命令以取得 RDS SQL 引擎版本： <pre>aws rds describe-db-instances \<br />--db-instance-identifier db-instance-name |grep EngineVersion</pre> 如需詳細資訊，請參閱[修改 RDS Custom for SQL Server 資料庫執行個體](custom-managing.modify-sqlserver.md)及[升級資料庫執行個體 引擎版本](USER_UpgradeDBInstance.Upgrading.md)。  | 
|  `SP-S3007`  |  資料庫檔案位置  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：資料庫檔案是在 D:\$1 磁碟機外部進行設定。您可以透過確保所有資料庫檔案 (包括 ROW、LOG、FILESTREAM 等) 皆存放在 D:\$1 磁碟機上來解決此問題。  |  執行下列查詢，列出不在預設路徑中的資料庫檔案之位置： <pre>USE master;<br />SELECT physical_name as  files_not_in_default_path<br />FROM sys.master_files<br />WHERE SUBSTRING(physical_name,1,3)!='D:\';<br /></pre>  | 
|  `SP-S3008`  |  超過資料庫計數限制  |  RDS Custom 資料庫執行個體狀態設定為 [不支援的組態]，原因：資料庫執行個體上的資料庫總數超過上限 5000。若要解決此問題，請將資料庫數量減少到支援的上限以下。  |  使用下列命令來檢視資料庫總計數： <pre>SELECT COUNT(name) as databaseCount<br />FROM sys.databases<br />WHERE name not in ('tempdb','master','model','msdb','DWDiagnostics','DWConfiguration','DWQueue');</pre>  | 

## 針對 RDS Custom for SQL Server 中的 `Storage-Full` 進行故障診斷
<a name="custom-troubleshooting-storage-full"></a>

RDS Custom 也會監控根 (C:) 磁碟區。當根磁碟區可用磁碟空間少於 500 MiB 時，RDS Custom for SQL Server 資料庫執行個體會轉移為 `unsupported-configuration` 狀態。請參閱[修正 RDS Custom for SQL Server 中不支援的組態](#custom-troubleshooting-sqlserver.fix-unsupported)中的`Event SP-S2010`。

## 針對 RDS Custom for SQL Server 中已啟用 TDE 之資料庫的 PENDING\$1RECOVERY 狀態進行故障診斷
<a name="custom-troubleshooting-sqlserver.pending_recovery"></a>

如果自動解密遇到問題，啟用透明資料加密 (TDE) 的 SQL Server 資料庫可能會維持 `PENDING_RECOVERY` 狀態。如果在還原完成之前就已刪除存放在您帳戶中 RDS Custom 受管 S3 儲存貯體中的來源資料庫執行個體服務主金鑰 (SMK) 備份檔案，則通常會在資料庫執行個體還原之後發生這種情況。

若要啟用自動解密並使已啟用 TDE 的資料庫上線，您需要使用其密碼開啟資料庫主金鑰 (DMK)，並使用 SMK 來加密 DMK。

使用下列 SQL Server 命令做為參考：

```
-- Identify PENDING_RECOVERY TDE databases
USE MASTER;
GO
SELECT name, is_encrypted, state_desc FROM sys.databases;
GO

-- Open DMK using password
OPEN MASTER KEY DECRYPTION BY PASSWORD = '<password>';
GO

-- Encrypt DMK using SMK
ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY;
GO

-- Close SMK
CLOSE MASTER KEY;
GO

-- Bring the TDE databases online
ALTER DATABASE <database_name> SET ONLINE;
GO

-- Verify TDE databases are now in ONLINE state
SELECT name, is_encrypted, state_desc FROM sys.databases;
GO
```