本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 AWR 報告估計甲骨文資料庫的 Amazon RDS 引擎大小
由阿布舍克韋爾馬(AWS)和愛德華多·瓦倫丁(AWS)創建
環境:生產 | 來源:甲骨文數據庫 | 目標:Amazon RDS 或 Amazon Aurora |
R 型:重新建築 | 工作量:甲骨文 | 技術:資料庫;移轉 |
AWS 服務:Amazon RDS; Amazon Aurora |
Summary
當您將 Oracle 資料庫遷移到 Amazon Relational Database Service 服務 (Amazon RDS) 或 Amazon Aurora 時,計算目標資料庫的 CPU、記憶體和磁碟 I/O 是一項關鍵要求。您可以分析「Oracle 自動工作負載儲存區域 (AWR)」報表,來預估目標資料庫所需的容量。此模式說明如何使用 AWR 報表來估計這些值。
來源 Oracle 資料庫可以位於現場部署或託管在 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上,也可以是適用於 Oracle 資料庫執行個體的 Amazon RDS。目標資料庫可以是任何 Amazon RDS 或 Aurora 資料庫。
備註:如果您的目標資料庫引擎是 Oracle,則容量預估會更精確。對於其他 Amazon RDS 資料庫,引擎大小可能會因資料庫架構的差異而有所不同。
建議您先執行效能測試,然後再移轉 Oracle 資料庫。
先決條件和限制
先決條件
可下載 AWR 報表的「Oracle 資料庫企業版」授權與「Oracle 診斷套件」授權。
產品版本
適用於版本 11g (11.2.0.3.v1 及更新版本) 以及最高至 12.2 和 18c、19 版的所有甲骨文資料庫版本。
此模式不包括 Oracle 工程系統或 Oracle 雲端基礎架構 (OCI)。
架構
源, 技術, 堆棧
下列其中一項:
內部部署 Oracle 資料庫
EC2 執行個體上的甲骨文資料庫
Amazon RDS for Oracle 數據庫實例
目標技術堆疊
任何 Amazon RDS 或 Amazon Aurora 數據庫
目標架構
如需完整遷移程序的相關資訊,請參閱使用 AWS DMS 和 AWS SCT 將甲骨文資料庫遷移至 Aurora PostgreSQL 模式。
自動化和規模
如果您要遷移多個 Oracle 資料庫,並且想要使用其他效能指標,可以按照部落格文章中所述的步驟,根據 Oracle 效能指標大小調整大小大小的 Amazon RDS 執行
工具
「Oracle 自動工作負載儲存區域 (AWR)
」是 Oracle 資料庫內建的儲存區域。它會定期收集並儲存系統活動和工作負載資料,然後由「自動資料庫診斷監督器」(ADDM) 對其進行分析。AWR 會定期 (依預設,每 60 分鐘) 建立系統效能資料的快照,並儲存資訊 (依預設,最多 8 天)。 您可以使用 AWR 檢視和報表來分析此資料。
最佳實務
若要計算目標資料庫的資源需求,您可以使用單一 AWR 報表、多個 AWR 報表或動態 AWR 檢視表。我們建議您在尖峰負載期間使用多個 AWR 報告,以預估處理這些尖峰負載所需的資源。此外,動態檢視還提供更多資料點,協助您更精確地計算資源需求。
您應該只預估計劃移轉之資料庫的 IOPS,而不是其他使用該磁碟的資料庫和處理程序。
若要計算資料庫使用了多少 I/O,請勿使用 AWR 報表之「負載設定檔」區段中的資訊。請改為使用 [I/O 設定檔] 區段 (如果有的話),或跳至「執行處理活動統計資料」段落,查看實體讀取和寫入作業的總值。
估計 CPU 使用率時,建議您使用資料庫測量結果方法而非作業系統 (OS) 統計資料,因為它是以資料庫使用的 CPU 為基礎。(操作系統統計信息還包括其他進程的 CPU 使用率。) 您也應該在 ADDM 報表中檢查 CPU 相關建議,以改善移轉後的效能。
決定正確的執行個體類型時,請考慮特定執行個體大小的 I/O 輸送量限制 — Amazon 彈性區塊存放區 (Amazon EBS) 輸送量和網路輸送量。
在移轉前執行效能測試,以驗證引擎大小。
史诗
任務 | 描述 | 所需技能 |
---|---|---|
啟用 AWR 報表。 | 若要啟用報表,請遵循 Oracle 說明文件 | DBA |
檢查保留期。 | 若要檢查 AWR 報表的保留期間,請使用下列查詢。
| DBA |
產生快照。 | 如果 AWR 快照間隔的精細度不夠,無法擷取尖峰工作負載的尖峰,您可以手動產生 AWR 報告。若要產生手動 AWR 快照,請使用下列查詢。
| DBA |
檢查最近的快照。 | 若要檢查最近的 AWR 快照,請使用下列查詢。
| DBA |
任務 | 描述 | 所需技能 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
選擇一種方法。 | IOPS 是儲存裝置上每秒輸入和輸出操作的標準測量方法,包括讀取和寫入作業。 如果要將現場部署資料庫遷移到 AWS,則需要判斷資料庫使用的尖峰磁碟 I/O。 您可以使用下列方法來估計目標資料庫的磁碟 I/O:
下列步驟說明這四種方法。 | DBA | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
選項 1:使用負載輪廓。 | 下表顯示 AWR 報表之「負載設定檔」段落的範例。 重要事項:如需更準確的資訊,建議您使用選項 2 (I/O 設定檔) 或選項 3 (執行個體活動統計資料),而非負載設定檔。
根據這項資訊,您可以計算 IOP 和輸送量,如下所示: IOPS = 讀取 I/O 請求:+ 寫入 I/O 請求 = 輸送量 = 實體讀取 (區塊) + 實體寫入 (區塊) = 由於 Oracle 中的區塊大小為 8 KB,因此您可以按如下方式計算總輸送量: 總輸送量 (以 MB 為單位) 為 17042.4 * 8 * 1024 警告:請勿使用負載設定檔來估計執行個體大小。它不如執行個體活動統計資料或 I/O 設定檔那麼精確。 | DBA | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
選項 2:使用執行個體活動統計資料。 | 如果您使用的是 12c 之前的 Oracle 資料庫版本,可以使用 AWR 報表的「執行處理活動統計資料」區段來估計 IOPS 和輸送量。下表顯示本節的範例。
根據這項資訊,您可以計算 IOPS 和輸送量的總計,如下所示: 總 IOPS 總數 = 3,610.28 + 757.11 = 4367 總兆比特 = 114,482,426.26 + | DBA | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
選項 3:使用 I/O 設定檔。 | 在 Oracle 資料庫 12c 中,AWR 報表包含「I/O 設定檔」段落,以單一表格顯示所有資訊,並提供更精確的資料庫效能資料。下表顯示本節的範例。
此表格提供下列輸送量和 IOPS 總數值: 輸送量 = 143 MBPS (從第五列開始,標示為「總計」,第二欄) IOPS = 4,367.4(從第一行,標記為「總請求」,第二列) | DBA | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
選項 4:使用 AWR 視觀表。 | 您可以使用 AWR 檢視來查看相同的 IOPS 和輸送量資訊。若要取得此資訊,請使用下列查詢:
| DBA |
任務 | 描述 | 所需技能 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
選擇一種方法。 | 您可以透過三種方式估計目標資料庫所需的 CPU:
如果您要查看使用的核心,我們建議您使用資料庫指標方法而非作業系統統計資料,因為它是以您計劃移轉的資料庫使用的 CPU 為基礎。(操作系統統計信息還包括其他進程的 CPU 使用率。) 您也應該在 ADDM 報表中檢查 CPU 相關建議,以改善移轉後的效能。 您也可以根據 CPU 產生預估需求。如果您使用的是不同的 CPU 世代,則可以依照白皮書中的指示來預估目標資料庫所需的 CPU,以達到最佳工作負載效能的神秘 | DBA | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
選項 1:根據可用核心預估需求。 | 在 AWR 報表中:
您可以使用兩種方式估算可用的核心:
使用 OS 命令估計可用的核心 使用下列指令來計算處理器中的核心數。
使用以下命令來計算處理器中的插槽。
注意:我們不建議使用作業系統命令 (例如 nmon 和 sar) 來擷取 CPU 使用率。這是因為這些計算包括其他處理序的 CPU 使用率,而且可能無法反映資料庫所使用的實際 CPU。 使用 AWR 報表預估可用核心 您也可以從 AWR 報告的第一個區段衍生 CPU 使用率。以下是報告的摘錄。
在此範例中,CPU 計數為 80,表示這些是邏輯 (虛擬) CPU。您也可以看到此組態有兩個插槽,每個插槽上有一個實體處理器 (總共兩個實體處理器),以及每個實體處理器或插槽 40 個核心。 | DBA | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
選項 2:使用作業系統統計資料預估 CPU 使用率。 | 您可以直接在作業系統中 (使用 sar 或其他主機作業系統公用程式) 檢查作業系統 CPU 使用率統計資料,或從 AWR 報告的「作業系統統計資料」段落檢查 IDLE/ (IDLE+BUSY) 值。您可以看到直接從 v$ osstat 消耗的 CPU 的秒數。AWR 和 Statspack 報表也會在「作業系統統計資料」段落中顯示此資料。 如果在同一個方塊上有多個資料庫,它們都具有相同的 v$osstat 值為 BUSY_TIME。
如果系統中沒有其他主要 CPU 消費者,請使用下列公式來計算 CPU 使用率的百分比: 使用率 = 忙碌時間/總時間 忙碌時間 = 要求 = V $ 操作時間 C = 總時間 (忙碌 + 閒置) C = 容量 = V $ 奧斯塔. 繁忙時間 + V $ 閒置時間 使用率 = 忙碌時間/(工作時間 + 閒置時間) = -1,305,569,937/(1,305,569,937 + 4,312,718,839) = 已使用 23% | DBA | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
選項 3:使用資料庫測量結果預估 CPU 使用率。 | 如果系統中有多個資料庫執行,您可以使用報表開頭顯示的資料庫測量結果。
若要取得 CPU 使用率測量結果,請使用下列公式: 資料庫 CPU 使用率 (CPU 可用電源的百分比) = CPU 時間/CPU 數量/經歷時間 其中 CPU 使用率由 CPU 時間描述,代表花在 CPU 上的時間,而不是等待 CPU 的時間。此計算結果如下: = 312,625.40/11,759.64/80 = 正在使用中央處理器的 33% 核心數目 (33%) * 80 = 26.4 個核心 核心總數 = 26.4 * (120%) = 您可以使用這兩個值中的較大值來計算 Amazon RDS 或 Aurora 資料庫執行個體的 CPU 使用率。 附註:在 IBM AIX 上,計算的使用率與作業系統或資料庫中的值不符。這些值在其他作業系統上確實相符。 | DBA |
任務 | 描述 | 所需技能 | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
使用記憶體統計資料預估記憶體需求。 | 您可以使用 AWR 報表來計算來源資料庫的記憶體,並在目標資料庫中比對它。您也應該檢查現有資料庫的效能,並降低記憶體需求以節省成本,或增加需求以提升效能。這需要對 AWR 響應時間和應用程序的服務級別協議(SLA)進行詳細分析。使用 Oracle 系統整體區域 (SGA) 與程式整體區域 (PGA) 使用量的總和,作為 Oracle 的預估記憶體使用率。為 OS 添加額外的 20% 以確定目標內存大小需求。對於 Oracle RAC,請在所有 RAC 節點上使用預估的記憶體使用率總和,並減少總記憶體,因為它儲存在一般區塊上。
使用中的執行個體記憶體總計 = SGA + PGA = 220 GB + 45 GB = 265 GB 新增 20% 的緩衝區: 執行個體記憶體總計 = 1.2 * 265 GB = 318 GB 由於 SGA 和 PGA 佔主機記憶體的 70%,因此總記憶體需求為: 主機記憶體總計 = 318/0.7 = 464 GB 附註:移轉至 Amazon RDS for Oracle 文時,會根據預先定義的公式預先計算 PGA 和 SGA。確保預先計算的值接近您的估計值。 | DBA |
任務 | 描述 | 所需技能 |
---|---|---|
根據磁碟 I/O、CPU 和記憶體預估值判斷資料庫執行個體類型。 | 根據先前步驟中的預估值,目標 Amazon RDS 或 Aurora 資料庫的容量應為:
在目標 Amazon RDS 或 Aurora 資料庫中,您可以將這些值對應至資料庫 .r5.16xlarge 執行個體類型,其容量為 32 個核心、512 GB 的記憶體和 13,600 Mbps 的輸送量。 如需詳細資訊,請參閱 AWS 部落格文章根據 Oracle 效能指標大小適當大小的 Amazon RDS 執行個體 | DBA |
相關資源
Aurora 資料庫執行個體類別 (Amazon Aurora 文件
Amazon RDS 資料庫執行個體儲存 (Amazon RDS 文件)
AWS 礦工工具
(GitHub 儲存庫)