

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

# Neptune 中的資料庫複製
<a name="manage-console-cloning"></a>

使用資料庫複製，您可以快速且經濟實惠地在 Amazon Neptune 中建立所有資料庫的複本。複製資料庫在第一次建立時只需最少的額外空間。資料庫複製使用*寫入時複製通訊協定*。無論在來源資料庫或複製資料庫上，在資料變更時會複製資料。您可以從相同的資料庫叢集建立多個複製。您也可以從其他複製建立額外的複製。如需複製時寫入通訊協定如何在 Neptune 儲存體內容中運作的詳細資訊，請參閱 [寫入時複製通訊協定](#manage-console-cloning-protocol)。

您可以在各種使用案例中使用資料庫複製，尤其是您不想要對生產環境產生影響的使用案例，如下所示：
+ 實驗並評估變更的影響，例如結構描述變更或參數群組變更。
+ 執行工作負載密集的操作，例如匯出資料或執行分析查詢。
+ 在非生產環境中建立生產資料庫叢集的副本，以進行開發或測試。

**使用 建立資料庫叢集的複製 AWS 管理主控台**

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

1. 在導覽窗格中，選擇**執行個體**。選擇您要建立其複製之資料庫叢集的主要執行個體。

1. 選擇 **Instance actions (執行個體動作)**，然後選擇 **Create clone (建立複製)**。

1. 在 **Create Clone (建立複製)** 頁面上，輸入複製資料庫叢集主要執行個體的名稱，做為 **DB instance identifier (資料庫執行個體識別符)**。

   如果想要的話，請對複製資料庫叢集設定任何其他設定。如需不同資料庫叢集設定的詳細資訊，請參閱 [使用主控台啟動](manage-console-launch-console.md)。

1. 選擇 **Create Clone (建立複製)** 來啟動複製資料庫叢集。

**使用 建立資料庫叢集的複製 AWS CLI**
+ 呼叫 Neptune [restore-db-cluster-to-point-in-time](api-snapshots.md#RestoreDBClusterToPointInTime) AWS CLI 命令並提供下列值：
  + `--source-db-cluster-identifier` – 要建立其複製的來源資料庫叢集的名稱。
  + `--db-cluster-identifier` – 複製資料庫叢集的名稱。
  + `--restore-type copy-on-write` – `copy-on-write` 值指出應該建立複製資料庫叢集。
  + `--use-latest-restorable-time` – 這會指定應使用最新可還原的備份時間。
**注意**  
[restore-db-cluster-to-point-in-time](api-snapshots.md#RestoreDBClusterToPointInTime) AWS CLI 命令只會複製資料庫叢集，而不會還原該資料庫叢集的資料庫執行個體。

  下列 Linux/UNIX 範例會從 `source-db-cluster-id` 資料庫叢集建立複本，並將複本命名為 `db-clone-cluster-id`。

  ```
  aws neptune restore-db-cluster-to-point-in-time \
    --region us-east-1 \
    --source-db-cluster-identifier source-db-cluster-id \
    --db-cluster-identifier db-clone-cluster-id \
    --restore-type copy-on-write \
    --use-latest-restorable-time
  ```

  如果 `\` 行尾逸出字元取代為 Windows `^` 對等字元，則相同的範例適用於 Windows：

  ```
  aws neptune restore-db-cluster-to-point-in-time ^
    --region us-east-1 ^
    --source-db-cluster-identifier source-db-cluster-id ^
    --db-cluster-identifier db-clone-cluster-id ^
    --restore-type copy-on-write ^
    --use-latest-restorable-time
  ```

## 限制
<a name="manage-console-cloning-limitations"></a>

Neptune 中的資料庫複製具有下列限制：
+ 您無法跨 AWS 區域建立複製資料庫。複製資料庫必須建立在與來源資料庫相同的區域中。
+ 複製的資料庫永遠都會使用 Neptune 引擎版本的最新修補程式，而此引擎版本是由從其複製的資料庫所使用。即使來源資料庫尚未升級至該修補程式版本，也是如此。但是，引擎版本本身不會改變。
+ 目前，您最多可在 Neptune DB 叢集的每個複本進行 15 次複製，包括以其他複製為基礎的複製。在達到該限制之後，您必須製作另一個資料庫副本，而不是複製它。不過，如果您建立新副本，最多也可以有 15 個複製。
+ 目前不支援跨帳戶資料庫複製。
+ 您可以提供不同的 virtual private cloud (VPC) 進行複製。不過，那些 VPC 中的子網路必須映射至相同的可用區域集。

## 用於資料庫複製的寫入時複製通訊協定
<a name="manage-console-cloning-protocol"></a>

下列範例說明寫入時複製協定的運作方式。
+ [複製之前的 Neptune 資料庫](#manage-console-cloning-protocol-before)
+ [複製之後的 Neptune 資料庫](#manage-console-cloning-protocol-after)
+ [對來源資料庫進行變更時](#manage-console-cloning-protocol-source-write)
+ [對複製資料庫進行變更時](#manage-console-cloning-protocol-clone-write)

### 複製之前的 Neptune 資料庫
<a name="manage-console-cloning-protocol-before"></a>

來源資料庫中的資料存放於頁面。在下圖中，來源資料庫有四個頁面。

![\[Neptune 來源資料庫，在資料庫複製之前有 4 頁。\]](http://docs.aws.amazon.com/zh_tw/neptune/latest/userguide/images/neptune-clone-1.png)


### 複製之後的 Neptune 資料庫
<a name="manage-console-cloning-protocol-after"></a>

如下圖所示，在資料庫複製之後，來源資料庫中沒有任何變更。來源資料庫與複製資料庫都指向相同的四個頁面。不會實際複製任何頁面，所以不需要額外的儲存空間。

![\[在資料庫複製之後指向相同頁面的 Neptune 來源資料庫和複製資料庫。\]](http://docs.aws.amazon.com/zh_tw/neptune/latest/userguide/images/neptune-clone-2.png)


### 對來源資料庫進行變更時
<a name="manage-console-cloning-protocol-source-write"></a>

在下列範例中，來源資料庫會對 `Page 1` 中的資料進行變更。系統不會寫入至原始 `Page 1`，而是使用額外儲存空間建立新的頁面，稱為 `Page 1'`。來源資料庫現在指向新的 `Page 1'`，同時也指向 `Page 2`、`Page 3` 和 `Page 4`。複製資料庫繼續指向 `Page 1` 到 `Page 4`。

![\[在來源資料庫變更之後的 Neptune 來源資料庫和複製資料庫。\]](http://docs.aws.amazon.com/zh_tw/neptune/latest/userguide/images/neptune-clone-3.png)


### 對複製資料庫進行變更時
<a name="manage-console-cloning-protocol-clone-write"></a>

在下圖中，複製資料庫也做了變更，這次在 `Page 4` 中。不是寫入至原始 `Page 4`，而是使用額外儲存空間建立新的頁面，稱為 `Page 4'`。來源資料庫繼續指向 `Page 1'`，同時也指向 `Page 2` 到 `Page 4`，但複製資料庫現在會指向 `Page 1` 到 `Page 3`，同時也指向 `Page 4'`。

![\[在複製資料庫變更之後的 Neptune 來源資料庫和複製資料庫。\]](http://docs.aws.amazon.com/zh_tw/neptune/latest/userguide/images/neptune-clone-4.png)


如第二個案例所示，在資料庫複製之後，在建立複製時不需要額外的儲存空間。不過，當來源資料庫與複製資料庫中發生變更時，只會建立已變更的頁面，如第三個及第四個案例所示。隨著來源資料庫與複製資料庫在一段時間後發生更多變更，您需要不斷增加更多的儲存空間來擷取並存放變更。

## 刪除來源資料庫
<a name="manage-console-cloning-source-deleting"></a>

刪除來源資料庫不會影響與其相關聯的複製資料庫。複製資料庫會繼續指向來源資料庫先前所擁有的頁面。