同質資料庫遷移考量事項 - AWS 方案指引

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

同質資料庫遷移考量事項

本節討論同質遷移的關鍵最佳實務。當您將資料庫從內部部署的 Exadata 遷移到 Amazon RDS for Oracle 或 Amazon EC2 上的 Oracle 時,請考慮以下小節中討論的準則。

加密

資料安全是 的首要任務 AWS。 AWS 已實作嚴格的合約、技術和組織措施,以保護客戶的機密性、完整性和可用性。對於資料庫而言,加密至關重要,因為它可保護私有資訊和敏感資料。Oracle on Amazon EC2 和 Amazon RDS for Oracle 支援兩種靜態資料的加密方法:

這兩個選項都會加密 Oracle 資料庫和所有資料庫備份中的使用者資料。對於從應用程式發出的 DML 陳述式,加密也是透明的。

對於傳輸中的資料,Oracle on Amazon EC2 和 Amazon RDS for Oracle 支援 Oracle 原生網路加密 (NNE)。如需 NNE 支援的詳細資訊,請參閱 Amazon RDS 文件。

資料分割

使用 Oracle Partitioning 時,資料庫中的單一邏輯物件,例如資料表或索引,會分為較小的實體資料庫物件,有助於改善可管理性、效能和可用性。Oracle 分割需要 Oracle 授權。

如果您有大型資料庫工作負載,請考慮分割資料表。分割區剔除可讓 Oracle 資料庫最佳化工具分析 SQL 陳述式中的 FROMWHERE子句,以在建置分割區存取清單時消除不需要的分割區。Oracle Database 只會在與 SQL 陳述式相關的分割區上執行操作,這通常會改善效能。

分割也有助於可用性。如果分割區離線且 SQL 陳述式不需要離線分割區才能完成操作,SQL 陳述式將會成功。不過,如果在尚未分割的 Oracle 資料庫資料表內遺失資料區塊,則在還原操作完成之前,整個資料表都將無法使用。

資料壓縮

對於資料壓縮,Oracle 同時提供 HCC 和進階壓縮。進階壓縮透過減少關聯式資料 (資料表)、非結構化資料 (檔案)、索引、Data Guard 重做資料、網路資料、RMAN 備份和其他資料類型的資料庫儲存足跡,來改善效能並降低儲存成本。進階壓縮也可以改善資料庫基礎設施元件的效能,包括記憶體和網路頻寬。

根據 Oracle 文件,進階壓縮的平均壓縮率至少為 2 倍。因此,100 GiB 的資料通常可以位於 50 GiB 的儲存空間中。當您將 Oracle 資料庫遷移至 時 AWS,您可以將 inAmazon RDS for Oracle 和 Amazon EC2 上的 Oracle 中的進階壓縮與 OLTP 和資料倉儲資料庫搭配使用。您可以考慮將進階壓縮與 Oracle 資料庫搭配使用 AWS ,以提高效能並降低 Amazon EBS 儲存成本,即使您未將其與 Exadata 搭配使用。進階壓縮需要 Oracle 授權。

ILM 策略

資訊生命週期管理 (ILM) 提供程序、政策和元件,協助根據資料庫的使用頻率來管理資料庫中的資訊。當您從 Exadata 遷移至 Oracle on 時 AWS,您應該判斷是否可以在遷移至 Oracle 之前或之後清除任何資料 AWS。在 上 AWS,您可以套用規則,僅在特定期間內維護資料。您可以實作 Oracle Partitioning 和 Oracle Advanced Compression 來設定資料生命週期政策。這可以改善效能,同時僅維護支援業務所需的資料。

