

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

# 遷移至 Amazon RDS for Oracle 的最佳實務
<a name="best-practices"></a>

根據資料庫的評估和專案需求，如果您的目標是遷移至 Amazon RDS for Oracle，請遵循本節中的最佳實務來佈建您的目標資料庫、執行遷移，以及測試、操作和最佳化您的 Amazon RDS for Oracle 資料庫。

**重要**  
遷移資料庫之前，請確定您有復原計劃。

## 佈建您的目標資料庫
<a name="provision"></a>

完成評估、規劃和準備資料庫遷移策略後，請遵循下列最佳實務來佈建 Amazon RDS for Oracle 資料庫：
+ 根據您的 CPU、記憶體、IOPS 和儲存體類型需求，調整 Amazon RDS for Oracle 資料庫執行個體的大小。
+ 設定正確的時區和字元集。
+ 請務必在正確的虛擬私有雲端 (VPC) 中啟動 Amazon RDS。
+ 使用正確的連接埠和 IP 地址建立安全群組。
+ 為安全起見，在私有子網路中佈建 Amazon RDS 資料庫。
+ 如果可能，請使用目前為 19c 的最新 Oracle 資料庫版本來佈建資料庫執行個體。舊版的支援即將結束。如需詳細資訊，請參閱 [Oracle Database 19c 的 Amazon RDS 支援](https://aws.amazon.com/about-aws/whats-new/2019/11/amazon-rds-for-oracle-now-supports-oracle-database-19c/)。
+ 如果您想要使用加密，請務必在佈建 Amazon RDS 資料庫時啟用它。
+ 為每個 Amazon RDS 資料庫建立個別的選項群組和參數群組。

## 從來源資料庫匯出資料
<a name="export-data"></a>

有許多工具可將 Oracle 資料庫遷移至 Amazon RDS for Oracle 資料庫。最常用的工具是 Oracle Data Pump。在匯出來源 Oracle 資料庫之前，請檢查下列項目以促進匯出程序：
+ 檢查資料庫大小，查看您是否可以透過結構描述遷移其結構描述，而不是遷移完整的資料庫。與一次全部遷移相比，個別遷移結構描述較不容易出錯且易於管理。
+ 使用 Oracle Data Pump PARALLEL 參數以平行模式匯出資料，以獲得更好的效能。
+ 檢查資料表是否有大型物件 LOBs)。如果您有具有 LOBs的大型資料表，建議您分別匯出這些資料表。
+ 在匯出程序期間，避免在來源資料庫上執行長資料庫交易，以避免 Oracle 讀取不一致錯誤。
+ 如果您使用 AWS DMS Oracle GoldenGate 或 Quest SharePlex 等複寫工具，請確定您的現場部署伺服器上有足夠的空間來保存封存日誌 24-72 小時，具體取決於遷移需要多長時間。

## 將資料傾印檔案傳輸至 AWS
<a name="transfer-data"></a>

如果您使用的是 AWS Direct Connect，其可在內部部署環境與 之間提供高頻寬連線 AWS，您可以使用 Oracle [DBMS\$1FILE\$1TRANSFER](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_FILE_TRANSFER.html) 公用程式或 [Amazon S3 整合功能](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html)來複製 Data Pump 檔案。如果您沒有高頻寬 AWS Direct Connect，請使用 AWS Snowball 傳輸大型資料庫匯出傾印檔案。

## 將資料匯入目標資料庫
<a name="import-data"></a>
+ 如果您要遷移非常大型的資料庫，我們建議您在遷移期間先佈建更大的 [Amazon RDS 執行個體類型](https://aws.amazon.com/rds/instance-types/)，以便更快速地載入資料。遷移完成後，您可以將資料庫執行個體變更為適當大小的執行個體類型。
+ 視需要增加重做日誌檔案、復原資料表空間和暫存資料表空間的大小，以改善遷移期間的效能。
+ 在匯入程序期間停用異地同步備份選項，並在遷移完成後啟用。
+ 將備份保留期設定為零以實現更快的資料載入，以停用存檔日誌的產生。
+ 事先建立資料表空間、使用者、角色、設定檔和結構描述，以準備目標資料庫。
+ 如果您有具有 LOBs 的大型資料表，請分別匯入每個 LOB 資料表。

## 匯入後步驟
<a name="post-import"></a>
+ 檢查匯入日誌檔案是否有錯誤，並在匯入完成後修正任何錯誤。
+ 檢查無效物件。如果您找到任何項目，請編譯並修復它們。
+ 由於 Amazon RDS 中不允許或支援的 SYS 物件缺少許可，某些程序可能無法編譯。必須重寫這些程序。
+ 如果您使用的是序列，請針對來源資料庫驗證序列值，以避免序列不一致。
+ 請確定 Amazon RDS 資料庫中的物件計數與來源資料庫中的物件計數相同。驗證資料表、索引、程序、觸發條件、函數、套件、限制條件和其他物件。
+ 如果您的來源資料庫有其他資料庫的資料庫連結，請測試連線以確認連結仍然有效。
+ 收集字典層級和結構描述層級統計資料，以獲得最佳效能。

## 測試遷移
<a name="test-migration"></a>

我們建議您進行下列測試，以針對新的 Amazon RDS for Oracle 資料庫驗證您的應用程式：
+ 您可能需要根據 Amazon RDS for Oracle 資料庫版本升級 Oracle 用戶端軟體或 JDBC 軟體。如果您已遷移至較新版本的 Oracle Database，它可能不支援較舊版本的 Oracle 用戶端軟體。
+ 執行功能測試。
+ 比較來源和目標資料庫中 SQL 查詢的效能，並視需要調整查詢。有些查詢在目標資料庫中執行速度可能較慢，因此建議您擷取來源資料庫中 SQL 查詢的基準。
+ 當應用程式團隊完成測試並確認 Amazon RDS 資料庫正常運作時，您可以：
  + 根據您的評估調整 Amazon RDS 資料庫執行個體的大小。
  + 啟用備份保留。
  + 啟用封存日誌。
  + 重設重做日誌檔案的大小。
  + 啟用異地同步備份選項。
  + 建立 Amazon CloudWatch 警示並設定警示的 Amazon Simple Notification Service (Amazon SNS) 主題。

如需在proof-of-concept(POC) 階段進行其他驗證，建議您進行下列補充測試：
+ 執行效能測試，以確保它們符合您的業務期望。
+ 測試資料庫容錯移轉、復原和還原，以確保您符合 RPO 和 RTO 要求。
+ 列出所有關鍵任務和報告，並在 Amazon RDS 上執行它們，以根據您的服務水準協議 (SLAs) 評估其效能。

## 操作和最佳化 Amazon RDS 資料庫
<a name="operate-optimize"></a>

當資料庫開啟時 AWS，請確定您在監控、提醒、備份和雲端高可用性等領域遵循最佳實務。例如：
+ 設定 CloudWatch 監控，並啟用詳細監控。
+ 使用 [Amazon RDS Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) 和 [Oracle Enterprise Manager (OEM) 管理代理](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Options.OEMAgent.html)程式來監控資料庫。
+ 使用 SNS 主題設定提醒。
+ 使用 設定自動備份[AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html)。您也可以使用 Oracle Data Pump 備份或手動快照。
+ 如需高可用性，請設定 Amazon RDS Multi-AZ 功能。
+ 如果您需要唯讀資料庫，請在相同 或跨 中 AWS 區域 根據您的需求[設定僅供讀取複本](rds-oracle.md#rds-oracle-replicas)。