AWS 使用 將 Oracle PeopleSoft 資料庫遷移至 AWS DMS - AWS 方案指引

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

AWS 使用 將 Oracle PeopleSoft 資料庫遷移至 AWS DMS

由 sampath kathirvel 建立 (AWS)

環境:生產

來源:Oracle PeopleSoft

目標:Amazon RDS for Oracle

R 類型:Replatform

工作負載:Oracle

技術:遷移;資料庫

AWS 服務:AWSDMS;Amazon RDS

Summary

Oracle PeopleSoft 是適用於整個企業程序的企業資源規劃 (ERP) 解決方案。 PeopleSoft 具有三層架構:用戶端、應用程式和資料庫。 PeopleSoft 可以在 Amazon Relational Database Service (Amazon RDS) 上執行。

如果您將 Oracle 資料庫遷移至 Amazon RDS,Amazon Web Services (AWS) 可以處理備份任務和高可用性,讓您專注於維護 PeopleSoft 應用程式及其功能。如需在遷移過程中要考慮之關鍵因素的完整清單,請參閱 AWS 規範指南中的 Oracle 資料庫遷移策略

此模式提供將內部部署 Oracle 資料庫遷移至 Amazon RDS for Oracle 的解決方案,使用 Oracle Data Pump 搭配 AWS Database Migration Service (AWSDMS) 及其變更資料擷取 (CDC) 功能。

遷移 Oracle 等關鍵ERP應用程式時 PeopleSoft,將停機時間降到最低是關鍵。AWS DMS 支援從來源資料庫到目標資料庫的全負載和連續複寫,將停機時間降到最低。AWS DMS 還提供即時監控和記錄遷移,這可協助您識別和解決可能導致停機的任何問題。

使用 複寫變更時DMS,您必須指定時間或系統變更編號 AWS (SCN) 作為AWSDMS從資料庫日誌讀取變更的起點。請務必在指定時間內在伺服器上存取這些日誌,以確保 AWS DMS 可存取這些變更。

先決條件和限制

先決條件

  • 在您 AWS Cloud 環境中佈建 Amazon RDS for Oracle 資料庫作為目標資料庫。

  • 在 內部部署或在 AWS 雲端中的 Amazon Elastic Compute Cloud (Amazon EC2) 上執行的 Oracle PeopleSoft 資料庫。

    備註:此模式旨在從內部部署遷移至 AWS,但已透過在 Amazon EC2執行個體上使用 Oracle 資料庫進行測試。若要從內部部署遷移,您需要設定適當的網路連線。

  • 結構描述詳細資訊。將 Oracle PeopleSoft 應用程式遷移至 Amazon RDS for Oracle 時,必須識別要遷移的 Oracle 資料庫結構描述 (例如 SYSADM)。在開始遷移程序之前,請收集下列有關結構描述的詳細資訊:

    • 大小

    • 每個物件類型的物件數量

    • 無效物件的數量。

    此資訊將有助於遷移程序。

限制

  • 此案例僅透過 PeopleSoft DEMO資料庫進行測試。它尚未使用大型資料集進行測試。

架構

下圖顯示執行 Oracle 資料庫作為來源資料庫的執行個體,以及執行 Amazon RDS for Oracle 資料庫作為目標資料庫的執行個體。資料會使用 Oracle Data Pump 從來源 Oracle 資料庫匯出和匯入至目標 Amazon RDS for Oracle 資料庫,並使用 複寫以進行CDC變更AWSDMS。

從內部部署資料庫執行個體到 Amazon 的五個步驟程序RDS。
  1. 初始步驟涉及使用 Oracle Data Pump 從來源資料庫中擷取資料,然後傳送至 Amazon RDS for Oracle 資料庫目標。

  2. 資料會從來源資料庫傳送至 AWS 中的來源端點DMS。

  3. 從來源端點,資料會傳送至複AWSDMS寫執行個體,並在其中執行複寫任務。

  4. 複寫任務完成後,資料會傳送至 AWS 中的目標端點DMS。

  5. 從目標端點,資料會傳送至 Amazon RDS for Oracle 資料庫執行個體。

工具

AWS 服務