例如,假設您的資料表會耗用多個 tebibyte 的未壓縮資料。您目前有 12 年的資料,而且必須保留資料 14 年。大約 90% 的所有查詢都會存取不到兩年的資料。您通常會比較每月、每季和每年的資料用量。資料無法在 30 個月後更新,但有時您必須存取長達 12 年的歷史資料。在這種情況下,您可以考慮下列 ILM 政策:

  • 實作進階壓縮。利用 Oracle Heat Map 和具有進階壓縮的自動資料最佳化 (ADO)。

  • 在日期資料欄上設定間隔分割。

  • 使用每月捨棄超過 14 年的分割區的函數。

  • 使用唯讀資料表空間來存放超過 30 個月的資料。唯讀資料表空間的主要目的是消除對資料庫大型靜態部分 (當您在 Amazon EC2 上使用 Oracle RMAN 搭配 Oracle 時) 執行備份和復原的需求。唯讀資料表空間也提供保護歷史資料的方式,讓使用者無法修改。將資料表空間設為唯讀可防止更新資料表空間中的所有資料表,無論使用者的更新權限層級為何。

使用者通常會將作用中的資料、不常存取的資料,以及封存資料存放在單一 Oracle 資料庫中。在 Oracle 資料庫遷移至 期間 AWS,您可以遷移不常存取的資料、歷史稽核資料,並將資料直接存檔到 Amazon S3Amazon Glacier。這可協助您滿足長期資料保留的控管和合規需求,而不會影響資料庫效能。隨著關聯式資料庫中的資料存留期,它可以封存到 Amazon S3Amazon Glacier。您可以使用 Amazon AthenaAmazon Glacier Select 輕鬆查詢封存的資料。

OEM 整合

當您將 Oracle 工作負載遷移至 時 AWS,建議您實作 Oracle Enterprise Manager (OEM) 雲端控制 AWS。OEM 是 Oracle 的管理平台,提供單一介面來管理 Oracle 環境。

Amazon EC2 上的 Oracle 和 Amazon RDS for Oracle 可以是 OEM 環境的目標。Oracle on Amazon EC2 遵循與 Oracle on 內部部署相同的程序,以與 OEM 整合。若要在 Amazon RDS for Oracle 上啟用 OEM:

  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/rds/:// 開啟 Amazon RDS 主控台。

  2. 在導覽窗格中,選擇選項群組

  3. OEM_AGENT選項新增至新的或現有的選項群組。

  4. 新增 OEM 組態資訊,包括 OEM 管理伺服器主機名稱、連接埠和 OEM 代理程式註冊密碼。

Amazon RDS for Oracle 和 Oracle on Amazon EC2 也可以是內部部署中執行的 OEM 環境的目標。不過,這需要透過防火牆存取所有 OEM 連接埠。

Amazon CloudWatch 整合

Amazon CloudWatch 會以日誌、指標和事件的形式收集監控和操作資料。它使用自動化儀表板來視覺化資料,提供在現場部署 AWS 和現場部署上執行 AWS 的資源、應用程式和服務統一檢視。在 Amazon EC2 和 Amazon RDS for Oracle 上託管的 Oracle 資料庫可以使用 CloudWatch。

CloudWatch 和 Amazon Simple Notification Service (Amazon SNS) 已整合,因此您可以收集、檢視和分析每個作用中 Amazon SNS 通知的指標。例如,如果發生指定的動作,例如 Oracle 資料庫警示日誌中的特定 Oracle 錯誤訊息,您可以設定警示來傳送電子郵件通知或 SMS。

若要在 Amazon EC2 上使用 CloudWatch 和 Amazon SNS 搭配 Oracle,您必須安裝 CloudWatch 代理程式,將 Oracle 警示日誌、稽核日誌、追蹤日誌、OEM 日誌和接聽程式日誌推送至 CloudWatch。 Amazon SNS 如果您部署 Amazon RDS for Oracle,則必須修改 Oracle 執行個體,才能將這些日誌傳送至 CloudWatch。如需 CloudWatch 整合的詳細資訊,請參閱 Amazon SNS 文件中的使用 CloudWatch 監控 Amazon SNS topis。 Amazon SNS

Amazon RDS for Oracle 也有數十個事件的內建 CloudWatch 警示,包括 CPU 使用率、資料庫連線數、可用記憶體、可用儲存空間、儲存 IOPS、磁碟輸送量和複寫延遲。

