

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

# 使用 Oracle Data Pump 將內部部署 Oracle 資料庫遷移至 Amazon EC2
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump"></a>

*Navakanth Talluri，Amazon Web Services*

## 總結
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-summary"></a>

遷移資料庫時，您必須考慮來源和目標資料庫引擎和版本、遷移工具和服務，以及可接受的停機時間期間等因素。如果您要將現場部署 Oracle 資料庫遷移至 Amazon Elastic Compute Cloud (Amazon EC2)，您可以使用 Oracle 工具，例如 Oracle Data Pump 和 Oracle Recovery Manager (RMAN)。如需策略的詳細資訊，請參閱[將 Oracle 資料庫遷移至 AWS 雲端](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)。

Oracle Data Pump 可協助您擷取資料庫的邏輯一致備份，並將其還原至目標 EC2 執行個體。此模式說明如何使用 Oracle Data Pump 和 `NETWORK_LINK` 參數，將現場部署 Oracle 資料庫遷移至 EC2 執行個體，並將停機時間降至最低。`NETWORK_LINK` 參數會透過資料庫連結開始匯入。目標 EC2 執行個體上的 Oracle Data Pump Import (impdp) 用戶端會連線至來源資料庫、從中擷取資料，以及將資料直接寫入目標執行個體上的資料庫。此解決方案中沒有使用的備份或*傾印*檔案。

## 先決條件和限制
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-prereqs"></a>

**先決條件**
+ 作用中的 AWS 帳戶
+ 內部部署 Oracle 資料庫：
  + 不是 Oracle Real Application Clusters (RAC) 資料庫
  + 不是 Oracle Automatic Storage Management (Oracle ASM) 資料庫
  + 處於讀寫模式。
+ 您已在內部部署資料中心和 AWS 之間建立 AWS Direct Connect 連結。如需詳細資訊，請參閱[建立連線](https://docs.aws.amazon.com/directconnect/latest/UserGuide/create-connection.html) (Direct Connect 文件）。

**產品版本**
+ Oracle 資料庫 10g 版本 1 (10.1) 和更新版本

## Architecture
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-architecture"></a>

**來源技術堆疊**
+ 內部部署資料中心中的獨立 （非 ASM 和非 ASM) Oracle 資料庫伺服器

**目標技術堆疊**
+ 在 Amazon EC2 上執行的 Oracle 資料庫

**目標架構**