其他服務

  • Oracle Data Pump 可協助您以高速將資料和中繼資料從一個資料庫移至另一個資料庫。

最佳實務

遷移中 LOBs

如果您的來源資料庫包含需要遷移至目標資料庫的大型二進位物件 (LOBs), AWSDMS會提供下列選項:

  • 完整LOB模式 – LOBs 從來源將所有 AWSDMS遷移到目標資料庫,無論其大小為何。雖然遷移速度較慢,但優點是資料不會被截斷。為了獲得更好的效能,您可以在新的複寫執行個體上建立單獨的任務,以遷移LOBs大於數 MB 的資料表。

  • 有限LOB模式 – 您可以指定LOB資料欄資料的大小上限,AWSDMS允許預先配置資源並LOBs大量套用 。如果LOB資料欄的大小超過任務中指定的大小, AWS DMS 會截斷資料並將警告傳送至AWSDMS日誌檔案。如果您的LOB資料大小在有限LOB範圍內,您可以使用有限LOB模式來改善效能。

  • 內嵌LOB模式 – 您可以透過複寫小型和大型 ,LOBs在不截斷資料或降低任務效能的情況下進行遷移LOBs。首先,指定 InlineLobMaxSize 參數的值,只有在完整LOB模式設定為 true 時才能使用。AWS DMS 任務會傳輸小型LOBs內嵌,這更有效率。然後, LOBs 會透過從來源資料表執行查詢來AWSDMS遷移大型 。不過,內嵌LOB模式只會在完整載入階段運作。

產生序列值

請記住,使用 AWS 進行變更資料擷取程序期間DMS,不會從來源資料庫複寫增量序號。為了避免序列值的差異,您必須從來源為所有序列產生最新的序列值,並將其套用至目標 Amazon RDS for Oracle 資料庫。

憑證管理

為了協助保護您的AWS資源,我們建議您遵循 AWS Identity and Access Management () 的最佳實務IAM。

史詩

任務描述所需的技能

下載 範本。

下載 DMS_instance.yaml AWS CloudFormation 範本以佈建AWSDMS複寫執行個體及其來源和目標端點。

雲端管理員、 DBA

開始建立堆疊。

  1. 在AWS管理主控台上,選擇 CloudFormation

  2. 選擇建立堆疊

  3. 對於 Specify template (指定範本),選擇 Upload a template file (上傳範本檔案)

  4. 選擇 選擇檔案

  5. 選擇 DMS_instance.yaml 檔案。

  6. 選擇 Next (下一步)

雲端管理員、 DBA

指定 參數。

  1. 針對堆疊名稱 ,輸入您的堆疊名稱。

  2. AWSDMS執行個體參數 下,輸入下列參數:

    • DMSInstanceType – 根據您的業務需求,選擇AWSDMS複寫執行個體所需的執行個體。

    • DMSStorageSize – 根據您的遷移大小,輸入AWSDMS執行個體的儲存體大小。

  3. 來源 Oracle 資料庫組態 下,輸入下列參數:

    • SourceOracleEndpointID – 來源 Oracle 資料庫伺服器名稱

    • SourceOracleDatabaseName – 來源資料庫服務名稱或工作階段 ID (SID),如適用

    • SourceOracleUserName – 來源資料庫使用者名稱 (預設為 系統)

    • SourceOracleDBPassword – 來源資料庫使用者名稱的密碼

    • SourceOracleDBPort – 來源資料庫連接埠

  4. Oracle 資料庫組態RDS的目標 下,輸入下列參數:

    • TargetRDSOracleEndpointID – 目標RDS資料庫端點

    • TargetRDSOracleDatabaseName – 目標RDS資料庫名稱

    • TargetRSOracleUserName – 目標RDS使用者名稱

    • TargetRDSOracleDBPassword – 目標RDS密碼

    • TargetOracleDBPort – 目標RDS資料庫連接埠

  5. VPC、子網路和安全群組組態 下,輸入下列參數:

    • VPCID – 複寫執行個體VPC的

    • VPCSecurityGroupId – 複寫執行個體VPC的安全群組

    • DMSSubnet1 – 可用區域 1 的子網路

    • DMSSubnet2 – 可用區域 2 的子網路

  6. 選擇 Next (下一步)

