Если дамп и последующая загрузка производятся на разных серверах и/или инсталляциях OpenEdge, то перед операциями необходимо проверить содержимое файлов $DLC/startup.pf для обоих инстансов OpenEdge (на исходном и целевом хосте) на предмет корректности и совпадения параметров локализации. Либо следует указывать эти параметры в выполняемых командах в явном виде.
Стандартные параметры локализации для БИСквита:
-cpinternal ibm866 -cpstream ibm866 -cpcoll Russian -cpcase Basic -d dmy -numsep 44 -numdec 46
cd <dump dir>
bisquit.df, таблицу пользователей _user.d, последовательности _seqvals.d, записи аутентификации _sec-authentication-domain.d и _sec-authentication-system.d. bq41d [-1] -p _admin.p
Data Dictionary
Admin -> Dump Data and Definitions ->
Data Definitions (.df file)... <bisquit.df>
User Table Contents... <_user.d>
Security Domains... <_sec-authentication-*.d>
Sequences Current Values... <_seqvals.d>
Проверяем корректность выгрузки файлов (содержиемое).
tabs.txt) по выгруженному bisquit.df:sed -ne 's:^ADD TABLE "\(.*\)".*$:\1:p' bisquit.df | tee tabs.txt
Проверяем и фиксируем количество таблиц:
wc -l tabs.txt
while read TAB; do
bq41d dump $TAB . -thread 1 -threadnum 4 || break
done <tabs.txt | tee dump.log
Если какую-либо таблицу не надо дампить (например, history), то следует предварительно удалить ее из файла tabs.txt.
После дампа проверяем логи (dump.log).
Проверяем количество сообщений об успешных дампах (должно соответствовать количеству таблиц):
grep "(6254)" dump.log | wc -l
bisquit.stBQDB на каталог для новой базы. Переходим в этот каталог, создаем/редактируем файл описания структуры новой базы (возможно, с новыми областями). Создаем файл описания директорий временных файлов сортировки для последующей индексации базы.cd <путь до каталога с базой> <редактор> bisquit.st <редактор> bisquit.srt (пример, по 2ГБ в tmp: 2048000 /tmp)
ibm866:bq41d exec procopy '$DLC/prolang/rus/empty8 $BQDB' bq41d convchar convert ibm866
bq41d enablelargefiles
bq41d trunc -bi 16384 -biblocksize 16
bisquit.df, например, для изменения размещения таблиц и индексов по областямbisquit.df, последовательности _seqvals.d, таблицу пользователей _user.d, записи аутентификации _sec-authentication-domain.d и _sec-authentication-system.d. Записи аутентификации необходимы в случае использования функционала 0222364 (SSO. Реализация входа по логину UNIX) начиная с патча d102. Если данный функционал не используется - записи можно не грузить или соответствующие .d-файлы могут их не содержать. cd <dump dir>
bq41d [-1] -p _admin.p
Data Dictionary
Admin -> Load Data and Definitions ->
Data Definitions (.df file)... <bisquit.df>
User Table Contents... <_user.d>
Security Domains... <_sec-authentication-*.d>
Sequences Current Values... <_seqvals.d>
bisquit.dfbq41d tablemove table-name table-area [index-area]
Или используем процедуру genscript.p для генерации скрипта move.sh по описанию table.cfg. Актуальные версии genscript.p и table.cfg поставляются в составе исходников выпускаемых патчей. Перед запуском созданного скрипта move.sh проверьте его содержание и отредактируйте при необходимости.
bq41d -1 -p genscript.p -param table.cfg,move.sh bq41d cmd sh move.sh
bq41d start -i -spin 50000 -L 102400 -bibufs 100 -B 20000
Запуск нескольких процессов proapw позволит ускорить процесс загрузки данных. Задайте дополнительное их количество в параметрах запускающего скрипта:
RunBIW="yes" RunAPW="yes" BQNAPW="5"
Или используйте соответсвующие команды:
bq41d exec probiw \$BQDB bq41d exec proapw \$BQDB bq41d exec proapw \$BQDB bq41d exec proapw \$BQDB bq41d exec proapw \$BQDB bq41d exec proapw \$BQDB
cd <dump dir> for F in *.bd*; do bq41d load $F -tscope 5000 || break; done | tee load.log
Если какую-либо таблицу не надо загружать (например, history), то следует
предварительно ее удалить или переименовать ее суффикс (.bd)
load.log). Искать «err» или «fail». Проверяем количество сообщений об успешных загрузках (должно соответствовать количеству загружаемых таблиц):grep "(6256)" load.log | wc -l
bisquit.srt должен быть создан заранее). Эта операция самая ресурсозатратная, во многих случаях имеет смысл запускать ее в пакетном режиме в нерабочее время (для этого удобно использовать юниксовую команду at).bq41d idxbuild all -mergethreads 2 -threadnum 2 -datascanthreads 6 -B 1024 -TF 50 -TMB 64 -TB 64 -TM 32 -rusage -silent
Убираем из PROPATH все старые r-ки. Заходим в src и запускаем:
bq41d -U bis -P ***
run promake.p
указываем исходники: <путь>/src/*
указываем каталог для r
bq41d.pl получается больше 2 ГБ, ее можно сделать из двух частей. Указываем нужные библиотеки в PROPATH скриптов. Библиотеки следует располагать в каталоге $BQ/lib.