Processo e fasi del workflow WBM
In questo argomento vengono illustrati il processo di workflow Windchill Bulk Migrator (WBM) e le varie fasi di WBM.
Processo di workflow WBM
Il diagramma di workflow seguente illustra l'esecuzione della migrazione WBM:
Database di staging locale
La migrazione dei dati è in genere un processo iterativo. La prima fase prevede di solito l'estrazione di file e metadati da un sistema d'origine. Per strutturare i metadati della migrazione, è necessario un database di staging. Per eliminare più trasformazioni di dati, si presuppone che venga utilizzato un database di staging locale. Per ulteriori informazioni, vedere la pagina all'indirizzo https://support.ptc.com.
* 
In base ai requisiti della versione di Windchill, è necessario utilizzare un database Oracle.
La struttura del database deve soddisfare i requisiti del database di staging Windchill WBM.
Creazione di un database di staging Windchill WBM
Questa procedura presuppone che si disponga di un ambiente di sviluppo esistente.
* 
Assicurarsi che WBM sia installato nel sistema.
1. Nell'ambiente di sviluppo, iniziare dalla directory WT_HOME.
2. Eseguire il seguente comando:
WT_HOME/bin/wbmgen
In questo modo viene generata e preparata la struttura di staging in base all'insieme di moduli e alla configurazione di Windchill.
3. Per creare un nuovo utente dello schema in un database Oracle, utilizzare lo script create_user.sql. Attenersi alla procedura descritta di seguito.
a. Accedere al database Oracle utilizzando un account con privilegi amministrativi, ad esempio un utente con il ruolo di DBA o l'utente SYSTEM.
b. Per creare un utente di staging, eseguire lo script seguente:
@db/sql(3)/create_user.sql
c. Accedere al database Oracle utilizzando l'utente di staging creato in precedenza.
d. Per creare lo schema di staging, eseguire lo script seguente:
@db/sql(3)/wbm/create_staging_schema.sql
e. Per creare tabelle di verifica, eseguire lo script seguente:
@@db/sql(3)/wbm/create_audit_schema.sql
Per ulteriori informazioni, vedere l'argomento Configuring the Loading Infrastructure and Object loaders nella Windchill Bulk Migrator Installation and Usage Guide.
Esportare il dump del database con Oracle Data Pump Export (expdp)
Oracle Data Pump, spesso indicato come expdp (export data pump) e impdpm (import data pump), è un insieme di utilità della riga di comando fornite dal database Oracle per eseguire operazioni su dati e metadati ad alta velocità. Queste utilità vengono utilizzate per operazioni quali l'esportazione, l'importazione e la migrazione dei dati. Per ulteriori informazioni, vedereAccount di archiviazione di Azure.
La sezione seguente illustra come creare un file di dump utilizzando Oracle Data Pump ed esportare i dati tramite expdp.
Creazione di un file di dump con Oracle Data Pump
Per creare un file di dump utilizzando Oracle Data Pump, attenersi alla procedura descritta di seguito.
* 
I dump vengono estratti dal sistema Windchill. Durante il processo di estrazione, assicurarsi che Windchill sia chiuso.
1. Aprire la shell o il prompt dei comandi Windchill in Windows o Linux ed eseguire il comando seguente per creare una directory nel sistema in cui memorizzare i file di pump di dati:
mkdir <directory name>
Esempio:
mkdir D:\datapump
* 
Assicurarsi di disporre di spazio sufficiente per memorizzare lo schema utente del database Windchill.
2. Accedere a sqlplus dalla shell o dal prompt dei comandi Windchill ed eseguire il comando seguente per creare un oggetto directory logica in Oracle:
sql> create directory EXP_DIR as '<path to operating system directory created previous step>';
* 
Questo oggetto deve puntare alla directory fisica creata al passo precedente.
Esempio:
sql> create directory EXP_DIR as 'D:\datapump';
3. Nella stessa sessione di sqlplus, eseguire il comando seguente per concedere all'utente il permesso di esportare l'oggetto directory logica:
sql> grant all on directory EXP_DIR to <user performing the export dump>;
Esempio:
sql> grant all on directory EXP_DIR to pdmadmin;
* 
Le importazioni dei pump di dati possono sempre leggere versioni compatibili con versioni inferiori.
Per Windchill 11.0 M030 supportato con Oracle 11g, il dump è compatibile per l'importazione su Oracle 19c.
4. Per esportare l'utente del database Windchill, eseguire il comando seguente:
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
* 
In <staging db user> specificare il nome utente per il database di staging on-premise locale utilizzato per preparare la migrazione dei dati WBM.
In <size> specificare la dimensione desiderata di ciascun file DMP creato.
L'esportazione deve essere eseguita da un utente con privilegi, ad esempio un utente del sistema, per includere le informazioni sullo schema nel file di dump.
5. Creare un file LST contenente informazioni sul dimensionamento dello spazio tabelle eseguendo l'apposito script SQL. Il file di output ${NOME_PDB?}.lst deve essere fornito a PTC.
Prerequisiti:
Assicurarsi che il database di staging venga creato utilizzando script compatibili con Windchill.
Prima di eseguire lo script SQL, assicurarsi di disporre dei permessi necessari. Ad esempio, gli utenti del database di staging devono avere il diritto di eseguire interrogazioni.
Script 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. Creare un file MDT contenente informazioni sui metadati del database eseguendo l'apposito script SQL. Il file di output ${NOME_PDB?}.mdt deve essere fornito a PTC.
Prerequisiti:
Assicurarsi che il database di staging venga creato utilizzando script compatibili con Windchill.
Prima di eseguire lo script SQL, assicurarsi di disporre dei permessi necessari. Ad esempio, gli utenti del database di staging devono disporre dei diritti per interrogare tutte le viste del database pertinenti oppure è possibile utilizzare un account con privilegi DBA o SELECT_CATALOG_ROLE.
Script SQL (db_metadata.sql):
SET verify OFF echo OFF feedback OFF heading OFF trimspool ON pagesize 0
WHENEVER SQLERROR EXIT SQL.SQLCODE;
ALTER SESSION SET container=&1;
SPOOL &1..mdt
SELECT 'DB:NAME:'||sys_context('USERENV','DB_NAME') FROM dual;
SELECT 'DB:VERSION:' || REGEXP_SUBSTR(version_full, '^\d+\.\d+') FROM v$instance;
SELECT 'DB:COMPATIBLE:' || value FROM database_compatible_level;
SELECT 'DB:TIMEZONE_VERSION:' || version FROM v$timezone_file;
SELECT 'DB:TS_TOTAL_SIZE_GB:' || (SELECT CEIL(SUM(bytes)/1024/1024/1024) FROM (SELECT tablespace_name, bytes, maxbytes FROM dba_data_files
UNION ALL
SELECT tablespace_name, bytes, maxbytes FROM dba_temp_files))
FROM dual;
SELECT 'NLS:CHARACTERSET:' || value FROM nls_database_parameters WHERE UPPER(parameter) = 'NLS_CHARACTERSET';
SELECT 'NLS:NCHAR_CHARACTERSET:' || value FROM nls_database_parameters WHERE UPPER(parameter) = 'NLS_NCHAR_CHARACTERSET';
SELECT 'SCHEMA:NAME:'||UPPER('&2') FROM dual;
SELECT 'SCHEMA:TOTAL_OBJECT_COUNT:' || (SELECT COUNT(*) FROM dba_objects WHERE UPPER(owner)=UPPER('&2')) FROM dual;
SELECT 'SCHEMA:DATA_SIZE_GB:' || (SELECT TO_CHAR(CEIL(SUM(bytes)/1024/1024/1024)) FROM dba_segments WHERE owner=UPPER('&2') AND segment_type NOT LIKE '%INDEX%') FROM dual;
SELECT 'SCHEMA:TOTAL_SIZE_GB:' || (SELECT TO_CHAR(CEIL(SUM(bytes)/1024/1024/1024)) FROM dba_segments WHERE owner=UPPER('&2')) FROM dual;
SELECT 'EXPORT:DB_REQUIRED_SIZE_GB:' || (SELECT TO_CHAR(CEIL(SUM(bytes)/1024/1024/1024)) FROM dba_segments WHERE UPPER(owner) = UPPER('&2')) FROM dual;
PROMPT # Tablespace Summary:
PROMPT # Format: TS:<TYPE>:<TABLESPACE_NAME>:<USED_GB>:<ALLOCATED_GB>:<FILE_COUNT>:<MAX_GB>
SELECT 'TS:' || CASE
WHEN ts.tablespace_name IN ('SYSTEM', 'SYSAUX') THEN ts.tablespace_name
WHEN ts.contents = 'UNDO' THEN 'UNDO'
WHEN ts.contents = 'TEMPORARY' THEN 'TEMPORARY'
ELSE 'USER'
END || ':' ||
ts.tablespace_name || ':' ||
CEIL(NVL(seg.segment_size_gb, 0)) || ':' ||
CEIL(df.total_size_gb) || ':' ||
df.file_count || ':' ||
CEIL(df.max_size_gb)
FROM (
SELECT tablespace_name,
COUNT(*) AS file_count,
CEIL(SUM(bytes)/1024/1024/1024) AS total_size_gb,
CEIL(SUM(DECODE(maxbytes, 0, bytes, maxbytes))/1024/1024/1024) AS max_size_gb
FROM (
SELECT tablespace_name, bytes, maxbytes FROM dba_data_files
UNION ALL
SELECT tablespace_name, bytes, maxbytes FROM dba_temp_files
)
GROUP BY tablespace_name
) df
LEFT JOIN (
SELECT tablespace_name,
CEIL(SUM(bytes)/1024/1024/1024) AS segment_size_gb
FROM dba_segments
GROUP BY tablespace_name
) seg
ON df.tablespace_name = seg.tablespace_name
JOIN dba_tablespaces ts
ON df.tablespace_name = ts.tablespace_name
ORDER BY 1
/
EXIT
Script bash per l'avvio dello script SQL (db_metadata.sh):
read -p "Please, provide PDB_NAME: " PDB_NAME
read -p "Please, provide Staging DB User Name: " SCHEMA_NAME
export MDT_FILE_NAME=${PDB_NAME?}.mdt
sqlplus -s / as sysdba @db_metadata.sql "${PDB_NAME?}" "${SCHEMA_NAME?}"
ls -l ${MDT_FILE_NAME?}
7. Caricare i file di dump, i dettagli dello spazio tabelle (file LST) e il file di metadati (file MDT) nella directory <account di archiviazione cliente>/container data/database.
Utilizzo di Oracle Data Pump Export (expdp)
Il comando expdp viene utilizzato per esportare dati e metadati da un database Oracle in un file binario, che può essere impiegato per diversi scopi, tra cui backup, migrazione dei dati o trasferimento di dati tra database. Per utilizzare expdp, attenersi alla procedura descritta di seguito.
1. Aprire la finestra del prompt dei comandi o del terminale sul computer in cui è installato il database Oracle.
2. Accedere al database Oracle utilizzando un account con privilegi. Ad esempio, un utente con il ruolo DBA o l'utente di sistema.
sqlplus username/password
3. Una volta effettuata la connessione al database, è possibile utilizzare il comando expdp per esportare dati. La sintassi di base è la seguente:
expdp username/password@database_name DIRECTORY=directory_name DUMPFILE=dumpfile_name [other options]
dove
username/password - Credenziali del database Oracle.
database_name - Nome del database da cui si desidera esportare i dati.
DIRECTORY - Specifica l'oggetto directory nel database in cui viene scritto il file di esportazione.
DUMPFILE - Specifica il nome del file dump di esportazione.
4. È possibile includere varie opzioni per personalizzare il processo di esportazione in base ai requisiti. Di seguito sono riportate alcune opzioni comunemente utilizzate.
TABLES: esportare tabelle o schemi specifici.
SCHEMAS: esportare dati da schemi specifici.
INCLUDE: specificare gli elementi da includere nell'esportazione (ad esempio tabelle, indici o vincoli).
EXCLUDE: specificare gli elementi da escludere dall'esportazione.
PARALLEL: eseguire l'esportazione in parallelo per migliorare le prestazioni.
COMPRESSION: attivare la compressione dei dati durante l'esportazione.
LOGFILE: specificare un file di log per registrare le informazioni relative all'esportazione.
Ad esempio: expdp HR/password@orcl DIRECTORY=DATA_PUMP_DIR DUMPFILE=hr_export.dmp SCHEMAS=HR
5. Premere INVIO per eseguire il comando expdp. A seconda della dimensione e della complessità dell'esportazione, il completamento del processo potrebbe richiedere tempo.
6. Al termine dell'esportazione, è possibile visualizzare un file di dump binario nella directory specificata.
Utilizzo di Oracle Data Pump Import (impdp)
Il comando impdp viene utilizzato per importare dati e metadati da un file di dump binario in un database Oracle, che può essere utilizzato per diversi scopi, tra cui backup, migrazione dei dati o trasferimento di dati tra database. È possibile importare dati e metadati completi contemporaneamente o caricarli in modo incrementale. Per utilizzare impdp, attenersi alla procedura descritta di seguito.
1. Aprire la finestra del prompt dei comandi o del terminale sul computer in cui è installato il database Oracle.
2. Accedere al database Oracle utilizzando un account con privilegi. Ad esempio, un utente con il ruolo DBA o l'utente di sistema.
sqlplus username/password
3. Una volta effettuata la connessione al database, è possibile utilizzare il comando impdp per importare i dati. La sintassi di base è la seguente:
impdp username/password@database_name DIRECTORY=directory_name DUMPFILE=dumpfile_name [other options]
dove
username/password - Credenziali del database Oracle.
database_name - Nome del database da cui si desidera importare i dati.
DIRECTORY - Specifica l'oggetto directory nel database in cui viene scritto il file di importazione.
DUMPFILE - Specifica il nome del file dump di importazione.
4. È possibile includere varie opzioni per personalizzare il processo di importazione in base ai requisiti. Di seguito sono riportate alcune opzioni comunemente utilizzate.
TABLES: importare tabelle o schemi specifici.
SCHEMAS: importare dati da schemi specifici.
INCLUDE: specificare gli elementi da includere nell'importazione (ad esempio tabelle, indici o vincoli).
EXCLUDE: specificare gli elementi da escludere dall'importazione.
PARALLEL: eseguire l'importazione in parallelo per migliorare le prestazioni.
COMPRESSION: attivare la compressione dei dati durante l'importazione.
LOGFILE: specificare un file di log per registrare le informazioni relative all'importazione.
Ad esempio: impdp HR/password@orcl DIRECTORY=DATA_PUMP_DIR DUMPFILE=hr_export.dmp SCHEMAS=HR
5. Premere INVIO per eseguire il comando impdp. A seconda della dimensione e della complessità dell'importazione, il completamento del processo potrebbe richiedere tempo.
6. Al termine dell'importazione, è possibile visualizzare un file di dump binario nella directory specificata.
È stato utile?