Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
unix:progress:dump-load [2012/11/09 22:54]
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
Строка 22: Строка 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>​
  
 Проверяем корректность выгрузки файлов (содержиемое). Проверяем корректность выгрузки файлов (содержиемое).
Строка 35: Строка 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
Строка 48: Строка 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
Строка 65: Строка 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'
Строка 84: Строка 75:
    * (//​Производительность//​) Рекомендуется увеличить размер блока и кластера bi файла для увеличения производительности на запись.    * (//​Производительность//​) Рекомендуется увеличить размер блока и кластера bi файла для увеличения производительности на запись.
  
-   bq41d trunc -bi 16384 -biblocksize ​16384+   bq41d trunc -bi 16384 -biblocksize ​16
  
    * База готова для загрузки.    * База готова для загрузки.
Строка 90: Строка 81:
 ===== Загрузка ===== ===== Загрузка =====
  
-   * Если требуется,​ редактируем файл ''​bisquit.df'',​ например,​ для изменения размещения таблиц и индексов по областям+   ​* ​(//​Опционально//​). ​Если требуется,​ редактируем файл ''​bisquit.df'',​ например,​ для изменения размещения таблиц и индексов по областям 
 + 
 +   * Переходим в каталог с дампом,​ запускаем //OpenEdge Data Dictionary//​ и загружаем описание ''​bisquit.df'',​ последовательности ''​_seqvals.d'',​ таблицу пользователей ''​_user.d'',​ записи аутентификации ''​_sec-authentication-domain.d''​ и ''​_sec-authentication-system.d''​. Записи аутентификации необходимы в случае использования функционала 0222364 (SSO. Реализация входа по логину UNIX) начиная с патча d102. Если данный функционал не используется - записи можно не грузить или соответствующие .d-файлы могут их не содержать. ​
  
-   * Переходим в каталог с дампом,​ запускаем //OpenEdge Data Dictionary//​ и загружаем ''​bisquit.df'',​ ''​_seqvals.d''​ и ''​_user.d''​ 
  
   cd <dump dir>   cd <dump dir>
Строка 98: Строка 90:
         Data Dictionary         Data Dictionary
         Admin -> Load Data and Definitions ->         Admin -> Load 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>​
  
-2. При необходимости,​ переносим таблицы в другие области (с индексами ​ + 
-   или без):+   * (//​Опционально//​). При необходимости,​ переносим таблицы в другие области (с индексами или без), если это не было сделано редактированием ''​bisquit.df''​
  
    bq41d tablemove table-name table-area [index-area]    bq41d tablemove table-name table-area [index-area]
  
-   или+Или используем процедуру ''​genscript.p''​ для генерации скрипта ''​move.sh''​ по описанию ''​table.cfg''​. Актуальные версии ''​genscript.p''​ и ''​table.cfg''​ поставляются в составе исходников выпускаемых патчей. Перед запуском созданного скрипта ''​move.sh''​ проверьте его содержание и отредактируйте при необходимости.
  
-   bq41d -1 -p genscript -param table.cfg,​move.sh +   bq41d -1 -p genscript.p -param table.cfg,​move.sh 
-   ​bq41d ​exec sh move.sh+   ​bq41d ​cmd sh move.sh
  
-3. В этом месте лучше сделать бэкап созданной "​пустой"​ базы с загруженной +   ​* ​В этом месте лучше сделать бэкап созданной "​пустой"​ базы с загруженной структурой,​ чтобы в случае неудачи начинать не с создания базы, а из бэкапа (база еще маленькая и восстановится быстро)
-   структурой,​ чтобы в случае неудачи начинать не с п.1, а из бэкапа ​ +   * Для увеличения производительности загрузки можно предварительно выполнить запуск брокера БД и процессов APW а также выключить механизм защиты от сбоя (запись в журнал BI). Внимание:​ при указании опции "​-i"​ в случае какого-либо сбоя в загрузке необходимо будет начать процесс полностью заново,​ с пункта создания новой пустой базы либо восстановить ее из предварительно сделанного бэкапа.
-   (база еще маленькая и восстановится быстро)+
  
-4. Грузим данные (Сразу с перестройкой индексов или без. Рекомендуется +   bq41d start -i -spin 50000 -L 102400 -bibufs 100 -B 20000
-   ​перестройку индексов производить отдельно):​+
  
-   cd <dump dir> +Запуск нескольких процессов proapw позволит ускорить процесс загрузки данныхЗадайте дополнительное их количество в параметрах запускающего скрипта:​
-   for F in *.bd*; do bq41d load $F [build indexes] || break; done | tee load.log+
  
-   Если какую-либо таблицу не надо загружать (напр. history), то следует +   RunBIW="​yes"​ 
-   предварительно удалить или переименовать ее суффикс (.bd) +   RunAPW="yes
-   ​Проверяем логи (load.log). Искать ​"err" ​или "​fail"​. +   BQNAPW="5"
-   ​Проверяем кол-во сообщений об успешных загрузках (должно соответствовать  +
-   ​кол-ву таблиц):​ +
- +
-   grep "(6256)" ​load.log | wc -l+
        
 +Или используйте соответсвующие команды:​
  
-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.+   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''​ получается больше ​ГБ, ее можно сделать из двух частей. Указываем нужные библиотеки в ''​PROPATH''​ скриптов. Библиотеки следует располагать в каталоге ''​$BQ/​lib''​.
-     -> Maintaining and Monitoring Your Database +
-        -> Dumping and Loading+
  
-3. OpenEdge DeploymentManaging 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}}