雲端管理員、 DBA

建立堆疊。

  1. 設定堆疊選項頁面上,針對標籤 輸入任何選用值。

  2. 選擇 Next (下一步)

  3. 檢閱頁面上,驗證詳細資訊,然後選擇提交

佈建應在大約 5–10 分鐘內完成。當AWS CloudFormation 堆疊頁面顯示 CREATE_COMPLETE 時即完成。

雲端管理員、 DBA

設定端點。

  1. 從AWS管理主控台中,選擇 Database Migration Services

  2. 在資源管理下,選擇複寫執行個體

  3. 在資源管理下,選擇端點

雲端管理員、 DBA

測試連線。

在來源和目標端點顯示狀態為作用中之後,測試連線。針對每個端點 (來源和目標) 選擇執行測試,以確保狀態顯示為成功。

雲端管理員、 DBA
任務描述所需的技能

產生 SCN。

當來源資料庫處於作用中狀態且應用程式正在使用中時,請使用 Oracle Data Pump 啟動資料匯出。您必須先從來源資料庫產生系統變更編號 (SCN),以便在使用 Oracle Data Pump 匯出期間達到資料一致性,以及作為 AWS 中變更資料擷取的起點DMS。

若要SCN從來源資料庫產生目前的 ,請輸入下列SQL陳述式。

SQL> select name from v$database; SQL> select name from v$database; NAME --------- PSFTDMO SQL> SELECT current_scn FROM v$database; CURRENT_SCN ----------- 23792008

儲存產生的 SCN,以便在匯出資料和建立AWSDMS複寫任務時使用。

DBA

建立 參數檔案。

若要建立參數檔案以匯出結構描述,您可以使用下列程式碼。

