Если дамп и последующая загрузка производятся на разных серверах и/или инсталляциях 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.st
BQDB
на каталог для новой базы. Переходим в этот каталог, создаем/редактируем файл описания структуры новой базы (возможно, с новыми областями). Создаем файл описания директорий временных файлов сортировки для последующей индексации базы.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.df
bq41d 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
.