Customization > WBM 與 Windchill+ > WBM 工作流程與階段
WBM 工作流程與階段
本主題說明 Windchill Bulk Migrator (WBM) 工作流程與各種 WBM 階段。
WBM 工作流程
下列工作流程圖說明 WBM 移轉的執行:
內部部署暫置資料庫
資料移轉通常是反覆流程。第一個階段通常涉及從來源系統擷取檔案與中繼資料。欲建構移轉中繼資料,需要暫置資料庫。為了避免多次資料轉換,假設會使用內部部署暫置資料庫。如需詳細資訊,請參閱 https://support.ptc.com
* 
根據 Windchill 版本需求,資料庫必須是 Oracle。
資料庫結構必須符合 Windchill WBM 暫置資料庫需求。
建立 Windchill WBM 暫置資料庫
此過程假設您擁有現有開發環境。
* 
請確保您的系統中已安裝 WBM。
1. 在您的開發環境中,從 WT_HOME 目錄開始。
2. 執行下列指令:
WT_HOME/bin/wbmgen
這會根據模組集與 Windchill 組態產生並準備暫置結構。
3. 欲在 Oracle 資料庫中建立新結構描述使用者,請使用 create_user.sql 指令集。請遵循以下步驟:
a. 使用具有管理權限的帳戶登入 Oracle 資料庫,例如具有 DBA 角色的使用者或系統使用者。
b. 執行下列指令集以建立暫置使用者:
@db/sql(3)/create_user.sql
c. 使用之前建立的暫置使用者登入 Oracle 資料庫。
d. 執行下列指令集以建立暫置結構描述:
@db/sql(3)/wbm/create_staging_schema.sql
e. 執行下列指令集以建立稽核表:
@@db/sql(3)/wbm/create_audit_schema.sql
如需詳細資訊,請參閱《WBM Install and Usage Guide》(WBM 安裝與使用指南) 中的「Configuring the Loading Infrastructure and Object loaders」(配置載入基礎結構與物件載入程式) 主題。
使用 Oracle 資料轉儲匯出 (expdp) 來匯出資料庫轉儲
Oracle 資料轉儲通常指 expdp (匯出資料轉儲) 與 impdpm (匯入資料轉儲),是 Oracle 資料庫為執行高速資料與中繼資料操作而提供的一組指令行公用程式。這些公用程式可用於資料匯出、資料匯入與資料移轉等任務。如需詳細資訊,請參閱〈〉。Azure 儲存體帳戶
下一部分說明如何使用 Oracle 資料轉儲建立轉儲檔案,以及如何使用 expdp 匯出資料。
使用 Oracle 資料轉儲建立轉儲檔案
請遵循下列步驟來使用 Oracle 資料轉儲建立轉儲檔案:
* 
會從 Windchill 系統擷取轉儲。在擷取流程期間,請確保 Windchill 處於關閉狀態。
1. 在 Windows 或 Linux 中開啟 Windchill shell 或命令提示,並執行下列指令,在您的系統上建立一個目錄來儲存資料轉儲檔案:
mkdir <directory name>
例如:
mkdir D:\datapump
* 
請確保您有足夠的空間來儲存 Windchill 資料庫使用者結構描述。
2. 從 Windchill shell 或指令提示登入 sqlplus,並執行下列指令來在 Oracle 中建立邏輯目錄物件:
sql> create directory EXP_DIR as '<path to operating system directory created previous step>';
* 
此物件應指向在上一步中建立的實體目錄。
例如:
sql> create directory EXP_DIR as 'D:\datapump';
3. 在相同的 sqlplus 工作階段中,執行下列指令來授與使用者匯出邏輯目錄物件的權限:
sql> grant all on directory EXP_DIR to <user performing the export dump>;
例如:
sql> grant all on directory EXP_DIR to pdmadmin;
* 
資料轉儲匯入一律可以讀取較低相容的版本。
針對支援 Oracle 11g 的 Windchill 11.0 M030,可以在 Oracle 19c 上匯入相容的轉儲。
4. 執行下列指令來匯出 Windchill 資料庫使用者:
expdp userid=system/<password> directory=EXP_DIR
dumpfile=<dump_file_name>%u.dmp logfile=<log_file_name>.log
schemas=<staging db user> filesize=<size>M
* 
<staging db user> 中,針對在準備 WBM 資料移轉時所使用的本機內部部署暫存資料庫,指定使用者名稱。
<size> 中,指定所建立之每個 DMP 檔案所需的大小。
匯出必須由諸如 SYSTEM 使用者等獲得授權的使用者執行,才能將結構描述資訊包含在轉儲檔案中。
5. 透過執行指定的 SQL 指令集,建立 LST 檔案,並在其中包含表空間大小調整資訊。必須將輸出 ${PDB_NAME?}.lst 檔案提供給 PTC。
先決條件︰
請確保使用 Windchill 相容指令集建立暫置資料庫。
在執行 SQL 指令集之前,請確保您擁有所需權限。例如,暫存資料庫使用者必須擁有查詢權限。
SQL 指令集:
read -p "Please, provide PDB_NAME: " PDB_NAME
export PDB_NAME
export LST_FILE_NAME=${PDB_NAME?}.lst
echo "
SET FEEDBACK off;
SET HEADING off;
SET TRIMSPOOL ON
WHENEVER SQLERROR EXIT SQL.SQLCODE;
ALTER SESSION SET container=${PDB_NAME?};
SPOOL ${LST_FILE_NAME?};
SELECT tablespace_name || '*' || ceil((USED_SPACE*8192*1.2)/(34359738368)) files_required
FROM dba_tablespace_usage_metrics
WHERE tablespace_name NOT IN ('TEMP','SYSTEM','SYSAUX','UNDOTBS1');
" | sqlplus -s / as sysdba
ls -l ${LST_FILE_NAME?}
6. 將轉儲檔案與表格空間詳細資訊 (LST 檔案) 上載至 <客戶儲存帳戶>/container data/database 目錄。
使用 Oracle 資料轉儲匯出 (expdp)
expdp 指令可用來將資料與中繼資料從 Oracle 資料庫匯出為二進位檔案,以用於各種目的,例如備份、資料移轉或資料庫之間的資料傳輸。請遵循下列步驟來使用 expdp
1. 在已安裝 Oracle 資料庫的電腦中開啟「指令提示」或「終端」視窗。
2. 使用已獲得授權的帳戶登入 Oracle 資料庫。例如,具有 DBA 角色的使用者或系統使用者。
sqlplus username/password
3. 連線到資料庫之後,您可以使用 expdp 指令匯出資料。基本語法如下:
expdp username/password@database_name DIRECTORY=directory_name DUMPFILE=dumpfile_name [other options]
其中,
username/password - 您的 Oracle 資料庫認證。
database_name - 您要從中匯出資料的資料庫名稱。
DIRECTORY - 指定寫入匯出檔案之資料庫中的目錄物件。
DUMPFILE - 指定匯出轉儲檔案的名稱。
4. 您可以包括多個不同選項,來根據您的需求自訂匯出流程。以下是一些常用選項:
TABLES:匯出特定表格或結構描述。
SCHEMAS:從特定結構描述匯出資料。
INCLUDE:指定要包括在匯出中的內容 (例如,表格、索引、條件約束)。
EXCLUDE:指定要從匯出中排除的內容。
PARALLEL:並行執行匯出以改善效能。
COMPRESSION:匯出時啟用資料壓縮。
LOGFILE:指定記錄匯出相關資訊的記錄檔。
例如,expdp HR/password@orcl DIRECTORY=DATA_PUMP_DIR DUMPFILE=hr_export.dmp SCHEMAS=HR
5. 按 Enter 鍵執行 expdp 指令。視匯出的大小與複雜度而定,完成此流程可能需要一些時間。
6. 匯出完成後,您可以在指定目錄中檢視二進位轉儲檔案。
載入內容後的內容移轉步驟
1. 將內容檔案上載至 WBM Azure Blob 儲存容器。
<wbm blob storage container>/files
2. 您可以從該處使用預先載入內容驗證。WBM blob 儲存會裝載至正在執行 WBM 的 Windchill 應用程式伺服器。
3. 必須完成內容中繼資料載入。
4. 即會產生內容對應檔案,並將其上載至您的儲存帳戶。
5. 必須使用內容對應檔案產生從 <wbm blob storage container>/files<vault blob storage container> 的檔案傳輸指令集。
6. 從內容對應檔案中,可以接收並使用 SRCFILEPATHSRCFILENAMETARGETFILEPATHTARGETFILENAME 欄來建立複製指令集。
例如,
azcopy cp 'https://ptccustomerblobstorage.blob.core.windows.net/'%SRCFILEPATH%'/'%SRCFILENAME%' 'https://ptccustomerblobstorage.blob.core.windows.net/'%TARGETFILEPATH%'/'%TARGETFILENAME%'" --exclude-path="MOUNT_VALIDATION_DATA" --recursive=true'
高度並行執行可提高檔案移動的效能。
例如,要使用 ant 調整的程式碼如下:
<foreach list="${contentmapfile}" delimiter="${,}" target="copy"
param="SRCFILEPATH, SRCFILENAME, TARGETFILEPATH, TARGETFILENAME"
parallel="Yes" maxThreads="32"/>
<target name="copy">
<exec failonerror="true" executable="azcopy">
<arg value="cp"/>
<arg value="https://ptccustomerblobstorage.blob.core.windows.net/${SRCFILEPATH}/${SRCFILENAME}"/>
<arg value="https://ptccustomerblobstorage.blob.core.windows.net/${TARGETFILEPATH}/${TARGETFILENAME}"/>
<arg value="--exclude-path=MOUNT_VALIDATION_DATA"/>
<arg value=" --recursive=true"/>
</exec>
</target>
這是否有幫助?