

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

# 提升僅供讀取複本為獨立的資料庫執行個體
<a name="USER_ReadRepl.Promote"></a>

您可以將僅供讀取複本提升為獨立的資料庫執行個體。如果來源資料庫執行個體擁有多個僅供讀取複本，將其中一個僅供讀取複本提升為資料庫執行個體，並不會影響其他的複本。

當您提升僅供讀取複本時，RDS 會先將資料庫執行個體重新開機，再使其可供使用。該提升程序可耗費數分鐘或更長的時間來完成，視僅供讀取複本大小而定。

![\[提升僅供讀取複本\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/read-replica-promote.png)


## 提升僅供讀取複本的使用案例
<a name="USER_ReadRepl.Promote.use_cases"></a>

您可能基於下列任何原因，而想要將僅供讀取複本提升為獨立資料庫執行個體：
+ **實作故障復原** – 您可用僅供讀取複本提升，做為主要資料庫執行個體故障時的資料復原結構描述。這種方法可用於補強同步複寫、自動故障偵測和容錯移轉。

  如果您已了解非同步複寫的後果和限制，但仍想使用僅供讀取複本提升做為資料復原，可以這樣做。要進行此操作，請先建立僅供讀取複本，然後監控主要資料庫執行個體的故障。若發生故障，請執行下列程序：

  1. 提升僅供讀取複本。

  1. 將資料庫流量引導至提升的資料庫執行個體。

  1. 以提升的資料庫執行個體做為來源，建立替換的僅供讀取複本。
+ **升級儲存體組態** - 如果來源資料庫執行個體不在偏好的儲存體組態上，您可以建立執行個體的僅供讀取複本，並升級儲存體檔案系統組態。此選項會將僅供讀取複本的檔案系統遷移至偏好的組態。您接著可以將僅供讀取複本提升為獨立的執行個體。

  您可以使用此選項，克服舊版 32 位元檔案系統對儲存體和檔案大小的擴展限制。如需詳細資訊，請參閱[升級資料庫執行個體的儲存體檔案系統](USER_PIOPS.UpgradeFileSystem.md)。

  只有在您的來源資料庫執行個體*不*在最新的儲存體組態上時，或只有在您要在相同請求內修改資料庫執行個體類別時，才能使用此選項。
+ **分片** – 分片採用「不共用」架構，基本上就是將一個大型資料庫分成多個較小的資料庫。拆分資料庫的一種常見方式，就是將未加入同一個查詢的資料表拆分到不同的主機。另一個方法是將資料表複製到多個主機，接著使用雜湊演算法來決定哪個主機將接收特定的更新。您可建立與每個分片 (較小的資料庫) 對應的僅供讀取複本，然後在您決定將其轉換為獨立分片時加以提升。接著您可根據需求調整金鑰空間 (如果要拆分資料列) 或分散資料表到每個分片。
+ **執行 DDL 操作 (僅限 MySQL 和 MariaDB)** – 像是建立或重建索引等 DDL 操作需要一段時間，且會大幅降低資料庫執行個體的效能。一旦僅供讀取複本與其主要資料庫執行個體同步後，您便能在 MySQL 或 MariaDB 僅供讀取複本上執行這些操作。接著您可提升僅供讀取複本，並指示應用程式使用提升的執行個體。

**注意**  
如果您的僅供讀取複本是 RDS for Oracle 資料庫執行個體，您可以執行*轉換*而非提升。在轉換中，來源資料庫執行個體會成為新複本，而複本會成為新的來源資料庫執行個體。如需詳細資訊，請參閱[執行 Oracle Data Guard 容錯移轉](oracle-replication-switchover.md)。

## 僅供讀取複本提升後的特性
<a name="USER_ReadRepl.Promote.characteristics"></a>

僅供讀取複本在提升之後，會停止以僅供讀取複本的形式運作，並成為獨立資料庫執行個體。新的獨立資料庫執行個體具有下列特性：
+ 獨立資料庫執行個體會保留提升前僅供讀取複本的選項群組和參數群組。
+ 您可以從獨立資料庫執行個體建立僅供讀取複本，並執行時間點還原操作。
+ 由於該資料庫執行個體已不再是僅供讀取複本，因此無法做為複寫目標。

## 提升僅供讀取複本的先決條件
<a name="USER_ReadRepl.Promote.prereqs"></a>

提升僅供讀取複本之前，請先執行下列動作：
+ 檢閱您的備份策略：
  + 建議您啟用備份，並至少完成一次備份。備份持續期間為自上次備份後資料庫變更的數量函數。
  + 如果您已啟用僅供讀取複本的備份，請設定自動備份時間，以免日常備份干擾到僅供讀取複本的提升。
  + 確定您的僅供讀取複本未處於 `backing-up` 狀態。您無法提升處於此狀態的僅供讀取複本。
+ 禁止任何交易寫入至主要資料庫執行個體，然後等待 RDS 將所有更新套用至僅供讀取複本。

  資料庫更新在主要資料庫執行個體上發生之後，會在僅供讀取複本上發生。複寫延遲可能會有很大的差異。使用 [https://aws.amazon.com/rds/faqs/#105](https://aws.amazon.com/rds/faqs/#105) 指標以確定針對僅供讀取複本進行的所有更新時間。
+ (僅限 MySQL 和 MariaDB) 在提升 MySQL 或 MariaDB 僅供讀取複本之前若要先加以變更，請在僅供讀取複本的資料庫參數群組中將 `read_only` 參數設定為 `0`。接著您便能執行所有必要的 DDL 操作，像是在僅供讀取複本上建立索引。在僅供讀取複本上擷取快照，不會影響主要資料庫執行個體的效能。

## 提升僅供讀取複本：基本步驟
<a name="USER_ReadRepl.Promote.steps"></a>

以下步驟顯示了提升僅供讀取複本至資料庫執行個體的一般流程：

1. 使用 Amazon RDS 主控台上的**提升**選項、 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 操作來提升僅供讀取複本。
**注意**  
提升程序可能需要幾分鐘來完成。當您提升僅供讀取複本後，RDS 就會停止複寫，並將僅供讀取複本重新開機。當重新啟動完成，該僅供讀取複本便可用做新的資料庫執行個體。

1. (選用) 將新的資料庫執行個體修改為異地同步備份部署。如需詳細資訊，請參閱 [修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md) 及 [設定及管理 Amazon RDS 的多可用區域部署](Concepts.MultiAZ.md)。

### 主控台
<a name="USER_ReadRepl.Promote.Console"></a>

**若要將僅供讀取複本提升為獨立的資料庫執行個體**

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

1. 在 Amazon RDS 主控台，選擇 **Databases (資料庫)**。

   **Databases (資料庫)** 窗格隨即出現。每個僅供讀取複本會在 **Role (角色)** 欄中顯示 **Replica (複本)**。

1. 選擇您要提升的僅供讀取複本。

1. 針對 **Actions (動作)**，選擇 **Promote (提升)**。

1. 在**提升僅供讀取複本**頁面上，輸入新升級資料庫執行個體的備份保留期和備份時間。

1. 滿意所有設定時，請選擇 **Continue (繼續)**。

1. 在確認頁面上，選擇 **Promote Read Replica (提升僅供讀取複本)**。

### AWS CLI
<a name="USER_ReadRepl.Promote.CLI"></a>

若要將僅供讀取複本提升為獨立資料庫執行個體，請使用 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 myreadreplica
```
在 Windows 中：  

```
aws rds promote-read-replica ^
    --db-instance-identifier myreadreplica
```

### RDS API
<a name="USER_ReadRepl.Promote.API"></a>

若要將僅供讀取複本提升為獨立的資料庫執行個體，請使用所需參數 `DBInstanceIdentifier` 呼叫 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) 操作。