

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

# 遷移至 Aurora Serverless v2
<a name="aurora-serverless-v2.upgrade"></a>

如要將現有資料庫叢及轉換為使用 Aurora Serverless v2，您可執行下列作業：
+ 從佈建的 Aurora 資料庫叢集升級。
+ 從 Aurora Serverless v1 叢集升級。
+ 從內部部署資料庫遷移到 Aurora Serverless v2 叢集。

當升級後的叢集執行列於 [Aurora Serverless v2 的要求與限制](aurora-serverless-v2.requirements.md) 中適當的引擎版本時，您可開始對其新增 Aurora Serverless v2 資料庫執行個體。您新增至升級叢集的第一個資料庫執行個體必須為佈建的資料庫執行個體。然後，您可將寫入工作負載、讀取工作負載或兩者的處理切換至 Aurora Serverless v2 資料庫執行個體。

**Contents**
+ [升級或切換現有叢集以使用 Aurora Serverless v2](#aurora-serverless-v2.getting-started-general-procedure)
  + [要使用 Aurora Serverless v2 的 MySQL 相容叢集的升級路徑](#serverless-v2-upgrade-paths-ams)
  + [要使用 Aurora Serverless v2 之 PostgreSQL 相容叢集的升級路徑](#serverless-v2-upgrade-paths-apg)
+ [從已佈建叢集切換至 Aurora Serverless v2](#aurora-serverless-v2.switch-from-provisioned)
+ [比較 Aurora Serverless v2 和 Aurora Serverless v1](#aurora-serverless.comparison)
  + [比較 Aurora Serverless v2 和 Aurora Serverless v1 要求](#aurora-serverless.comparison-requirements)
  + [比較 Aurora Serverless v2 和 Aurora Serverless v1 擴展和可用性](#aurora-serverless.comparison-scaling)
  + [比較 Aurora Serverless v2 和 Aurora Serverless v1 功能支援](#aurora-serverless.comparison-features)
  + [調節Aurora Serverless v1 使用案例為 Aurora Serverless v2](#aurora-serverless.comparison-approaches)
+ [從 Aurora Serverless v1 叢集升級至 Aurora Serverless v2](#aurora-serverless-v2.upgrade-from-serverless-v1-procedure)
  + [Aurora MySQL 相容的資料庫叢集](#sv1-to-sv2-ams)
  + [Aurora PostgreSQL 相容的資料庫叢集](#sv1-to-sv2-apg)
+ [從內部部署資料庫遷移至 Aurora Serverless v2](#aurora-serverless-v2.migrate-from-on-prem)

**注意**  
下列主題說明如何轉換現有的資料庫叢集。如需建立新 [建立使用 Aurora Serverless v2 的資料庫叢集](aurora-serverless-v2.create.md) 資料庫叢集的詳細資訊，請參閱 Aurora Serverless v2。

## 升級或切換現有叢集以使用 Aurora Serverless v2
<a name="aurora-serverless-v2.getting-started-general-procedure"></a>

若您佈建的叢集具有支援 Aurora Serverless v2 的引擎版本，則切換至不需要升級的 Aurora Serverless v2。於該狀況下，您可將 Aurora Serverless v2 資料庫執行個體新增至您的原始叢集。您可將叢集切換為使用所有的 Aurora Serverless v2 資料庫執行個體。您還可在相同的資料庫叢集中使用 Aurora Serverless v2 和佈建資料庫執行個體的組合。若為支援 Aurora Serverless v2 的 Aurora 引擎版本，請參閱 [Aurora Serverless v2 支援的區域和 Aurora 資料庫引擎](Concepts.Aurora_Fea_Regions_DB-eng.Feature.ServerlessV2.md)。

若您執行的是不支援 Aurora Serverless v2 的較低引擎版本，請執行以下一般步驟：

1. 升級叢集。

1. 為升級後的叢集建立佈建的寫入器資料庫執行個體。

1. 修改叢集來使用 Aurora Serverless v2 資料庫執行個體。

**重要**  
當您使用快照還原或複製，將主要版本升級為 Aurora Serverless v2 相容版本時，您新增至新叢集的第一個資料庫執行個體必須為佈建的資料庫執行個體。此新增會啟動升級過程的最後階段。  
在最後階段發生之前，叢集並無 Aurora Serverless v2 支援所需的基礎設施。因此，這些升級後的叢集會一律以佈建的寫入器資料庫執行個體開始。然後，您可將佈建的資料庫執行個體轉換或故障轉移至 Aurora Serverless v2 執行個體。

從 Aurora Serverless v1 升級至 Aurora Serverless v2 涉及建立佈建叢集作為中間步驟。然後，您會執行與開始佈建叢集時相同的升級步驟。

### 要使用 Aurora Serverless v2 的 MySQL 相容叢集的升級路徑
<a name="serverless-v2-upgrade-paths-ams"></a>

若您的原始叢集正在執行 Aurora MySQL，請依據叢集的引擎版本和引擎模式選擇適當的程序。


| 若您的原始 Aurora MySQL 叢集是這個 | 請執行此操作以切換至 Aurora Serverless v2 | 
| --- | --- | 
| 佈建叢集，執行 Aurora MySQL 第 3 版，與 MySQL 8.0 相容 |  這是來自現有 Aurora MySQL 叢集所有轉換的最後階段。 如有必要，請執行次要版本升級至 3.02.0 或更高版本。為寫入器資料庫執行個體使用已佈建資料庫執行個體。新增一個 Aurora Serverless v2 讀取器資料庫執行個體。執行容錯移轉，以建立寫入器資料庫執行個體。 (選用) 將叢集中其他佈建的資料庫執行個體轉換為 Aurora Serverless v2。或者，新增 Aurora Serverless v2 資料庫執行個體並移除佈建的資料庫執行個體。 如需完整的程序和範例，請參閱 [從已佈建叢集切換至 Aurora Serverless v2](#aurora-serverless-v2.switch-from-provisioned)。  | 
| 佈建叢集，執行 Aurora MySQL 第 2 版，與 MySQL 5.7 相容 | 執行主要版本升級至 Aurora MySQL 3.02.0 版或更新版本。然後依循 Aurora MySQL 第 3 版的程序，將叢集切換為使用 Aurora Serverless v2 資料庫執行個體。 | 
| Aurora Serverless v1 叢集，執行 Aurora MySQL 第 2 版，與 MySQL 5.7 相容 |  為了協助您規劃從 Aurora Serverless v1 轉換，請先洽詢 [比較 Aurora Serverless v2 和 Aurora Serverless v1](#aurora-serverless.comparison)。 然後遵循 [從 Aurora Serverless v1 叢集升級至 Aurora Serverless v2](#aurora-serverless-v2.upgrade-from-serverless-v1-procedure) 中的程序。  | 

### 要使用 Aurora Serverless v2 之 PostgreSQL 相容叢集的升級路徑
<a name="serverless-v2-upgrade-paths-apg"></a>

若您的原始叢集正在執行 Aurora PostgreSQL，請依據叢集的引擎版本和引擎模式選擇適當的程序。


| 若您的原始 Aurora PostgreSQL 叢集是這個 | 請執行此操作以切換至 Aurora Serverless v2 | 
| --- | --- | 
| 執行 Aurora PostgreSQL 第 13 版的已佈建叢集 |  這是來自現有 Aurora PostgreSQL 叢集所有轉換的最後階段。 如有必要，請執行次要版本升級至 13.6 版或更高版本。為寫入器資料庫執行個體新增一個已佈建資料庫執行個體。新增一個 Aurora Serverless v2 讀取器資料庫執行個體。執行容錯移轉，以建立 Aurora Serverless v2 執行個體為寫入器資料庫執行個體。 (選用) 將叢集中其他佈建的資料庫執行個體轉換為 Aurora Serverless v2。或者，新增 Aurora Serverless v2 資料庫執行個體並移除佈建的資料庫執行個體。 如需完整的程序和範例，請參閱 [從已佈建叢集切換至 Aurora Serverless v2](#aurora-serverless-v2.switch-from-provisioned)。  | 
| 執行 Aurora PostgreSQL 第 11 或 12 版的已佈建叢集 | 執行主要版本升級至 Aurora PostgreSQL 13.6 版或更新版本。然後依循 Aurora PostgreSQL 第 13 版的程序，將叢集切換為使用 Aurora Serverless v2 資料庫執行個體。 | 
| 執行 Aurora PostgreSQL 第 11 或 13 版的 Aurora Serverless v1 叢集 |  為了協助您規劃從 Aurora Serverless v1 轉換，請先洽詢 [比較 Aurora Serverless v2 和 Aurora Serverless v1](#aurora-serverless.comparison)。 然後遵循 [從 Aurora Serverless v1 叢集升級至 Aurora Serverless v2](#aurora-serverless-v2.upgrade-from-serverless-v1-procedure) 中的程序。  | 

## 從已佈建叢集切換至 Aurora Serverless v2
<a name="aurora-serverless-v2.switch-from-provisioned"></a>

 如要使用 Aurora Serverless v2 切換已佈建叢集，請依循些步驟：

1. 檢查已佈建叢集是否需要升級才可與 Aurora Serverless v2 資料庫執行個體一起使用。若為與 Aurora Serverless v2 相容的 Aurora 版本，請參閱 [Aurora Serverless v2 的要求與限制](aurora-serverless-v2.requirements.md)。

   若已佈建的叢集執行的引擎版本不適用於 Aurora Serverless v2，請升級叢集的引擎版本：
   + 若您擁有 MySQL 5.7 相容的佈建叢集，請依照 Aurora MySQL 第 3 版的升級說明進行作業。使用 [就地升級執行方式](AuroraMySQL.Upgrading.Procedure.md) 中的程序。
   + 若您有一個 PostgreSQL 相容的佈建叢集，執行 PostgreSQL 第 11 或 12 版，請依照 Aurora PostgreSQL 第 13 版的升級說明進行作業。使用 [執行主要版本升級](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md) 中的程序。

1. 設定任何其他叢集屬性以符合來自 [Aurora Serverless v2 的要求與限制](aurora-serverless-v2.requirements.md) 的 Aurora Serverless v2 要求。

1. 設定叢集的擴展組態。請遵循 [設定叢集的 Aurora Serverless v2 容量範圍](aurora-serverless-v2-administration.md#aurora-serverless-v2-setting-acus) 中的程序。

1. 將一或多個 Aurora Serverless v2 資料庫執行個體新增至叢集。依循 [將 Aurora 複本新增至資料庫叢集](aurora-replicas-adding.md) 中的一般程序。對於每個新的資料庫執行個體，請在 或 AWS 管理主控台或 AWS CLI Amazon RDS API `db.serverless`中指定特殊資料庫執行個體類別名稱 **Serverless**。

   在某些狀況下，叢集中可能已有一個或多個已佈建的讀取器資料庫執行個體。若是如此，您可將其中一個讀取器轉換為 Aurora Serverless v2 資料庫執行個體，而不是建立新的資料庫執行個體。若要執行此作業，請依照 [將已佈建的寫入器或讀取器轉換為 Aurora Serverless v2](aurora-serverless-v2-administration.md#aurora-serverless-v2-converting-from-provisioned) 中的程序進行。

1. 執行容錯移轉作業以使其中一個 Aurora Serverless v2 資料庫執行個體作為叢集的寫入器資料庫執行個體。

1. (選用) 將任何已佈建的資料庫執行個體轉換為 Aurora Serverless v2，或從叢集進行移除。遵循 [將已佈建的寫入器或讀取器轉換為 Aurora Serverless v2](aurora-serverless-v2-administration.md#aurora-serverless-v2-converting-from-provisioned) 或 [從 Aurora 個體資料庫叢集刪除資料庫執行個體](USER_DeleteCluster.md#USER_DeleteInstance) 中的一般程序。
**提示**  
移除已佈建的資料庫執行個體並非強制性。您可以設定包含 Aurora Serverless v2 和已佈建的資料庫執行個體的叢集。但是，直到您熟悉 Aurora Serverless v2 資料庫執行個體的效能和擴展特性，我們建議您使用全部相同類型的資料庫執行個體設定叢集。

下列 AWS CLI 範例顯示使用執行 Aurora MySQL 3.02.0 版之佈建叢集的切換程序。叢集已命名為 `mysql-80`。叢集以兩個名為 `provisioned-instance-1` 和 `provisioned-instance-2` 的已佈建資料庫執行個體開始，一個寫入器和一個讀取器。他們都使用 `db.r6g.large` 資料庫執行個體類別。

```
$ aws rds describe-db-clusters --db-cluster-identifier mysql-80 \
  --query '*[].[DBClusterIdentifier,DBClusterMembers[*].[DBInstanceIdentifier,IsClusterWriter]]' --output text
mysql-80
provisioned-instance-2     False
provisioned-instance-1     True

$ aws rds describe-db-instances --db-instance-identifier provisioned-instance-1 \
  --output text --query '*[].[DBInstanceIdentifier,DBInstanceClass]'
provisioned-instance-1     db.r6g.large

$ aws rds describe-db-instances --db-instance-identifier provisioned-instance-2 \
  --output text --query '*[].[DBInstanceIdentifier,DBInstanceClass]'
provisioned-instance-2     db.r6g.large
```

 我們建立一個包含一些資料的表格。這樣，我們就可以確認在切換前後叢集的資料和作業是相同的。

```
mysql> create database serverless_v2_demo;
mysql> create table serverless_v2_demo.demo (s varchar(128));
mysql> insert into serverless_v2_demo.demo values ('This cluster started with a provisioned writer.');
Query OK, 1 row affected (0.02 sec)
```

首先，我們將容量範圍新增至叢集。否則，我們在將任何 Aurora Serverless v2 資料庫執行個體新增到叢集時會發生錯誤。如果我們將 AWS 管理主控台 用於此程序，則在新增第一個Aurora Serverless v2資料庫執行個體時，該步驟會自動執行。

```
$ aws rds create-db-instance --db-instance-identifier serverless-v2-instance-1 \
  --db-cluster-identifier mysql-80 --db-instance-class db.serverless --engine aurora-mysql

An error occurred (InvalidDBClusterStateFault) when calling the CreateDBInstance operation:
Set the Serverless v2 scaling configuration on the parent DB cluster before creating a Serverless v2 DB instance.

$ # The blank ServerlessV2ScalingConfiguration attribute confirms that the cluster doesn't have a capacity range set yet.
$ aws rds describe-db-clusters --db-cluster-identifier mysql-80 --query 'DBClusters[*].ServerlessV2ScalingConfiguration'
[]

$ aws rds modify-db-cluster --db-cluster-identifier mysql-80 \
  --serverless-v2-scaling-configuration MinCapacity=0.5,MaxCapacity=16
{
  "DBClusterIdentifier": "mysql-80",
  "ServerlessV2ScalingConfiguration": {
    "MinCapacity": 0.5,
    "MaxCapacity": 16
  }
}
```

我們建立兩個 Aurora Serverless v2 讀取器來取代原始資料庫執行個體。做法是為新的資料庫執行個體指定 `db.serverless` 資料庫執行個體類別。

```
$ aws rds create-db-instance --db-instance-identifier serverless-v2-instance-1 --db-cluster-identifier mysql-80 --db-instance-class db.serverless --engine aurora-mysql
{
  "DBInstanceIdentifier": "serverless-v2-instance-1",
  "DBClusterIdentifier": "mysql-80",
  "DBInstanceClass": "db.serverless",
  "DBInstanceStatus": "creating"
}

$ aws rds create-db-instance --db-instance-identifier serverless-v2-instance-2 \
  --db-cluster-identifier mysql-80 --db-instance-class db.serverless --engine aurora-mysql
{
  "DBInstanceIdentifier": "serverless-v2-instance-2",
  "DBClusterIdentifier": "mysql-80",
  "DBInstanceClass": "db.serverless",
  "DBInstanceStatus": "creating"
}

$ # Wait for both DB instances to finish being created before proceeding.
$ aws rds wait db-instance-available --db-instance-identifier serverless-v2-instance-1 && \
  aws rds wait db-instance-available --db-instance-identifier serverless-v2-instance-2
```

我們執行容錯移轉以使其中一個 Aurora Serverless v2 資料庫執行個體作為叢集的新寫入器。

```
$ aws rds failover-db-cluster --db-cluster-identifier mysql-80 \
  --target-db-instance-identifier serverless-v2-instance-1
{
  "DBClusterIdentifier": "mysql-80",
  "DBClusterMembers": [
    {
      "DBInstanceIdentifier": "serverless-v2-instance-1",
      "IsClusterWriter": false,
      "DBClusterParameterGroupStatus": "in-sync",
      "PromotionTier": 1
    },
    {
      "DBInstanceIdentifier": "serverless-v2-instance-2",
      "IsClusterWriter": false,
      "DBClusterParameterGroupStatus": "in-sync",
      "PromotionTier": 1
    },
    {
      "DBInstanceIdentifier": "provisioned-instance-2",
      "IsClusterWriter": false,
      "DBClusterParameterGroupStatus": "in-sync",
      "PromotionTier": 1
    },
    {
      "DBInstanceIdentifier": "provisioned-instance-1",
      "IsClusterWriter": true,
      "DBClusterParameterGroupStatus": "in-sync",
      "PromotionTier": 1
    }
  ],
  "Status": "available"
}
```

變更需要幾秒鐘才會生效。在該點上，我們有一個 Aurora Serverless v2 寫入器和 Aurora Serverless v2 讀取器。因此，我們不需要任何一個原始已佈建的資料庫執行個體。

```
$ aws rds describe-db-clusters --db-cluster-identifier mysql-80 \
  --query '*[].[DBClusterIdentifier,DBClusterMembers[*].[DBInstanceIdentifier,IsClusterWriter]]' \
  --output text
mysql-80
serverless-v2-instance-1        True
serverless-v2-instance-2        False
provisioned-instance-2          False
provisioned-instance-1          False
```

切換過程的最後一步是刪除這兩個已佈建的資料庫執行個體。

```
$ aws rds delete-db-instance --db-instance-identifier provisioned-instance-2 --skip-final-snapshot
{
  "DBInstanceIdentifier": "provisioned-instance-2",
  "DBInstanceStatus": "deleting",
  "Engine": "aurora-mysql",
  "EngineVersion": "8.0.mysql_aurora.3.02.0",
  "DBInstanceClass": "db.r6g.large"
}

$ aws rds delete-db-instance --db-instance-identifier provisioned-instance-1 --skip-final-snapshot
{
  "DBInstanceIdentifier": "provisioned-instance-1",
  "DBInstanceStatus": "deleting",
  "Engine": "aurora-mysql",
  "EngineVersion": "8.0.mysql_aurora.3.02.0",
  "DBInstanceClass": "db.r6g.large"
}
```

於最後檢查，我們確認原始表格可從 Aurora Serverless v2 寫入器資料庫執行個體存取與寫入。

```
mysql> select * from serverless_v2_demo.demo;
+---------------------------------------------------+
| s                                                 |
+---------------------------------------------------+
| This cluster started with a provisioned writer.   |
+---------------------------------------------------+
1 row in set (0.00 sec)

mysql> insert into serverless_v2_demo.demo values ('And it finished with a Serverless v2 writer.');
Query OK, 1 row affected (0.01 sec)

mysql> select * from serverless_v2_demo.demo;
+---------------------------------------------------+
| s                                                 |
+---------------------------------------------------+
| This cluster started with a provisioned writer.   |
| And it finished with a Serverless v2 writer.      |
+---------------------------------------------------+
2 rows in set (0.01 sec)
```

 我們也會連線到 Aurora Serverless v2 讀取器資料庫執行個體，並確認新寫入的資料在那裡也可用。

```
mysql> select * from serverless_v2_demo.demo;
+---------------------------------------------------+
| s                                                 |
+---------------------------------------------------+
| This cluster started with a provisioned writer.   |
| And it finished with a Serverless v2 writer.      |
+---------------------------------------------------+
2 rows in set (0.01 sec)
```

## 比較 Aurora Serverless v2 和 Aurora Serverless v1
<a name="aurora-serverless.comparison"></a>

若您已使用 Aurora Serverless v1，您可以了解 Aurora Serverless v1 和 Aurora Serverless v2 的主要差異。架構差異 (例如對讀取器資料庫執行個體的支援) 開啟了新的使用案例類型。

您可以使用下列表格，協助了解 Aurora Serverless v2 和 Aurora Serverless v1 最重要的差別。

**Topics**
+ [比較 Aurora Serverless v2 和 Aurora Serverless v1 要求](#aurora-serverless.comparison-requirements)
+ [比較 Aurora Serverless v2 和 Aurora Serverless v1 擴展和可用性](#aurora-serverless.comparison-scaling)
+ [比較 Aurora Serverless v2 和 Aurora Serverless v1 功能支援](#aurora-serverless.comparison-features)
+ [調節Aurora Serverless v1 使用案例為 Aurora Serverless v2](#aurora-serverless.comparison-approaches)

### 比較 Aurora Serverless v2 和 Aurora Serverless v1 要求
<a name="aurora-serverless.comparison-requirements"></a>

下表彙總了使用 Aurora Serverless v2 或 Aurora Serverless v1 執行資料庫的不同要求。Aurora Serverless v2 提供比 Aurora Serverless v1 更高版本的 Aurora MySQL 和 Aurora PostgreSQL 資料庫引擎。


| 功能 | Aurora Serverless v2 要求 | Aurora Serverless v1 要求 | 
| --- | --- | --- | 
|  資料庫引擎  |  Aurora MySQL、Aurora PostgreSQL  |  Aurora MySQL、Aurora PostgreSQL  | 
|  支援的 Aurora MySQL 版本  | 請參閱 [Aurora Serverless v2 搭配 Aurora MySQL](Concepts.Aurora_Fea_Regions_DB-eng.Feature.ServerlessV2.md#Concepts.Aurora_Fea_Regions_DB-eng.Feature.ServerlessV2.amy)。 | 請參閱 [Aurora Serverless v1 搭配 Aurora MySQL](Concepts.Aurora_Fea_Regions_DB-eng.Feature.ServerlessV1.md#Concepts.Aurora_Fea_Regions_DB-eng.Feature.ServerlessV1.amy)。 | 
|  支援的 Aurora PostgreSQL 版本  | 請參閱 [Aurora Serverless v2 搭配 Aurora PostgreSQL](Concepts.Aurora_Fea_Regions_DB-eng.Feature.ServerlessV2.md#Concepts.Aurora_Fea_Regions_DB-eng.Feature.ServerlessV2.apg)。 | 請參閱 [Aurora Serverless v1 搭配 Aurora PostgreSQL](Concepts.Aurora_Fea_Regions_DB-eng.Feature.ServerlessV1.md#Concepts.Aurora_Fea_Regions_DB-eng.Feature.ServerlessV1.apg)。 | 
| 升級資料庫叢集 |  與佈建的資料庫叢集類似，您可以手動執行升級，無需等待 Aurora 為您升級資料庫叢集。如需詳細資訊，請參閱[修改 Amazon Aurora 資料庫叢集](Aurora.Modifying.md)。  若要針對 Aurora PostgreSQL 相容的資料庫叢集執行從 13.x 到 14.x 或 15.x 的主要版本升級，叢集的最大容量必須至少為 2 個 ACU。   |  次要版本升級會在可用時自動套用。如需詳細資訊，請參閱[Aurora Serverless v1 和 Aurora 資料庫引擎版本](aurora-serverless.relnotes.md)。 您可以手動執行主要版本升級。如需詳細資訊，請參閱[修改 Aurora Serverless v1 資料庫叢集](aurora-serverless.modifying.md)。  | 
| 從已佈建資料庫叢集轉換 |  您可以使用下列方式：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.upgrade.html)  |  還原已佈建叢集的快照，以建立新的 Aurora Serverless v1 叢集。 | 
| 從 Aurora Serverless v1 叢集轉換 | 請遵循 [從 Aurora Serverless v1 叢集升級至 Aurora Serverless v2](#aurora-serverless-v2.upgrade-from-serverless-v1-procedure) 中的程序。 | 不適用 | 
| 可用的資料庫執行個體類別 | 特殊的資料庫執行個體類別 db.serverless。在 中 AWS 管理主控台，它會標記為無伺服器。 | 不適用。Aurora Serverless v1 會使用 serverless 引擎模式。 | 
|  連線埠  |  任何與 MySQL 或 PostgreSQL 相容的連線埠  |  僅限預設的 MySQL 或 PostgreSQL 連線埠  | 
|  允許使用公有 IP 地址？  |  是  |  否  | 
|  需要 Virtual private cloud (VPC)？  | 是 |  是。每個 Aurora Serverless v1 叢集會佔用分配給 VPC 的 2 個介面和閘道負載平衡器端點。 | 

### 比較 Aurora Serverless v2 和 Aurora Serverless v1 擴展和可用性
<a name="aurora-serverless.comparison-scaling"></a>

 下表彙總可擴展性和可用性的 Aurora Serverless v2 和 Aurora Serverless v1 間的差異。

 比起 Aurora Serverless v2 中的擴展，Aurora Serverless v1 擴展的回應性更快、更精細，而且更少中斷。Aurora Serverless v2 可以透過變更資料庫執行個體的大小和向資料庫叢集新增更多資料庫執行個體來擴展。它也可以透過將其他 中的叢集新增至 Aurora 全域資料庫 AWS 區域 來擴展。相比之下，Aurora Serverless v1 只能透過增加或減少寫入器的容量來擴展。Aurora Serverless v1 叢集的所有運算都在單一可用區域和單一 AWS 區域上執行。


| 擴展和高可用性功能 |  Aurora Serverless v2 行為 |  Aurora Serverless v1 行為 | 
| --- | --- | --- | 
|  Aurora 最小容量單位 (ACU) (Aurora MySQL)  |  叢集執行時為 0.5，叢集暫停時為 0。 |  叢集執行時為 1，叢集暫停時為 0。 | 
|  最低 ACU (Aurora PostgreSQL)  |  叢集執行時為 0.5，叢集暫停時為 0。 |  叢集正在執行時為 2，叢集暫停時為 0。 | 
| 最大 ACU (Aurora MySQL) | 256 | 256 | 
| 最大 ACU (Aurora PostgreSQL) | 256 | 384 | 
|  停止叢集  |  您可以使用與已佈建叢集[相同的叢集停止和啟動功能](aurora-cluster-stop-start.md)，手動停止和啟動叢集。 |  叢集在逾時後自動暫停。活動恢復時，需要一些時間才可使用。 | 
|  資料庫執行個體的擴展  | 以 0.5 ACU 的最小增量縱向擴展或縮減 | 將 ACU 增加一倍或減半以進行縱向擴展或縮減 | 
|  資料庫執行個體的數目  |  與已佈建叢集相同：1 個寫入器資料庫執行個體，最多 15 個讀取器資料庫執行個體。 |  1 個同時處理讀取和寫入的資料庫執行個體。 | 
|  在 SQL 陳述式執行時可以進行擴展嗎？  |  是。Aurora Serverless v2 不需要等待一個安靜點。 |  否。例如，擴展等待長時間執行的交易、臨時表和表格鎖的完成。 | 
|  讀取器資料庫執行個體隨寫入器一起擴展  | 選用 | 不適用 | 
|  最大儲存空間  | 128 TiB | 128 TiB | 
|  擴展時保留緩衝區快取  |  是。緩衝區快取是動態調整大小。 |  否。緩衝區快取在擴展後再加溫。 | 
|  容錯移轉  |  是，與已佈建叢集相同。 |  僅盡最大努力，視容量可用性而定。比 Aurora Serverless v2 慢。 | 
|  多可用區域功能  |  是，與已佈建的相同。多可用區域叢集需要第二個可用區域 (AZ) 中的讀取器資料庫執行個體。若為多可用區域叢集，Aurora 在可用區域故障時執行多可用區容錯移轉。 |  Aurora Serverless v1 叢集在單一可用區域中執行其所有運算。可用區域故障時的還原僅是盡最大努力，依容量可用性而定。 | 
|  Aurora 全球資料庫  |  是  |  否  | 
|  根據記憶體壓力進行擴展  |  是  |  否  | 
|  根據 CPU 負載進行擴展  |  是  |  是  | 
|  根據網路流量進行擴展  |  是，依據網路流量的記憶體和 CPU 額外負荷。max\$1connections 參數保持不變，以避免在縮減規模時中斷連線。 |  是，根據連線數量。 | 
|  擴展事件的逾時動作  |  否  |  是  | 
|  透過 新增資料庫執行個體至叢集 AWS Auto Scaling  |  不適用。您可以在升級層 2–15 中建立 Aurora Serverless v2 讀取器資料庫執行個體，並將其縮減規模到低容量。 |  否。讀取器資料庫執行個體不可用。 | 

### 比較 Aurora Serverless v2 和 Aurora Serverless v1 功能支援
<a name="aurora-serverless.comparison-features"></a>

 下表總結了這些：
+  在 Aurora Serverless v2 中可用，但 Aurora Serverless v1 不可用的功能 
+  Aurora Serverless v1 和 Aurora Serverless v2 之間運作方式不同的功能 
+  目前無法於 Aurora Serverless v2 中使用的功能 

 Aurora Serverless v2 包含來自已佈建叢集的許多功能，這些功能不適用於 Aurora Serverless v1。


| 功能 | Aurora Serverless v2 支援 | Aurora Serverless v1 支援 | 
| --- | --- | --- | 
| 叢集拓撲 | Aurora Serverless v2 是個別資料庫執行個體的屬性。叢集可以包含多個 Aurora Serverless v2 資料庫執行個體，或 Aurora Serverless v2 和已佈建資料庫執行個體的組合。 | Aurora Serverless v1 叢集不使用資料庫執行個體的概念。建立叢集後無法變更 Aurora Serverless v1 屬性。 | 
| 組態參數 | 幾乎所有相同的參數皆可修改為與已佈建叢集中一樣。如需詳細資訊，請參閱[使用 Aurora Serverless v2 的參數群組](aurora-serverless-v2.setting-capacity.md#aurora-serverless-v2.parameter-groups)。 | 僅參數的子集可以修改。 | 
| 參數群組 | 叢集參數群組和資料庫參數群組。SupportedEngineModes 屬性中具 provisioned 值的參數可用。這比 Aurora Serverless v1 中的參數多得多。 | 僅限叢集參數群組。SupportedEngineModes 屬性中具 serverless 值的參數可用。 | 
| 叢集磁碟區的加密 | 選用 | 必要. [Amazon Aurora 加密資料庫叢集的限制](Overview.Encryption.md#Overview.Encryption.Limitations) 中的限制套用至所有 Aurora Serverless v1 叢集。 | 
| 跨區域快照 | 是 | 快照必須使用您自己的 AWS Key Management Service (AWS KMS) 金鑰加密。 | 
| 資料庫叢集刪除後保留的自動備份 | 是 | 否 | 
| TLS/SSL | 是。支援與已佈建叢集的支援相同。如需使用方式的資訊，請參閱 [搭配 Aurora Serverless v2 使用 TLS/SSL](aurora-serverless-v2-administration.md#aurora-serverless-v2.tls)。 | 是。與對已佈建叢集的 TLS 支援存在一些差異。如需使用方式的資訊，請參閱 [搭配 Aurora Serverless v1 使用 TLS/SSL](aurora-serverless.md#aurora-serverless.tls)。 | 
| 複製 | 僅與 Aurora Serverless v2 相容的開始和結束資料庫引擎版本。您不能使用複製從Aurora Serverless v1或來自早期版本的已佈建叢集。 | 僅與 Aurora Serverless v1 相容的開始和結束資料庫引擎版本。 | 
| 與 Amazon S3 整合 | 是 | 是 | 
| 與 整合 AWS Secrets Manager | 是 | 否 | 
| 將資料庫叢集快照資料匯出至 S3 | 是 | 否 | 
| 建立 IAM 角色的關聯 | 是 | 否 | 
| 將 日誌上傳到 Amazon CloudWatch | 選用。您可以選擇要開啟的日誌及要上傳至 CloudWatch 的日誌。 | 所有已開啟的日誌都會自動上傳至 CloudWatch。 | 
| 可使用的資料 API | 是 | 是 | 
| 可用的查詢編輯器 | 是 | 是 | 
| Performance Insights | 是 | 否 | 
| 可用的 Amazon RDS Proxy | 是 | 否 | 
| 可使用 Babelfish for Aurora PostgreSQL | 是。支援同時與 Babelfish 和 Aurora Serverless v2 相容的 Aurora PostgreSQL 版本。 | 否 | 

### 調節Aurora Serverless v1 使用案例為 Aurora Serverless v2
<a name="aurora-serverless.comparison-approaches"></a>

根據 Aurora Serverless v1 的使用案例，您可調整該方法以利用 Aurora Serverless v2 功能，如下所示。

假設您有一個負載較輕的 Aurora Serverless v1 叢集，且您的首要任務是保持連續可用性，同時最大限度地降低成本。利用 Aurora Serverless v2，您可以設定 0.5 的最小 ACU 設定，而 Aurora Serverless v1 的最小 ACU 設定為 1。您可以透過建立多可用區域組態來提高可用性，讀取器資料庫執行個體也至少具有 0.5 個 ACU。

假設您有一個在開發和測試案例中使用的 Aurora Serverless v1 叢集。在這種情況下，成本也是高優先順序，但叢集不需要隨時可用。Aurora Serverless v2 可以在完全閒置時自動暫停每個執行個體。您可以透過為叢集指定 0 個 ACU 的最小容量來執行此操作，如 [使用 Aurora Serverless v2 的自動暫停和繼續擴展至零個 ACU](aurora-serverless-v2-auto-pause.md) 中所述。您也可以在不需要時手動停止叢集，並在下一個測試或開發週期時進行啟動。

假設您有一個工作量很大的 Aurora Serverless v1 叢集。使用 Aurora Serverless v2 的等效叢集可以更細緻地進行擴展。例如：Aurora Serverless v1 透過將容量增加一倍來進行擴展，例如從 64 個 ACU 增加到 128 個 ACU。相反地，您的 Aurora Serverless v2 資料庫執行個體可以 0.5-ACU 增量進行縮減。

假設您的工作負載需要比 Aurora Serverless v1 中更高的總容量。您可以使用多個 Aurora Serverless v2 讀取器資料庫執行個體，從寫入器資料庫執行個體中卸載讀取密集型工作負載部分。您還可以在多個讀取器資料庫執行個體之間分割讀取密集型工作負載。

對於寫入密集型工作負載，您可以將具有大型已佈建資料庫執行個體的叢集設定為寫入器。您可能會針對一或多個 Aurora Serverless v2 讀取器資料庫執行個體這樣做。

## 從 Aurora Serverless v1 叢集升級至 Aurora Serverless v2
<a name="aurora-serverless-v2.upgrade-from-serverless-v1-procedure"></a>

**重要**  
AWS 已[宣布 的end-of-lifeAurora Serverless v1：2025 年 3 月 31 日](https://repost.aws/questions/QUhcMVoChXRm2HLi8F-yih1g/announcement-support-for-aurora-s/announcement-support-for-aurora-serverless-v1-ending-soon)。所有未在 2025 年 3 月 31 日之前遷移的 Aurora Serverless v1 叢集都會在維護時段期間遷移至 Aurora Serverless v2。如果升級失敗，Amazon Aurora 會在維護時段將 Serverless v1 叢集轉換為具有同等引擎版本的佈建叢集。如果適用，Amazon Aurora 將在 Amazon RDS 延長支援中註冊轉換後的已佈建叢集。如需詳細資訊，請參閱[使用 Amazon Aurora 的 Amazon RDS 延伸支援](extended-support.md)。

將資料庫叢集從 Aurora Serverless v1 升級至 Aurora Serverless v2 的程序包含多個步驟。這是因為您無法直接從 Aurora Serverless v1 轉換為 Aurora Serverless v2。當中一律包含將 Aurora Serverless v1 資料庫叢集轉換為已佈建叢集的中繼步驟。

### Aurora MySQL 相容的資料庫叢集
<a name="sv1-to-sv2-ams"></a>

您可以將 Aurora Serverless v1 資料庫叢集轉換為佈建的資料庫叢集，然後使用藍/綠部署進行升級，並將其轉換為 Aurora Serverless v2 資料庫叢集。建議生產環境使用此程序。如需詳細資訊，請參閱[使用 Amazon Aurora 藍/綠部署進行資料庫更新](blue-green-deployments.md)。

**若要使用藍/綠部署，請升級執行 Aurora MySQL 第 2 版 (MySQL 5.7 相容) 的 Aurora Serverless v1 叢集**

1. 將 Aurora Serverless v1 資料庫叢集轉換為已佈建 Aurora MySQL 第 2 版叢集。請遵循 [從 Aurora Serverless v1 轉換為已佈建](aurora-serverless.modifying.md#aurora-serverless.modifying.convert) 中的程序。

1. 建立藍/綠部署 請遵循 [在 Amazon Aurora 中建立藍/綠部署](blue-green-deployments-creating.md) 中的程序。

1. 為與 Aurora Serverless v2 相容的綠色叢集選擇 Aurora MySQL 版本，例如 3.04.1。

   如需相容版本，請參閱 [Aurora Serverless v2 搭配 Aurora MySQL](Concepts.Aurora_Fea_Regions_DB-eng.Feature.ServerlessV2.md#Concepts.Aurora_Fea_Regions_DB-eng.Feature.ServerlessV2.amy)。

1. 修改綠色叢集的寫入器資料庫執行個體，以使用 **Serverless v2** (db.serverless) 資料庫執行個體類別。

   如需詳細資訊，請參閱[將已佈建的寫入器或讀取器轉換為 Aurora Serverless v2](aurora-serverless-v2-administration.md#aurora-serverless-v2-converting-from-provisioned)。

1. 當您升級的 Aurora Serverless v2 資料庫叢集可用時，請從藍色叢集切換到綠色叢集。

### Aurora PostgreSQL 相容的資料庫叢集
<a name="sv1-to-sv2-apg"></a>

您可以將 Aurora Serverless v1 資料庫叢集轉換為佈建的資料庫叢集，然後使用藍/綠部署進行升級，並將其轉換為 Aurora Serverless v2 資料庫叢集。建議生產環境使用此程序。如需詳細資訊，請參閱[使用 Amazon Aurora 藍/綠部署進行資料庫更新](blue-green-deployments.md)。

**若要使用藍/綠部署，請升級執行 Aurora PostgreSQL 第 11 版的 Aurora Serverless v1 叢集**

1. 將 Aurora Serverless v1 資料庫叢集轉換為已佈建 Aurora PostgreSQL 叢集。請遵循 [從 Aurora Serverless v1 轉換為已佈建](aurora-serverless.modifying.md#aurora-serverless.modifying.convert) 中的程序。

1. 建立藍/綠部署 請遵循 [在 Amazon Aurora 中建立藍/綠部署](blue-green-deployments-creating.md) 中的程序。

1. 為與 Aurora Serverless v2 相容的綠色叢集選擇 Aurora PostgreSQL 版本，例如 15.3。

   如需相容版本，請參閱 [Aurora Serverless v2 搭配 Aurora PostgreSQL](Concepts.Aurora_Fea_Regions_DB-eng.Feature.ServerlessV2.md#Concepts.Aurora_Fea_Regions_DB-eng.Feature.ServerlessV2.apg)。

1. 修改綠色叢集的寫入器資料庫執行個體，以使用 **Serverless v2** (db.serverless) 資料庫執行個體類別。

   如需詳細資訊，請參閱[將已佈建的寫入器或讀取器轉換為 Aurora Serverless v2](aurora-serverless-v2-administration.md#aurora-serverless-v2-converting-from-provisioned)。

1. 當您升級的 Aurora Serverless v2 資料庫叢集可用時，請從藍色叢集切換到綠色叢集。

您也可以將 Aurora Serverless v1 資料庫叢集直接從 Aurora PostgreSQL 第 11 版升級至第 13 版，將其轉換為佈建的資料庫叢集，然後將佈建的叢集轉換為 Aurora Serverless v2 資料庫叢集。

**若要升級並轉換執行 Aurora PostgreSQL 第 11 版的 Aurora Serverless v1 叢集**

1. 將 Aurora Serverless v1 資料庫叢集轉換為已佈建 Aurora PostgreSQL 叢集。請遵循 [從 Aurora Serverless v1 轉換為已佈建](aurora-serverless.modifying.md#aurora-serverless.modifying.convert) 中的程序。

1. 將 Aurora Serverless v1 叢集升級為與 Aurora Serverless v2 相容的 Aurora PostgreSQL 第 13 版 (例如第 13.12 版)。請遵循 [升級主要版本](aurora-serverless.modifying.md#aurora-serverless.modifying.upgrade) 中的程序。

   如需相容版本，請參閱 [Aurora Serverless v2 搭配 Aurora PostgreSQL](Concepts.Aurora_Fea_Regions_DB-eng.Feature.ServerlessV2.md#Concepts.Aurora_Fea_Regions_DB-eng.Feature.ServerlessV2.apg)。

1. 新增 Aurora Serverless v2 讀取器資料庫執行個體到叢集中。如需詳細資訊，請參閱[新增 Aurora Serverless v2 讀取器](aurora-serverless-v2-administration.md#aurora-serverless-v2-adding-reader)。

1. 容錯移轉至 Aurora Serverless v2 資料庫執行個體：

   1. 選取資料庫叢集的寫入器資料庫執行個體。

   1. 針對 **Actions** (動作)，選擇 **Failover** (容錯移轉)。

   1. 在確認頁面上，選擇**容錯移轉**。

對於執行 Aurora PostgreSQL 第 13 版的 Aurora Serverless v1 資料庫叢集，您可以將 Aurora Serverless v1 叢集轉換為佈建的資料庫叢集，然後將佈建的叢集轉換為 Aurora Serverless v2 資料庫叢集。

**升級執行 Aurora PostgreSQL 第 13 版的 Aurora Serverless v1 叢集**

1. 將 Aurora Serverless v1 資料庫叢集轉換為已佈建 Aurora PostgreSQL 叢集。請遵循 [從 Aurora Serverless v1 轉換為已佈建](aurora-serverless.modifying.md#aurora-serverless.modifying.convert) 中的程序。

1. 新增 Aurora Serverless v2 讀取器資料庫執行個體到叢集中。如需詳細資訊，請參閱[新增 Aurora Serverless v2 讀取器](aurora-serverless-v2-administration.md#aurora-serverless-v2-adding-reader)。

1. 容錯移轉至 Aurora Serverless v2 資料庫執行個體：

   1. 選取資料庫叢集的寫入器資料庫執行個體。

   1. 針對 **Actions** (動作)，選擇 **Failover** (容錯移轉)。

   1. 在確認頁面上，選擇**容錯移轉**。

1. 移除讀取器執行個體。

## 從內部部署資料庫遷移至 Aurora Serverless v2
<a name="aurora-serverless-v2.migrate-from-on-prem"></a>

您可以將內部部署資料庫遷移到 Aurora Serverless v2，如同佈建 Aurora MySQL 和 Aurora PostgreSQL 一般。
+ 對於 MySQL 資料庫，您可以使用 `mysqldump` 命令。如需詳細資訊，請參閱 *Amazon Relational Database Service 使用者指南*中的[將資料匯入至 Amazon RDS for MySQL 資料庫，並減少停機時間](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql-importing-data-reduced-downtime.html)。
+ 對於 PostgreSQL 資料庫，您可以使用 `pg_dump` 和 `pg_restore` 命令。如需詳細資訊，請參閱部落格貼文 [Best practices for migrating PostgreSQL databases to Amazon RDS and Amazon Aurora](https://aws.amazon.com/blogs/database/best-practices-for-migrating-postgresql-databases-to-amazon-rds-and-amazon-aurora/) (將 PostgreSQL 資料庫遷移到 Amazon RDS 和 Amazon Aurora 的最佳實務)。