Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
unix:progress:dump-load [2012/11/09 22:46] kos |
unix:progress:dump-load [2021/07/07 22:38] (текущий) kos [Загрузка] |
||
|---|---|---|---|
| Строка 2: | Строка 2: | ||
| === Примечание === | === Примечание === | ||
| - | Если дамп и последующая загрузка производятся на разных серверах и/или инсталляциях OpenEdge, то перед операциями необходимо проверить ''$DLC/startup.pf'' для обоих инсталляций OpenEdge | + | Если дамп и последующая загрузка производятся на разных серверах и/или инсталляциях OpenEdge, то перед операциями необходимо проверить содержимое файлов ''$DLC/startup.pf'' для обоих инстансов OpenEdge (на исходном и целевом хосте) на предмет корректности и совпадения параметров локализации. Либо следует указывать эти параметры в выполняемых командах в явном виде. |
| - | (на исходном и целевом хосте) на предмет корректности и совпадения | + | |
| - | параметров локализации. Либо следует указывать их в выполняемых командах в явном виде. | + | |
| - | Стандартные для БИСквита: | + | Стандартные параметры локализации для БИСквита: |
| - | '-cpinternal ibm866 | + | |
| + | -cpinternal ibm866 | ||
| -cpstream ibm866 | -cpstream ibm866 | ||
| -cpcoll Russian | -cpcoll Russian | ||
| Строка 21: | Строка 20: | ||
| cd <dump dir> | cd <dump dir> | ||
| - | * Запускаем //OpenEdge Data Dictionary// и выгружаем (текстом) описание ''bisquit.df'', таблицу пользователей ''_user.d'' и последовательности ''_seqvals.d'' | + | * Запускаем //OpenEdge Data Dictionary// и выгружаем (текстом) описание ''bisquit.df'', таблицу пользователей ''_user.d'', последовательности ''_seqvals.d'', записи аутентификации ''_sec-authentication-domain.d'' и ''_sec-authentication-system.d''. |
| bq41d [-1] -p _admin.p | bq41d [-1] -p _admin.p | ||
| Data Dictionary | Data Dictionary | ||
| Admin -> Dump Data and Definitions -> | Admin -> Dump Data and Definitions -> | ||
| - | Data Definitions (.df file)... <bisquit.df> | + | Data Definitions (.df file)... <bisquit.df> |
| - | User Table Contents... <_user.d> | + | User Table Contents... <_user.d> |
| - | Sequences Current Values... <_seqvals.d> | + | Security Domains... <_sec-authentication-*.d> |
| + | Sequences Current Values... <_seqvals.d> | ||
| Проверяем корректность выгрузки файлов (содержиемое). | Проверяем корректность выгрузки файлов (содержиемое). | ||
| Строка 34: | Строка 34: | ||
| * Создаем файл со списком всех таблиц исходной базы (''tabs.txt'') по выгруженному ''bisquit.df'': | * Создаем файл со списком всех таблиц исходной базы (''tabs.txt'') по выгруженному ''bisquit.df'': | ||
| - | sed -ne 's:^ADD TABLE "\(.*\)":\1:p' bisquit.df | tee tabs.txt | + | sed -ne 's:^ADD TABLE "\(.*\)".*$:\1:p' bisquit.df | tee tabs.txt |
| - | или с помощью //tabanalys// исходной базы: | + | Проверяем и фиксируем количество таблиц: |
| - | + | ||
| - | bq41d tabanalys | grep '^PUB.' | cut -d ' ' -f 1 | tee tabs.txt | + | |
| - | + | ||
| - | Проверяем и фиксируем кол-во таблиц: | + | |
| wc -l tabs.txt | wc -l tabs.txt | ||
| Строка 47: | Строка 43: | ||
| while read TAB; do | while read TAB; do | ||
| - | bq41d dump $TAB . || break | + | bq41d dump $TAB . -thread 1 -threadnum 4 || break |
| done <tabs.txt | tee dump.log | done <tabs.txt | tee dump.log | ||
| - | Если какую-либо таблицу не надо дампить (напр. ''history''), то следует | + | Если какую-либо таблицу не надо дампить (например, ''history''), то следует предварительно удалить ее из файла ''tabs.txt''. |
| - | предварительно удалить ее из файла ''tabs.txt'' | + | |
| После дампа проверяем логи (''dump.log'').\\ | После дампа проверяем логи (''dump.log'').\\ | ||
| - | Проверяем кол-во сообщений об успешных дампах (должно соответствовать | + | Проверяем количество сообщений об успешных дампах (должно соответствовать количеству таблиц): |
| - | кол-ву таблиц): | + | |
| grep "(6254)" dump.log | wc -l | grep "(6254)" dump.log | wc -l | ||
| Строка 64: | Строка 58: | ||
| ===== Создание новой базы: ===== | ===== Создание новой базы: ===== | ||
| - | * Подготавливаем окружение. | + | * Создаем скрипт для новой базы, устанавливаем в нем переменную ''BQDB'' на каталог для новой базы. Переходим в этот каталог, создаем/редактируем файл описания структуры новой базы (возможно, с новыми областями). Создаем файл описания директорий временных файлов сортировки для последующей индексации базы. |
| - | Создаем скрипт для новой базы, устанавливаем в нем переменную ''BQDB'' на каталог для новой базы. Переходим в этот каталог, создаем/редактируем файл описания структуры новой базы (возможно, с новыми областями). | + | |
| - | Создаем файл описания директорий временных файлов сортировки для последующей индексации базы. | + | |
| - | cd $BQDB | + | cd <путь до каталога с базой> |
| <редактор> bisquit.st | <редактор> bisquit.st | ||
| <редактор> bisquit.srt (пример, по 2ГБ в tmp: 2048000 /tmp) | <редактор> bisquit.srt (пример, по 2ГБ в tmp: 2048000 /tmp) | ||
| - | * Копируем заготовку из дистрибутива OpenEdge. Меняем ей кодировку на ''ibm866'': | + | * Копируем заготовку базы из дистрибутива OpenEdge. Меняем ей кодировку на ''ibm866'': |
| bq41d exec procopy '$DLC/prolang/rus/empty8 $BQDB' | bq41d exec procopy '$DLC/prolang/rus/empty8 $BQDB' | ||
| Строка 83: | Строка 75: | ||
| * (//Производительность//) Рекомендуется увеличить размер блока и кластера bi файла для увеличения производительности на запись. | * (//Производительность//) Рекомендуется увеличить размер блока и кластера bi файла для увеличения производительности на запись. | ||
| - | bq41d trunc -bi 16384 -biblocksize 16384 | + | bq41d trunc -bi 16384 -biblocksize 16 |
| + | * База готова для загрузки. | ||
| ===== Загрузка ===== | ===== Загрузка ===== | ||
| - | 1. Если требуется, редактируем файл bisquit.df, например, для изменения | + | * (//Опционально//). Если требуется, редактируем файл ''bisquit.df'', например, для изменения размещения таблиц и индексов по областям |
| - | разбиения по областям. Переходим в каталог с дампом и грузим bisquit.df | + | |
| - | _seqvals.d и _user.d: | + | |
| - | cd <dump dir> | + | * Переходим в каталог с дампом, запускаем //OpenEdge Data Dictionary// и загружаем описание ''bisquit.df'', последовательности ''_seqvals.d'', таблицу пользователей ''_user.d'', записи аутентификации ''_sec-authentication-domain.d'' и ''_sec-authentication-system.d''. Записи аутентификации необходимы в случае использования функционала 0222364 (SSO. Реализация входа по логину UNIX) начиная с патча d102. Если данный функционал не используется - записи можно не грузить или соответствующие .d-файлы могут их не содержать. |
| - | 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> | ||
| - | 2. При необходимости, переносим таблицы в другие области (с индексами | + | 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] | ||
| - | или | + | * (//Опционально//). При необходимости, переносим таблицы в другие области (с индексами или без), если это не было сделано редактированием ''bisquit.df'' |
| - | bq41d -1 -p genscript -param table.cfg,move.sh | + | bq41d tablemove table-name table-area [index-area] |
| - | bq41d exec sh move.sh | + | |
| - | 3. В этом месте лучше сделать бэкап созданной "пустой" базы с загруженной | + | Или используем процедуру ''genscript.p'' для генерации скрипта ''move.sh'' по описанию ''table.cfg''. Актуальные версии ''genscript.p'' и ''table.cfg'' поставляются в составе исходников выпускаемых патчей. Перед запуском созданного скрипта ''move.sh'' проверьте его содержание и отредактируйте при необходимости. |
| - | структурой, чтобы в случае неудачи начинать не с п.1, а из бэкапа | + | |
| - | (база еще маленькая и восстановится быстро) | + | |
| - | 4. Грузим данные (Сразу с перестройкой индексов или без. Рекомендуется | + | bq41d -1 -p genscript.p -param table.cfg,move.sh |
| - | перестройку индексов производить отдельно): | + | bq41d cmd sh move.sh |
| - | cd <dump dir> | + | * В этом месте лучше сделать бэкап созданной "пустой" базы с загруженной структурой, чтобы в случае неудачи начинать не с создания базы, а из бэкапа (база еще маленькая и восстановится быстро). |
| - | for F in *.bd*; do bq41d load $F [build indexes] || break; done | tee load.log | + | * Для увеличения производительности загрузки можно предварительно выполнить запуск брокера БД и процессов APW а также выключить механизм защиты от сбоя (запись в журнал BI). Внимание: при указании опции "-i" в случае какого-либо сбоя в загрузке необходимо будет начать процесс полностью заново, с пункта создания новой пустой базы либо восстановить ее из предварительно сделанного бэкапа. |
| - | Если какую-либо таблицу не надо загружать (напр. history), то следует | + | bq41d start -i -spin 50000 -L 102400 -bibufs 100 -B 20000 |
| - | предварительно удалить или переименовать ее суффикс (.bd) | + | |
| - | Проверяем логи (load.log). Искать "err" или "fail". | + | |
| - | Проверяем кол-во сообщений об успешных загрузках (должно соответствовать | + | |
| - | кол-ву таблиц): | + | |
| - | grep "(6256)" load.log | wc -l | + | Запуск нескольких процессов proapw позволит ускорить процесс загрузки данных. Задайте дополнительное их количество в параметрах запускающего скрипта: |
| + | |||
| + | RunBIW="yes" | ||
| + | RunAPW="yes" | ||
| + | BQNAPW="5" | ||
| + | Или используйте соответсвующие команды: | ||
| - | 5. Если индексы не создавались при загрузке, перестраиваем их (файл | + | bq41d exec probiw \$BQDB |
| - | bisquit.srt должен быть создан заранее) | + | bq41d exec proapw \$BQDB |
| + | bq41d exec proapw \$BQDB | ||
| + | bq41d exec proapw \$BQDB | ||
| + | bq41d exec proapw \$BQDB | ||
| + | bq41d exec proapw \$BQDB | ||
| - | 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 | + | |
| - | 6. Компилируем БИСквит при необходимости. | + | cd <dump dir> |
| + | for F in *.bd*; do bq41d load $F -tscope 5000 || break; done | tee load.log | ||
| - | Убираем из PROPATH все старые r-ки. | + | Если какую-либо таблицу не надо загружать (например, ''history''), то следует |
| + | предварительно ее удалить или переименовать ее суффикс (''.bd'') | ||
| - | bq41d -U bis -P *** | + | * Проверяем логи (''load.log''). Искать "''err''" или "''fail''". Проверяем количество сообщений об успешных загрузках (должно соответствовать количеству загружаемых таблиц): |
| - | run promake.p | + | grep "(6256)" load.log | wc -l |
| - | указываем исходники ../src/* | + | |
| - | каталог для r | + | |
| - | После компиляции рекомендуется собрать необходимые библиотеки. Если | + | * Строим индексы (файл ''bisquit.srt'' должен быть создан заранее). Эта операция самая ресурсозатратная, во многих случаях имеет смысл запускать ее в пакетном режиме в нерабочее время (для этого удобно использовать юниксовую команду ''at''). |
| - | bq41d.pl получается больше 2 ГБ, ее можно сделать из двух частей. | + | |
| - | Указываем нужные библиотеки в PROPATH скриптов. | + | |
| - | Библиотеки следует располагать в каталоге $BQ/lib. | + | |
| - | Документация: | + | bq41d idxbuild all -mergethreads 2 -threadnum 2 -datascanthreads 6 -B 1024 -TF 50 -TMB 64 -TB 64 -TM 32 -rusage -silent |
| - | ~~~~~~~~~~~~~ | + | |
| - | 1. Методика dump-load (актуальная версия: | + | * Компилируем БИСквит при необходимости с помощью promake, например. |
| - | http://support.bis.ru/info/misc/index.php?id=dumpload | + | Убираем из PROPATH все старые r-ки. Заходим в ''src'' и запускаем: |
| + | |||
| + | bq41d -U bis -P *** | ||
| + | run promake.p | ||
| + | |||
| + | указываем исходники: <путь>/src/* | ||
| + | указываем каталог для r | ||
| - | 2. OpenEdge Data Management: Database Administration | + | * После компиляции рекомендуется собрать необходимые библиотеки. Если ''bq41d.pl'' получается больше 2 ГБ, ее можно сделать из двух частей. Указываем нужные библиотеки в ''PROPATH'' скриптов. Библиотеки следует располагать в каталоге ''$BQ/lib''. |
| - | -> Maintaining and Monitoring Your Database | + | |
| - | -> Dumping and Loading | + | |
| - | 3. OpenEdge Deployment: Managing ABL Applications | + | ===== Документация: ===== |
| - | -> Managing R-code Libraries | + | |
| - | 4. Компиляция БИСквит: | + | - //OpenEdge Data Management: Database Administration\\ |
| - | - документация БИСквит http://support.bis.ru/docs/ | + | -> Maintaining and Monitoring Your Database\\ |
| - | - документация к патчам БИСквит | + | -> -> Maintaining Database Structure\\ |
| + | -> -> -> Dumping and Loading\\ | ||
| + | -> -> -> Maintaining indexes and tables//\\ | ||
| + | - //OpenEdge Data Management: Database Administration\\ | ||
| + | -> Maintaining and Monitoring Your Database\\ | ||
| + | -> -> Managing Performance\\ | ||
| + | -> -> -> Index use\\ | ||
| + | -> -> -> -> Rebuilding indexes//\\ | ||
| + | - //OpenEdge Deployment: Managing ABL Applications\\ | ||
| + | -> Managing R-code Libraries//\\ | ||
| + | - Компиляция:\\ | ||
| + | - Документация БИСквит http://support.bis.ru/prod/bq/core/docs/\\ | ||
| + | - Документация к патчам БИСквит//\\ | ||
| + | {{tag>progress prodb}} | ||