從內部部署 Exadata 遷移以 AWS 繼續使用 OEM 的大多數使用者,也在 AWS 上整合 CloudWatch 與其 Oracle 資料庫。

資料庫最佳化工具統計資料

Oracle 資料庫最佳化工具統計資料提供有關資料庫及其資料表、資料欄、索引和系統的資訊。最佳化工具會使用此資訊來預估從資料表、分割區或索引擷取查詢的資料列和位元組數目、預估存取成本,以及挑選成本最低的 SQL 執行計劃。

如果您透過 Oracle RMAN 將 Exadata 內部部署資料庫還原至 Amazon EC2,Oracle 會自動提供反映 Exadata 環境的統計資料。一旦您將 Exadata 資料庫還原至 Amazon EC2 或在 Amazon RDS for Oracle 中完成初始載入,最佳實務是盡快收集統計資料。這可以透過執行 Oracle DBMS_STATS 套件來完成。

AWR 設定

Oracle 自動工作負載儲存庫 (AWR) 會存放 Oracle 資料庫的效能相關統計資料。根據預設,Oracle Database 每小時產生一次快照,並保留快照 8 天。您可以手動建立或捨棄快照,以及修改快照設定。

對於生產 Oracle 資料庫,您應該將 AWR 保留期增加到 60 或 90 天,並將 AWR 間隔縮短到 15 或 30 分鐘。這些設定支援month-over-month比較,並在檢視 AWR 資料時提供更精細的 。這些變更會耗用相對較小的 (以 GB 為單位) 資料庫空間,並提供其他歷史記錄的優點。若要將 AWR 保留期間設定為 60 天,並將 AWR 間隔設定為 15 分鐘,請執行下列命令 (參數值以分鐘為單位):

BEGIN DBMS_WORKLOAD_REPOSITORY.modify_snapshot_settings (interval => 15, retention => 86400 ); END; /

如果您使用 Oracle RMAN 或 Oracle Data Guard 將 Exadata 內部部署資料庫遷移至 Amazon EC2 上的 Oracle,您應該捨棄在 Exadata 上執行資料庫時擷取的 AWR 快照。若要這樣做,請使用 上的DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE程序 AWS。

Oracle RAC 考量事項

根據預設,Exadata 使用 Oracle Real Application Clusters (RAC),可讓您跨多個伺服器執行單一 Oracle 資料庫,以最大化可用性並啟用水平可擴展性。Oracle RAC 使用共用儲存。最小 Exadata 產品包含兩個使用 Oracle RAC 設定的節點。

如果您的 RPO 需求為零且 RTO 需求為兩分鐘或更短,您可以使用異地同步備份實作 Amazon RDS for Oracle。此組態提供 99.95% 的每月運作時間承諾,相當於或優於業界任何受管 Oracle 雲端資料庫,包括使用 Oracle RAC 的受管 Oracle 資料庫。

此外,Oracle on Amazon EC2 可讓您使用 Oracle Maximum Availability Architecture (MAA) 中的許多元件來實作高可用性資料庫。這些元件包括但不限於 Active Data Guard、RMAN、Flashback Technologies、以版本為基礎的重新定義和 GoldenGate。

實作 Oracle RAC 時也有各種替代方案 AWS。若要進一步了解 RAC 選項 AWS,建議您聯絡您的 AWS 客戶團隊。

同質遷移的其他最佳實務

