Содержание

Методика бинарного dump/load базы БИСквит

Примечание

Если дамп и последующая загрузка производятся на разных серверах и/или инсталляциях OpenEdge, то перед операциями необходимо проверить содержимое файлов $DLC/startup.pf для обоих инстансов OpenEdge (на исходном и целевом хосте) на предмет корректности и совпадения параметров локализации. Либо следует указывать эти параметры в выполняемых командах в явном виде.

Стандартные параметры локализации для БИСквита:

  -cpinternal ibm866
  -cpstream   ibm866
  -cpcoll Russian
  -cpcase Basic
  -d dmy
  -numsep 44
  -numdec 46

Дамп

 cd <dump dir>
 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>

Проверяем корректность выгрузки файлов (содержиемое).

 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

Создание новой базы:

 cd <путь до каталога с базой>
 <редактор> bisquit.st
 <редактор> bisquit.srt     (пример, по 2ГБ в tmp: 2048000 /tmp)
 bq41d exec procopy '$DLC/prolang/rus/empty8  $BQDB'
 bq41d convchar convert ibm866
 bq41d enablelargefiles
 bq41d trunc -bi 16384 -biblocksize 16

Загрузка

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>
 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)

 grep "(6256)" load.log | wc -l
 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

Документация:

  1. OpenEdge Data Management: Database Administration
    → Maintaining and Monitoring Your Database
    → → Maintaining Database Structure
    → → → Dumping and Loading
    → → → Maintaining indexes and tables

  2. OpenEdge Data Management: Database Administration
    → Maintaining and Monitoring Your Database
    → → Managing Performance
    → → → Index use
    → → → → Rebuilding indexes

  3. OpenEdge Deployment: Managing ABL Applications
    → Managing R-code Libraries

  4. Компиляция:
    1. Документация БИСквит http://support.bis.ru/prod/bq/core/docs/
    2. Документация к патчам БИСквит