

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

# Amazon RDS 的配額和條件限制
<a name="CHAP_Limits"></a>

您可以在下面找到 Amazon RDS 的資源配額和命名限制的說明。

**Topics**
+ [Amazon RDS 中的配額](#RDS_Limits.Limits)
+ [Amazon RDS 中的命名限制](#RDS_Limits.Constraints)
+ [資料庫連線數上限](#RDS_Limits.MaxConnections)
+ [Amazon RDS 中的檔案大小限制](#RDS_Limits.FileSize)

## Amazon RDS 中的配額
<a name="RDS_Limits.Limits"></a>

每個 AWS 帳戶對每個 AWS 區域都有可建立的 Amazon RDS 資源數量配額。在達到資源的配額後，建立該資源的額外呼叫便會失敗並發生例外狀況。

下表列出每個 AWS 區域的資源及其配額。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/CHAP_Limits.html)

**注意**  
根據預設，您最多可以擁有 40 個資料庫執行個體。RDS 資料庫執行個體、Aurora 資料庫執行個體、Amazon Neptune 執行個體和 Amazon DocumentDB 執行個體皆適用此配額。  
下列限制適用於 Amazon RDS 資料庫執行個體：  
每個 SQL Server 資料庫版本 (Enterprise、Standard、Web 和 Express) 最多有 10 個「已包含授權」模式的執行個體
"license-included" 模式下的 10 for Oracle
40 個資料庫執行個體可以是自帶授權 (BYOL) 授權模式的 Db2
40 個資料庫執行個體可以是 MySQL、MariaDB 或 PostgreSQL
40 個資料庫執行個體可以是「使用自有授權」(BYOL) 模式的 Oracle
如果您的應用程式需要更多資料庫執行個體，您可以透過開啟 [Service Quotas 主控台](https://console.aws.amazon.com/servicequotas/home?region=us-east-1#!/dashboard)來請求額外的資料庫執行個體。在導覽窗格中，選擇 **AWS services** (AWS 服務)。選擇 **Amazon Relational Database Service (Amazon RDS)**，再選擇配額，然後按照指示請求增加配額。如需詳細資訊，請參閱《Service Quotas 使用者指南》**中的[請求提高配額](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-increase.html)。  
對於 RDS for Oracle，您可以在每個區域中為每個來源資料庫執行個體建立最多 15 個僅供讀取複本，但我們建議將複本限制為 5 個，以盡可能縮短複寫延遲。  
管理的備份 AWS Backup 會被視為手動資料庫快照，但不計入手動快照配額。如需 的詳細資訊 AWS Backup，請參閱 [https://docs.aws.amazon.com/aws-backup/latest/devguide](https://docs.aws.amazon.com/aws-backup/latest/devguide)。

請注意， 的跨區域自動備份預設配額為 20 AWS 帳戶，而 的每個區域並行快照複製請求數量的預設配額為 20 AWS 帳戶。

如果您使用任何 RDS API 操作，且超過每秒呼叫次數的預設配額，Amazon RDS API 會發出類似下面的錯誤。

ClientError：呼叫 *API\$1name* 操作時發生錯誤 (ThrottlingException)：超過速率。

在這裡，減少每秒呼叫次數。配額旨在涵蓋大多數使用案例。如果需要較高的配額，您可以使用下列其中一個選項來請求提高配額：
+ 從主控台，開啟 [Service Quotas 主控台](https://us-east-1.console.aws.amazon.com/servicequotas/home/)。
+ 從 中 AWS CLI，使用 [request-service-quota-increase](https://docs.aws.amazon.com/cli/latest/reference/service-quotas/request-service-quota-increase.html) AWS CLI 命令。

如需詳細資訊，請參閱[https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)。

## Amazon RDS 中的命名限制
<a name="RDS_Limits.Constraints"></a>

以下說明 Amazon RDS 中的命名限制條件：
+ 資料庫執行個體識別符：
  + 必須包含 1–63 個英數字元或連字號。
  + 第一個字元必須是字母。
  + 不能以一個連字號結尾或是連續包含兩個連字號。
  + 每個區域每個 AWS 帳戶 AWS 的所有資料庫執行個體必須是唯一的。
+ 初始資料庫名稱：
  + 每個資料庫引擎都有不同的資料庫名稱限制。如需更多詳細資訊，請參閱建立每個資料庫執行個體時的可用設定。
  + SQL Server：在建立資料庫執行個體之後建立資料庫。
+ 主要使用者名稱：每個資料庫引擎的主要使用者名稱限制條件都有所不同。如需更多詳細資訊，請參閱建立資料庫執行個體時的可用設定。
+ 主要密碼：
  + 資料庫主要使用者密碼可包含任何可印刷的 ASCII 字元，但 `/`、`'`、`"`、`@` 或空格除外。

    對於 Oracle，`&` 是額外的字元限制。
  + 取決於資料庫引擎，密碼可能包含下列數量的可列印 ASCII 字元：
    + Db2：8–255
    + MariaDB 及 MySQL：8–41
    + Oracle：8–30
    + SQL Server 及 PostgreSQL：8–128
+ 資料庫參數群組：
  + 必須包含 1–255 個英數字元。
  + 第一個字元必須是字母。
  + 允許連字號，但名稱不得以連字號為結尾或包含兩個連續的連字號。
+ 資料庫子網路群組：
  + 必須包含 1–255 個字元。
  + 允許英數字母、空格、連字號、底線和句點。

## 資料庫連線數上限
<a name="RDS_Limits.MaxConnections"></a>

同時資料庫連線的最大數量取決於資料庫引擎類型和資料庫執行個體類別的記憶體配置。連線數目上限通常會在與資料庫執行個體相關聯的參數群組中設定。例外狀況是 Microsoft SQL Server，它是在 SQL Server Management Studio (SSMS) 中資料庫執行個體的伺服器屬性中設定。

資料庫連線會耗用記憶體。如果其中一個參數的設定值過高，則可能會導致記憶體不足的情況出現，進而導致資料庫執行個體處於 **incompatible-parameters** (不相容參數) 狀態。如需詳細資訊，請參閱[診斷和解決記憶體限制的不相容參數狀態](CHAP_Troubleshooting.md#CHAP_Troubleshooting.incompatible-parameters-memory)。

如果您的應用程式經常開啟和關閉連線，或者保持大量長期連線開啟，我們建議您使用 Amazon RDS Proxy。RDS 代理是個完全受管、高可用性的資料庫代理，其使用連線集區，安全且高效地共用資料庫連線。如要進一步了解 RDS 代理，請參閱 [Amazon RDS Proxy ](rds-proxy.md)。

**注意**  
對於 Oracle，您可以設定使用者程序，以及使用者與系統工作階段的數量上限。  
對於 Db2，您無法設定連線數上限。限制為 64000。

下表顯示不同資料庫引擎的資料庫連線數上限的相關資訊。


| 資料庫引擎 | 參數 | 允許的值 | 預設值 | Description | 
| --- | --- | --- | --- | --- | 
| MariaDB | max\$1connections | 1–100000 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/CHAP_Limits.html)  | 允許的同時用戶端連線數目 | 
| MySQL | max\$1connections | 1–100000 |  \$1DBInstanceClassMemory/12582880\$1 公式實際上等同於 MB/12。  | 允許的同時用戶端連線數目 | 
| Oracle | processes | 80–20000 | LEAST(\$1DBInstanceClassMemory/9868951\$1, 20000) | 使用者程序 | 
| Oracle | sessions | 100–65535 | 不適用 | 使用者和系統工作階段 | 
| PostgreSQL | max\$1connections | 6–262143 | LEAST(\$1DBInstanceClassMemory/9531392\$1, 5000) | 同時連線的數目上限 | 
| SQL Server | user connections | 0–32767 | 0 (無限制) | 並行連線數上限。如需詳細資訊，請參閱[設定使用者連線 (伺服器組態選項)](https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-user-connections-server-configuration-option?view=sql-server-ver16)。 | 

`DBInstanceClassMemory` 是以位元組為單位。如需如何計算此值的詳細資訊，請參閱 [指定資料庫參數](USER_ParamValuesRef.md)。由於為作業系統和 RDS 管理程序保留了記憶體，此記憶體大小會小於 [ 資料庫執行個體類別的硬體規格](Concepts.DBInstanceClass.Summary.md) 中顯示的值 (單位為 gibibyte (GiB))。

例如，某些資料庫執行個體類別具有 8 GiB 的記憶體，也就是 8,589,934,592 個位元組。對於在具有 8 GiB 記憶體 (例如 db.m7g.large) 的資料庫執行個體類別上執行的 MySQL 資料庫執行個體，則使用總記憶體的方程式會是 `8589934592/12582880=683`。然而，變數 `DBInstanceClassMemory` 會自動減去為作業系統和管理資料庫執行個體的 RDS 程序所預留的數量。然後將剩餘部分除以 12,582,880。此計算得出的 `max_connections` 值大約為 630，而不是 683。此值取決於資料庫執行個體類別和資料庫引擎。

當 MariaDB 或 MySQL 資料庫執行個體在小型資料庫執行個體類別 (例如 db.t3.micro 或 db.t3.small) 上執行時，可用的記憶體總數較少。對於這些資料庫執行個體類別，RDS 會預留記憶體的一大部分，而這會影響值 `max_connections`。例如，在 db.t3.micro 資料庫執行個體類別上執行的 MySQL 資料庫執行個體，其預設最大連線數約為 60。您可以透過連線至資料庫 MariaDB 或 MySQL 資料庫執行個體並執行下列 SQL 命令來判斷其 `max_connections` 值：

```
SHOW GLOBAL VARIABLES LIKE 'max_connections';
```

## Amazon RDS 中的檔案大小限制
<a name="RDS_Limits.FileSize"></a>

檔案大小限制適用於特定 Amazon RDS 資料庫執行個體。如需詳細資訊，請參閱下列引擎特定限制：
+ [Amazon RDS 中的 MariaDB 檔案大小限制](CHAP_MariaDB.Limitations.md#RDS_Limits.FileSize.MariaDB)
+ [Amazon RDS 中的 MySQL 檔案大小限制](MySQL.KnownIssuesAndLimitations.md#MySQL.Concepts.Limits.FileSize)
+ [Amazon RDS 中的 Oracle 檔案大小限制](Oracle.Concepts.limitations.md#Oracle.Concepts.file-size-limits)