開發人員在實作 Exadata 時,通常會忽略 SQL 調校技術和最佳實務。Exadata 會隱藏許多設計問題,因此 SQL 陳述式可能會部署到生產環境中,而不評估其執行計畫或資源耗用,因為它們會在可接受的經過時間內完成。當您在 上將 Exadata 內部部署資料庫遷移至 Oracle 時,請遵循這些其他實務 AWS。

  • 套用最新的 Oracle 版本更新 (RU) 或版本更新修訂 (RUR)。

  • 請確定COMPATIBLE初始化參數只包含三個層級 (例如 19.0.0)。如果升級在您遷移至 後發生 AWS,請確定在升級程序期間修改此參數。

  • 考慮快取序號以將 I/O 降至最低。 預設值為 20。如果序號的快取不足,可能會發生爭用,這將顯示為 DML 的服務時間增加。

  • 如果您使用序列,請針對來源資料庫 (內部部署的 Exadata) 驗證序列值,以避免序列不一致。

  • 如果未在應用程式層上實作連線集區,或應用程式層的數量導致非常大量的資料庫連線,請考慮實作 Oracle Database Resident Connection Pooling (DRCP)。此功能可有效率地處理資料庫伺服器上的記憶體和運算資源。

  • 考慮使用 HugePages。Oracle 建議您使用適用於 Linux 的標準 HugePages。啟用 HugePages 可讓作業系統支援大於預設值 (通常為 4 KB) 的記憶體頁面。使用非常大的頁面大小可以減少存取頁面資料表項目所需的系統資源量,以改善系統效能。

  • 如果 上的 Oracle 資料庫 AWS 有資料庫連結,請確認 OPEN_LINKSOPEN_LINKS_PER_INSTANCE 初始化參數未設定為預設值 (4)。如果此值太低,具有資料庫連結的 SQL 陳述式會在達到最大值時開始排入佇列,這會對效能造成負面影響。

  • 初始資料載入可能無法透過網路傳輸。例如,理論上,透過 1 Gbps 連結傳輸 100 TiB 至少需要 9 天,不會中斷。更好的方法是使用 AWS Snow Family 裝置將資料庫遷移至 AWS。

  • 移除任何 Exadata 特定的隱藏參數 (請參閱 Oracle MOS 備註 1274318.1)。不應啟用這些隱藏的 Exadata 初始化參數 AWS。它們可能會導致不穩定、效能問題、損毀和當機。

  • 將資料遷移至 Oracle 後,請嘗試解決所有非SYSSYSTEM無效的物件 AWS。

  • 請考慮在 Oracle System Global Area (SGA) 中快取靜態、經常存取的資料表。

  • 選擇具有較大 Oracle SGA 組態的記憶體最佳化執行個體,以減輕額外 I/O 開啟的挑戰 AWS。您可以在目標執行個體的負載測試期間使用 Oracle SGA 諮詢報告來尋找最佳的 Oracle SGA 組態。

  • 在處理許多完整資料表掃描的資料表上建立索引。V$SEGMENT_STATISTICS 檢視會列出候選客群。

  • 識別最需要大量資源的查詢,並將其最佳化,以實現更好的執行計劃。Oracle SQL Tuning Advisor 根據 Oracle Tuning Pack 授權,對於自動 SQL 調校非常有用。在某些情況下,您可能需要重寫查詢或將複雜的查詢分解為較小的區塊。

  • 請考慮實作快取解決方案,例如 Amazon ElastiCacheAmazon RDS for Oracle 僅供讀取複本,例如 Oracle Active Data Guard,以提供唯讀工作負載。

  • 培訓您的開發人員使用查詢最佳化技術,並建置標準操作程序,在查詢部署到生產環境之前對其進行評估。

  • 請確定 中的資料庫物件計數與 Exadata 內部部署資料庫中 AWS 的物件計數相同。驗證資料表、索引、程序、觸發條件、函數、套件、限制條件和其他物件。

  • 如果可能,請考慮修改應用程式。(在某些情況下,應用程式無法修改為封裝 ISV 應用程式。) 避免不必要的呼叫,並嘗試降低必要呼叫的頻率。嘗試將 SQL 陳述式擷取的資料磁碟區降至最低。請確定遞交頻率適用於商業邏輯,但不會過多。嘗試改善應用程式層級快取的使用。

  • 資料庫應位於 上的私有虛擬私有雲端 (VPC) 中 AWS。將傳入和傳出流量的網路存取限制為最低權限模型。安全群組來源應參考 AWS 帳戶的安全群組、字首清單或一組特定的 IP 地址 (使用 x.x.x.x/32 格式)。安全群組來源不應使用 CIDR,且安全群組不應可從公有網際網路 (0.0.0.0/0) 存取。