AWS Well-Architected Framework 的[可靠性支柱](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/welcome.html)建議建立資料備份，以協助提供高可用性和彈性。如需詳細資訊，請參閱在 *AWS 上執行 Oracle 資料庫的最佳實務*中的[高可用性架構](https://docs.aws.amazon.com/whitepapers/latest/oracle-database-aws-best-practices/architecting-for-high-availability.html#amazon-ec2)。此模式會使用 Oracle Active Data Guard 在 EC2 執行個體上設定主要和待命資料庫。為了獲得高可用性，EC2 執行個體應該位於不同的可用區域。不過，可用區域可以位於相同的 AWS 區域或不同的 AWS 區域。

Active Data Guard 提供實體待命資料庫的唯讀存取權，並持續從主要資料庫套用重做變更。根據您的復原點目標 (RPO) 和復原時間目標 (RTO)，您可以選擇同步和非同步重做傳輸選項。

如果主要和待命 EC2 執行個體位於不同的 AWS 區域，下圖會顯示目標架構。

![\[連接至主要 EC2 執行個體上新資料庫的應用程式\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/bdd49395-2f99-43e2-ad1d-a1d09d90fb58/images/37fcd4dc-5516-416b-a280-0c5f002880de.png)


**資料遷移架構**

完成目標架構的設定後，您可以使用 Oracle Data Pump 將內部部署資料和結構描述遷移至主要 EC2 執行個體。在切換期間，應用程式無法存取現場部署資料庫或目標資料庫。您可以關閉這些應用程式，直到它們可以連接到主要 EC2 執行個體上的新目標資料庫為止。

下圖顯示資料遷移期間的架構。在此範例架構中，主要和待命 EC2 執行個體位於不同的 AWS 區域。

![\[來源資料庫會連線至目標資料庫。應用程式與來源和目標DBs中斷連線\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/bdd49395-2f99-43e2-ad1d-a1d09d90fb58/images/c58b669b-b11f-4d78-8911-c07b81b7c6a0.png)


## 工具
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-tools"></a>

**AWS 服務**
+ [AWS Direct Connect](https://aws.amazon.com/directconnect/) 透過標準乙太網路光纖纜線，將您的內部網路連結至 Direct Connect 位置。透過此連線，您可以直接建立與公有 AWS 服務的虛擬介面，同時略過網路路徑中的網際網路服務供應商。
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) 在 AWS 雲端中提供可擴展的運算容量。您可以視需要啟動任意數量的虛擬伺服器，，並快速進行擴展或縮減。

**其他工具和服務**
+ [Oracle Active Data Guard](https://docs.oracle.com/en/database/oracle/oracle-database/21/sbydb/introduction-to-oracle-data-guard-concepts.html#GUID-5E73667D-4A56-445E-911F-1E99092DD8D7) 可協助您建立、維護、管理和監控待命資料庫。
+ [Oracle Data Pump](https://www.oracle.com/technetwork/documentation/data-pump-overview-084963.html) 可協助您以高速將資料和中繼資料從一個資料庫移至另一個資料庫。

## 最佳實務
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-best-practices"></a>
+ [在 AWS 上執行 Oracle Database 的最佳實務](https://docs.aws.amazon.com/whitepapers/latest/oracle-database-aws-best-practices/architecting-for-security-and-performance.html)
+ [使用 NETWORK\$1LINK 匯入資料](https://docs.oracle.com/database/121/SUTIL/GUID-23E58D59-A477-4A87-BD0E-C82447581D0A.htm#SUTIL856)

## 史詩
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-epics"></a>

### 在 AWS 上設定 EC2 執行個體
<a name="set-up-the-ec2-instances-on-aws"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 識別現場部署主機的來源硬體組態和核心參數。 | 驗證內部部署組態，包括儲存大小、每秒輸入/輸出操作 (IOPS) 和 CPU。這對以 CPU 核心為基礎的 Oracle 授權很重要。 | DBA、SysAdmin | 
| 在 AWS 上建立基礎設施。 | 建立虛擬私有雲端 (VPCs)、私有子網路、安全群組、網路存取控制清單 ACLs)、路由表和網際網路閘道。如需詳細資訊，請參閱下列內容：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.html) | DBA、AWS 系統管理員 | 
| 使用 Active Data Guard 設定 EC2 執行個體。 | 使用 Active Data Guard 組態來設定 AWS EC2 執行個體，如 [AWS Well-Architected Framework](https://docs.aws.amazon.com/wellarchitected/latest/framework/welcome.html) 中所述。EC2 執行個體上的 Oracle 資料庫版本可能與內部部署版本不同，因為此模式使用邏輯備份。注意下列事項：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.html)如需詳細資訊，請參閱：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.html) | DBA、AWS 系統管理員 | 

### 將資料庫遷移至 Amazon EC2
<a name="migrate-the-database-to-amazon-ec2"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 從 EC2 執行個體建立內部部署資料庫的 dblink。 | 在 EC2 執行個體上的 Oracle 資料庫與內部部署 Oracle 資料庫之間建立資料庫連結 (dblink)。如需詳細資訊，請參閱[使用網路連結匯入移動資料](https://docs.oracle.com/database/121/SUTIL/GUID-3E1D4B46-E856-4ABE-ACC5-977A898BB0F1.htm#SUTIL806) (Oracle 文件）。 | DBA | 
| 驗證 EC2 執行個體與內部部署主機之間的連線。 | 使用 dblink 確認 EC2 執行個體與內部部署資料庫之間的連線正常運作。如需說明，請參閱 [CREATE DATABASE LINK](https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5005.htm) (Oracle 文件）。 | DBA | 
| 停止所有連接到現場部署資料庫的應用程式。 | 核准資料庫停機時間後，請關閉任何包含到現場部署資料庫的應用程式和相依任務。您可以直接從應用程式或使用 cron 從資料庫執行此操作。如需詳細資訊，請參閱[使用 Crontab 公用程式在 Oracle Linux 上排程任務](https://docs.oracle.com/en/learn/oracle-linux-crontab/index.html)。 | DBA，應用程式開發人員 | 
| 排程資料遷移任務。 | 在目標主機上，使用 命令`impdb`來排程 Data Pump 匯入。這會將目標資料庫連接到現場部署主機，並啟動資料遷移。如需詳細資訊，請參閱 [Data Pump Import](https://docs.oracle.com/database/121/SUTIL/GUID-D11E340E-14C6-43B8-AB09-6335F0C1F71B.htm#SUTIL300) 和 [NETWORK\$1LINK](https://docs.oracle.com/database/121/SUTIL/GUID-0871E56B-07EB-43B3-91DA-D1F457CF6182.htm#SUTIL919) (Oracle 文件）。 | DBA | 
| 驗證資料遷移。 | 資料驗證是重要的步驟。對於資料驗證，您可以使用自訂工具或 Oracle 工具，例如 dblink 和 SQL 查詢的組合。 | DBA | 

### 剪下
<a name="cut-over"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 將來源資料庫置於唯讀模式。 | 確認應用程式已關閉，且未對來源資料庫進行任何變更。以唯讀模式開啟來源資料庫。這可協助您避免任何開啟的交易。如需詳細資訊，請參閱 [SQL 陳述](https://docs.oracle.com/database/121/SQLRF/statements_1006.htm#i2135540)式`ALTER DATABASE`中的 (Oracle 文件）。 | DBA、DevOps 工程師、應用程式開發人員 | 
| 驗證物件計數和資料。 | 若要驗證資料和物件，請使用自訂工具或 Oracle 工具，例如 dblink 和 SQL 查詢的組合。 | DBA，應用程式開發人員 | 
| 將應用程式連接至主要 EC2 執行個體上的資料庫。 | 變更應用程式的連線屬性，以指向您在主要 EC2 執行個體上建立的新資料庫。 | DBA，應用程式開發人員 | 
| 驗證應用程式效能。 | 啟動應用程式。使用[自動化工作負載儲存庫](https://docs.oracle.com/database/121/RACAD/GUID-C3CD2DCE-38BD-46BA-BC32-7A28CAC9A7FD.htm#RACAD951) (Oracle 文件） 驗證應用程式的功能和效能。 | 應用程式開發人員、DevOps 工程師、DBA | 

## 相關資源
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-resources"></a>

**AWS 參考**
+ [將 Oracle 資料庫遷移至 AWS 雲端](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)
+ [Amazon EC2 for Oracle](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/ec2-oracle.html)
+ [將大量 Oracle 資料庫遷移至跨平台環境的 AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migrate-bulky-oracle-databases/welcome.html)
+ [VPCs和子網路](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)
+ [教學課程：建立 VPC 以與資料庫執行個體搭配使用](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateVPC.html)

**Oracle 參考**
+ [Oracle Data Guard 組態](https://docs.oracle.com/en/database/oracle/oracle-database/21/sbydb/introduction-to-oracle-data-guard-concepts.html#GUID-AB9DF863-2C7E-4767-81F2-56AD0FA30B49)
+ [資料幫浦匯入](https://docs.oracle.com/database/121/SUTIL/GUID-D11E340E-14C6-43B8-AB09-6335F0C1F71B.htm#SUTIL300)