Выполнение и этапы рабочего процесса WBM
В этом разделе поясняется рабочий процесс Windchill Bulk Migrator (WBM) и различные этапы WBM.
Рабочий процесс WBM
Выполнение переноса WBM иллюстрирует следующая схема.
Локальная временная база данных
Перенос данных обычно является итерационным процессом. Первая фаза обычно включает извлечение файлов и метаданных их исходной системы. Для структурирования метаданных переноса требуется временная база данных. Чтобы исключить многократные преобразования данных, предполагается, что используется локальная временная база данных. Дополнительные сведения см. на сайте службы поддержки
https://support.ptc.com.
| • База данных должна быть БД Oracle, соответствующей требованиям версии Windchill. • Структура базы данных должна соответствовать требованиям Windchill для временной базы данных WBM. |
Создание временной базы данных Windchill WBM
В этой процедуре подразумевается, что у вас имеется существующая среда разработки.
| Убедитесь, что WBM установлен в вашей системе. |
1. В среде разработки запустите приложение из папки WT_HOME.
2. Выполните команду:
WT_HOME/bin/wbmgen
При этом создается и подготавливается структура временной установки, соответствующая набору модулей и конфигурации Windchill.
3. Чтобы создано нового пользователя схемы в базе данных Oracle, используйте сценарий create_user.sql. Выполните следующие действия.
a. Войдите в свою БД Oracle с помощью учетной записи с правами администратора, такой как пользователь с ролью DBA или пользователя SYSTEM.
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.
Экспорт дампа базы данных с помощью утилиты Oracle Data Pump Export (expdp)
Технология Oracle Data Pump, представляет набор утилит командной строки expdp (подкачка экспорта данных) impdpm (подкачка импорта данных) для базы данных Oracle, позволяющих выполнять высокоскоростные операции с данными и метаданными. Эти утилиты используются для заданий экспорта, импорта и переноса данных. Дополнительную информацию см. в разделе
Учетная запись хранилища Azure.
В следующем разделе поясняется, как создать файл дампа с помощью средства переноса данных Oracle и экспортировать данные с помощью утилиты expdp.
Создание файла дампа с помощью средства переноса данных Oracle
Чтобы создать файл дампа с помощью средства переноса данных Oracle, выполните следующие шаги.
| Дампы извлекаются из системы Windchill. Убедитесь, что приложение Windchill отключено во время процесса извлечения. |
1. Откройте оболочку Windchill либо командную строку Windows или Linux и выполните следующую команду, чтобы создать в системе папку для хранения файлов переноса данных:
mkdir <directory name>
Например:
mkdir D:\datapump
| Убедитесь, что имеется достаточно места для хранения пользовательской схемы базы данных Windchill. |
2. Войдите в sqlplus из оболочки или командной строки Windchill и выполните следующую команду, чтобы создать объект логического каталога в 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;
| • Импорт средства переноса данных всегда может читать младшие совместимые версии. • Для версии Windchill 11.0 M030, поддерживаемой Oracle 11g, дамп будет совместимым для импорта в 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-файла. • Чтобы включить информацию о схеме в файл дампа, экспорт должен выполняться привилегированным пользователем, например системным. |
5. Создайте LST-файл, содержащий информацию о размерах табличной области, выполнив приведенный ниже сценарий SQL. Отправьте файл выходных данных ${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. Создайте MDT-файл, содержащий информацию о метаданных базы данных, выполнив приведенный ниже сценарий SQL. Отправьте файл выходных данных ${PDB_NAME?}.mdt в PTC.
Предварительные требования
◦ Убедитесь, что промежуточная база данных создана с помощью сценариев, совместимых с Windchill.
◦ Перед выполнением сценария SQL убедитесь, что у вас имеются необходимые разрешения. Например, пользователи промежуточной базы данных должны иметь права запросов ко всем связанным представлениям базы данных или вы должны иметь учетную запись с правами DBA или SELECT_CATALOG_ROLE.
Сценарий 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
Bash-сценарий для начального сценария 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. Выгрузите файлы дампа, сведения о табличной области (LST-файл) и файл метаданных (MDT-файл) в каталог <уч. запись хранилища пользователя>/container data/database.
Использование утилиты Oracle Data Pump Export (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. После завершения экспорта можно видеть двоичный файл дампа в указанном каталоге.
Использование Oracle Data Pump Import (impdp)
Команда impdp используется для импорта данных и метаданных из двоичного файла дампа в базу данных Oracle, которая может использоваться разными способами, например для резервного копирования, переноса данных или передачи данных между базами данных. Можно импортировать полные данные и метаданные сразу или загружать данные и метаданные последовательно. Для использования impdp выполните следующие шаги:
1. Откройте окно командной строки или терминала на компьютере с установленной базой данных Oracle.
2. Войдите в базу данных Oracle с помощью учетной записи с требуемыми правами. Например, как пользователь с ролью DBA или как системный пользователь.
sqlplus username/password
3. После подключения к базе данных можно использовать команду impdp для импорта данных. Базовый синтаксис имеет следующий вид:
impdp 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 - указать файл журнала для записи информации, относящейся к импорту.
Например, impdp HR/password@orcl DIRECTORY=DATA_PUMP_DIR DUMPFILE=hr_export.dmp SCHEMAS=HR.
5. Нажмите клавишу Enter для выполнения команды impdp. В зависимости от размера и сложности импорта может потребоваться значительное время для завершения процесса.
6. После завершения импорта можно видеть двоичный файл дампа в указанном каталоге.