$ cat exp_datapmp.par userid=system/******* directory=DATA_PUMP_DIR logfile=export_dms_sample_user.log dumpfile=export_dms_sample_data_%U.dmp schemas=SYSADM flashback_scn=23792008

注意:您也可以根據需求DATA_PUMP_DIR,使用以下命令來定義自己的命令。

SQL> CREATE OR REPLACE DIRECTORY DATA_PUMP_DIR AS '/opt/oracle/product/19c/dbhome_1/dmsdump/'; Directory created. SQL> GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO system; Grant succeeded. SQL> SQL> SELECT owner, directory_name, directory_path FROM dba_directories WHERE directory_name='DATA_PUMP_DIR'; OWNER DIRECTORY_NAME DIRECTORY_PATH ------------------------------------------------------------------------------------------------------------------ SYS DATA_PUMP_DIR /opt/oracle/product/19c/dbhome_1/dmsdump/
DBA

匯出結構描述。

若要執行匯出,請使用 expdp 公用程式。

$ expdp parfile=exp_datapmp.par ....................... Transferring the dump file with DBMS_FILE_TRANSFER to Target: . . exported "SYSADM"."PS_XML_TEMPLT_LNG" 6.320 KB 0 rows . . exported "SYSADM"."PS_XML_TEMPLT_LNK" 6.328 KB 0 rows . . exported "SYSADM"."PS_XML_XLATDEF_LNG" 6.320 KB 0 rows . . exported "SYSADM"."PS_XML_XLATITM_LNG" 7.171 KB 0 rows . . exported "SYSADM"."PS_XPQRYRUNCNTL" 7.601 KB 0 rows . . exported "SYSADM"."PS_XPQRYRUNPARM" 7.210 KB 0 rows . . exported "SYSADM"."PS_YE_AMOUNTS" 9.351 KB 0 rows . . exported "SYSADM"."PS_YE_DATA" 16.58 KB 0 rows . . exported "SYSADM"."PS_YE_EE" 6.75 KB 0 rows . . exported "SYSADM"."PS_YE_W2CP_AMOUNTS" 9.414 KB 0 rows . . exported "SYSADM"."PS_YE_W2CP_DATA" 20.94 KB 0 rows . . exported "SYSADM"."PS_YE_W2C_AMOUNTS" 10.27 KB 0 rows . . exported "SYSADM"."PS_YE_W2C_DATA" 20.95 KB 0 rows . . exported "SYSADM"."PS_ZBD_JOBCODE_TBL" 14.60 KB 0 rows . . exported "SYSADM"."PTGRANTTBL" 5.468 KB 0 rows Master table "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded ** Dump file set for SYSTEM.SYS_EXPORT_SCHEMA_01 is: /opt/oracle/product/19c/dbhome_1/dmsdump/export_dms_sample_data_01.dmp Job "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully completed at Mon Dec 19 20:13:57 2022 elapsed 0 00:38:22
DBA
任務描述所需的技能

將傾印檔案傳輸至目標執行個體。

若要使用 傳輸檔案DBMS_FILE_TRANSFER,您需要從來源資料庫建立資料庫連結至 Amazon RDS for Oracle 執行個體。建立連結後,您可以使用 公用程式,將資料幫浦檔案直接傳輸至RDS執行個體。

或者,您可以將 Data Pump 檔案傳輸至 Amazon Simple Storage Service (Amazon S3),然後將其匯入 Amazon RDS for Oracle 執行個體。如需此選項的詳細資訊,請參閱其他資訊一節。

若要在目標資料庫執行個體建立ORARDSDB連線至 Amazon RDS主要使用者的資料庫連結,請在來源資料庫上執行下列命令。

$sqlplus / as sysdba $ SQL> create database link orardsdb connect to admin identified by "*****" using '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = testpsft.*******.us-west-2.rds.amazonaws.com)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))'; Database link created.
DBA

測試資料庫連結。

測試資料庫連結,以確保您可以使用 sqlplus 連線到 Amazon RDS for Oracle 目標資料庫。

SQL> SQL> select name from v$database@orardsdb; NAME --------- ORCL SQL>
DBA

將傾印檔案傳輸至目標資料庫。

若要將傾印檔案複製到 Amazon RDS for Oracle 資料庫,您可以使用預設DATA_PUMP_DIR目錄,也可以使用下列程式碼建立自己的目錄。

exec rdsadmin.rdsadmin_util.create_directory(p_directory_name => ‘TARGET_PUMP_DIR’);

下列指令碼會使用名為 的資料庫連結,將名為 的傾印檔案export_dms_sample_data_01.dmp從來源執行個體複製到目標 Amazon RDS for Oracle 資料庫orardsdb

$ sqlplus / as sysdba SQL> BEGIN DBMS_FILE_TRANSFER.PUT_FILE( source_directory_object => 'DATA_PUMP_DIR', source_file_name => 'export_dms_sample_data_01.dmp', destination_directory_object => 'TARGET_PUMP_DIR’', destination_file_name => 'export_dms_sample_data_01.dmp', destination_database => 'orardsdb' ); END; / PL/SQL procedure successfully completed.
DBA

列出目標資料庫中的傾印檔案。

PL/SQL 程序完成後,您可以使用下列程式碼,在 Amazon RDS for Oracle 資料庫中列出資料傾印檔案。

SQL> select * from table (rdsadmin.rds_file_util.listdir(p_directory => ‘TARGET_PUMP_DIR’));
DBA

在目標資料庫上啟動匯入。

開始匯入程序之前,請使用資料傾印檔案在目標 Amazon RDS for Oracle 資料庫上設定角色、結構描述和資料表空間。

若要執行匯入,請使用 Amazon RDS主要使用者帳戶存取目標資料庫,並使用 tnsnames.ora 檔案中的連線字串名稱,其中包含 Amazon RDS for Oracle 資料庫 tns-entry。如有必要,您可以包含重新映射選項,以將資料傾印檔案匯入不同的資料表空間或不同的結構描述名稱。

若要開始匯入,請使用下列程式碼。

impdp admin@orardsdb directory=TARGET_PUMP_DIR logfile=import.log dumpfile=export_dms_sample_data_01.dmp

若要確保成功匯入,請檢查匯入日誌檔案是否有任何錯誤,並檢閱物件計數、資料列計數和無效物件等詳細資訊。如果有任何無效的物件,請重新編譯。此外,比較來源和目標資料庫物件,以確認它們相符。

DBA
任務描述所需的技能

建立複寫任務。

使用下列步驟建立AWSDMS複寫任務:

  1. 在AWSDMS主控台的轉換和遷移 下,選擇資料庫遷移任務

  2. 任務組態 下,針對任務識別符 ,輸入您的任務識別符。

  3. 針對複寫執行個體 ,選擇您建立的DMS複寫執行個體。

  4. 針對來源資料庫端點 ,選擇您的來源端點。

  5. 針對目標資料庫端點 ,選擇您的目標 Amazon RDS for Oracle 資料庫。

  6. 對於遷移類型 ,選擇僅複寫資料變更 。如果您收到需要開啟補充日誌記錄的訊息,請遵循其他資訊區段中的指示。

  7. 任務設定 下,選取指定日誌序號

  8. 對於系統變更編號 ,輸入SCN您從來源 Oracle 資料庫產生的 Oracle 資料庫。

  9. 選擇啟用驗證

  10. 選擇啟用 CloudWatch 日誌

    透過啟用此功能,您可以驗證資料和 Amazon CloudWatch 日誌來檢閱AWSDMS複寫執行個體日誌。

  11. 選取規則 下,完成下列操作:

    • 針對結構描述 ,選擇輸入結構描述

    • 針對結構描述名稱 ,輸入 SYSADM

    • 對於資料表名稱 ,輸入 %

    • 針對動作 ,選擇包含

  12. 轉換規則 下,完成下列操作:

    • 針對目標 ,選擇資料表

    • 針對結構描述名稱 ,選擇輸入結構描述

    • 針對結構描述名稱 ,輸入 SYSADM。

    • 針對動作 ,選擇重新命名為

  13. 選擇 Create task (建立任務)

建立任務之後,它會從SCN您在CDC啟動模式下提供的 遷移CDC到 Amazon RDS for Oracle 資料庫執行個體。您也可以檢閱 CloudWatch 日誌來驗證 。

雲端管理員、 DBA
任務描述所需的技能

驗證資料傳輸。

AWS DMS 任務啟動後,您可以檢查任務頁面上的資料表統計資料索引標籤,以查看對資料所做的變更。

您可以在資料庫遷移任務頁面上監控主控台中正在進行複寫的狀態。

如需詳細資訊,請參閱AWSDMS資料驗證。

雲端管理員、 DBA
任務描述所需的技能

停止複寫。

停止複寫程序並停止來源應用程式服務。

雲端管理員、 DBA

啟動 PeopleSoft 中間層。

在 中啟動目標 PeopleSoft 中層應用程式AWS,並將其導向至最近遷移的 Amazon RDS for Oracle 資料庫。

當您存取應用程式時,您應該會注意到所有應用程式連線現在都已與 Amazon RDS for Oracle 資料庫建立。

DBA, PeopleSoft 管理員

關閉來源資料庫。

確認不再有來源資料庫的連線後,即可將其關閉。

DBA

相關資源

其他資訊

使用 Amazon S3 傳輸檔案

若要將檔案傳輸至 Amazon S3,您可以使用 AWSCLI或 Amazon S3 主控台。將檔案傳輸至 Amazon S3 之後,您可以使用 Amazon RDS for Oracle 執行個體從 Amazon S3 匯入資料幫浦檔案。

如果您選擇使用 Amazon S3 整合作為替代方法傳輸傾印檔案,請執行下列步驟:

  1. 建立 S3 儲存貯體。

  2. 使用 Oracle Data Pump 從來源資料庫匯出資料。

  3. 將 Data Pump 檔案上傳至 S3 儲存貯體。

  4. 將 Data Pump 檔案從 S3 儲存貯體下載至目標 Amazon RDS for Oracle 資料庫。

  5. 使用 Data Pump 檔案執行匯入。

注意:若要在 S3 和RDS執行個體之間傳輸大型資料檔案,建議使用 Amazon S3 Transfer Acceleration 功能。

啟用補充記錄

如果您收到警告訊息,以啟用來源資料庫中的補充記錄以進行持續複寫,請使用下列步驟。

SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS; SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS; SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS; SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS; SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;