Это старая версия документа.
Содержание
Методика бинарного dump/load базы БИСквит
Примечание
Если дамп и последующая загрузка производятся на разных серверах и/или инсталляциях OpenEdge, то перед операциями необходимо проверить $DLC/startup.pf
для обоих инсталляций OpenEdge
(на исходном и целевом хосте) на предмет корректности и совпадения
параметров локализации. Либо следует указывать их в выполняемых командах в явном виде.
Стандартные для БИСквита:
-cpinternal ibm866 -cpstream ibm866 -cpcoll Russian -cpcase Basic -d dmy -numsep 44 -numdec 46
Дамп
- Создаем директорию для файлов дампа и переходим в нее
cd <dump dir>
- Запускаем OpenEdge Data Dictionary и выгружаем (текстом) описание
bisquit.df
, таблицу пользователей_user.d
и последовательности_seqvals.d
bq41d [-1] -p _admin.p Data Dictionary Admin -> Dump Data and Definitions -> Data Definitions (.df file)... <bisquit.df> User Table Contents... <_user.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 . || break done <tabs.txt | tee dump.log
Если какую-либо таблицу не надо дампить (напр. history
), то следует
предварительно удалить ее из файла tabs.txt
После дампа проверяем логи (dump.log
).
Проверяем кол-во сообщений об успешных дампах (должно соответствовать
кол-ву таблиц):
grep "(6254)" dump.log | wc -l
- Дамп готов. Приложите к нему также описание структуры областей базы:
bisquit.st
Создание новой базы:
- Создаем скрипт для новой базы, устанавливаем в нем переменную
BQDB
на каталог для новой базы. Переходим в этот каталог, создаем/редактируем файл описания структуры новой базы (возможно, с новыми областями). Создаем файл описания директорий временных файлов сортировки для последующей индексации базы.
cd $BQDB <редактор> bisquit.st <редактор> bisquit.srt (пример, по 2ГБ в tmp: 2048000 /tmp)
- Копируем заготовку из дистрибутива OpenEdge. Меняем ей кодировку на
ibm866
:
bq41d exec procopy '$DLC/prolang/rus/empty8 $BQDB' bq41d convchar convert ibm866
- (Опционально). При необходимости включить поддержку больших файлов:
bq41d enablelargefiles
- (Производительность) Рекомендуется увеличить размер блока и кластера bi файла для увеличения производительности на запись.
bq41d trunc -bi 16384 -biblocksize 16384
- База готова для загрузки.
Загрузка
- (Опционально). Если требуется, редактируем файл
bisquit.df
, например, для изменения размещения таблиц и индексов по областям
- Переходим в каталог с дампом, запускаем OpenEdge Data Dictionary и загружаем
bisquit.df
,_seqvals.d
и_user.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> Sequences Current Values... <_seqvals.d>
- (Опционально). При необходимости, переносим таблицы в другие области (с индексами или без), если это не было сделано редактированием
bisquit.df
bq41d tablemove table-name table-area [index-area]
или с помощью процедуры genscript
по описанию table.cfg
bq41d -1 -p genscript -param table.cfg,move.sh bq41d exec sh move.sh
- В этом месте лучше сделать бэкап созданной «пустой» базы с загруженной структурой, чтобы в случае неудачи начинать не с создания базы, а из бэкапа (база еще маленькая и восстановится быстро).
- Грузим данные (может требовать значительного времени!):
cd <dump dir> for F in *.bd*; do bq41d load $F || break; done | tee load.log
Если какую-либо таблицу не надо загружать (напр. history
), то следует
предварительно удалить или переименовать ее суффикс (.bd
)
- Проверяем логи (
load.log
). Искать «err
» или «fail
». Проверяем кол-во сообщений об успешных загрузках (должно соответствовать кол-ву таблиц):
grep "(6256)" load.log | wc -l
- Если индексы не создавались при загрузке, перестраиваем их (файл
bisquit.srt
должен быть создан заранее)
bq41d idxbuild all -TB 31 -TM 32 [-B 16536] -silent
# вариант для 10.2B: bq41d idxbuild all -mergethreads 2 -threadnum 2 -datascanthreads 6 -B 1024 -TF 50 -TMB 64 -TB 64 -TM 32 -rusage -silent
- Компилируем БИСквит при необходимости.
Убираем из PROPATH все старые r-ки. Запускаем, например:
bq41d -U bis -P ***
run promake.p указываем исходники: ../src/* указываем каталог для r
- После компиляции рекомендуется собрать необходимые библиотеки. Если
bq41d.pl
получается больше 2 ГБ, ее можно сделать из двух частей. Указываем нужные библиотеки вPROPATH
скриптов. Библиотеки следует располагать в каталоге$BQ/lib
.
Документация:
- OpenEdge Data Management: Database Administration
→ Maintaining and Monitoring Your Database
→ → Maintaining Database Structure
→ → → Dumping and Loading
→ → → Maintaining indexes and tables
- OpenEdge Deployment: Managing ABL Applications
→ Managing R-code Libraries
- документация БИСквит http://support.bis.ru/docs/
- документация к патчам БИСквит
Документация: ~~~~~~~~~~~~~ 1. Методика dump-load (актуальная версия:
http://support.bis.ru/info/misc/index.php?id=dumpload
2. OpenEdge Data Management: Database Administration
- > Maintaining and Monitoring Your Database
- > Dumping and Loading
3. OpenEdge Deployment: Managing ABL Applications
- > Managing R-code Libraries
4. Компиляция БИСквит:
- документация БИСквит http://support.bis.ru/docs/
- документация к патчам БИСквит