Различия

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

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

Следующая версия
Предыдущая версия
unix:progress:new_area [2012/11/09 20:43]
kos создано
unix:progress:new_area [2012/12/29 20:58] (текущий)
kos [Как перенести существующие таблицы в новые области?]
Строка 1: Строка 1:
-===== Проблема: Краткая суть проблемы =====+====== Методика добавления новых областей БД ======
  
-===== Условия  ​===== +=== Условия ​ === 
- +Здесь используется ​''​bq.sh''​ версии не ниже ''​v.4.5.0''​ 
-Для каких условий (окружении) применима данная ​статья +Проверить можно командой:  
- +   bq41d --ver 
-===== Симптомы: ===== +Обновить можно изhttp://​support.bis.ru/​info 
- +**//"​Текущая ​версия скрипта ​bq.sh"//​**\\ 
-В чем проявляетсясообщения об ошибках, характерные признаки +Либо использовать команды в соответствии ​с документацией OpenEdge с  
- +помощью ​интерфейса: 
-===== Причина: ===== +   bq41d exec <команда>
- +
-Какова исходная причина +
- +
-===== Диагностика===== +
- +
-Каковы объективные признаки проблемы (результаты утилит диагностики +
-или тестов). Как ее смоделировать ​и как убедиться ​в ее отсутсвии +
- +
-===== Решение:​ ===== +
- +
-Медоты решения +
- +
-===== Документация: ===== +
-  * Ссылки на первоисточники. +
- +
-===== См. также: ===== +
- +
-  * Ссылки на другие статьи. +
- +
-Рекомендуемая методика добавления новых областей ​данных для БД OpenEdge +
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
  
-I. Как добавить новые области в БД?+===== Как добавить новые области в БД? ===== 
 +  * Создайте/​отредактируйте файл описания структуры вновь добавляемых областей. ​
  
-1) Создайте/​отредактируйте файл описания структуры вновь добавляемых  +Количество и расположение экстентов БД выбирается на 
-областей. ​Количество и расположение экстентов БД выбирается на +
 усмотрение администратора банка. В файле необходимо указывать только ​ усмотрение администратора банка. В файле необходимо указывать только ​
 новые экстенты и области (существующие не указывать). Во избежание ​ новые экстенты и области (существующие не указывать). Во избежание ​
 неоднозначностей рекомендуется указывать полные абсолютные пути для ​ неоднозначностей рекомендуется указывать полные абсолютные пути для ​
 экстентов. экстентов.
 +
 Файл может располагаться в любом месте и иметь любое имя, он нужен ​ Файл может располагаться в любом месте и иметь любое имя, он нужен ​
 только для проведения операции добавления экстентов,​ после этого его ​ только для проведения операции добавления экстентов,​ после этого его ​
Строка 46: Строка 26:
 Например,​ создан файл mart.st, содержащий:​ Например,​ создан файл mart.st, содержащий:​
  
-d "​mart":​17,​32;512  /​home2/​bis/​quit41d/​db +   d "​mart":​17,​64;512  /​home2/​bis/​quit41d/​db 
-d "​mart-i":​37,​1;​8 ​  /​home2/​bis/​quit41d/​db  ​+   ​d "​mart-i":​37,​1;​8 ​  /​home2/​bis/​quit41d/​db  ​
  
-2) На остановленной базе выполнить команду добавления экстентов:​+  * На остановленной базе выполнить команду добавления экстентов:​
  
-$ bq41d struct add [<​путь>/​]mart.st ​                                  +    ​$ bq41d struct add [<​путь>/​]mart.st ​                                  
-                                                                          +    Formatting extents: ​  
-Formatting extents: ​  +    ...
-...+
  
 Если в файле описания структуры указаны абсолютные пути, то данную ​ Если в файле описания структуры указаны абсолютные пути, то данную ​
Строка 63: Строка 42:
 каталог с базой. каталог с базой.
  
-3) Проверьте получившуюся структуру БД и обновите файл bisquit.st +    * Проверьте получившуюся структуру БД и обновите файл ​**bisquit.st**
-      +
-$ bq41d struct list+
  
-Результат можно проверить по содержанию bisquit.st+    $ bq41d struct list 
 + 
 +Результат можно проверить по содержанию ​**bisquit.st**
  
 На этом операция добавления экстентов под новые области закончена, ​ На этом операция добавления экстентов под новые области закончена, ​
Строка 73: Строка 52:
 загружать данные. загружать данные.
  
-Примечание: ​ 
-Здесь используется bq.sh версии не ниже v.4.5.0 
-Проверить можно командой:​ bq41d --ver 
-Обновить можно из: http://​support.bis.ru/​info 
-    "​Текущая версия скрипта bq.sh" ​ 
-Либо использовать соответствующие команды OpenEdge с  
-помощью интерфейса:​ bq41d exec <​команда>​ 
- 
-Документация:​ 
-OpenEdge Data Management: Database Administration 
-  Maintaining and Monitoring Your Database 
-    Maintaining Database Structure 
-      OpenEdge Structure Add utility 
  
  
-II. Как перенести существующие таблицы в новые области?​+===== Как перенести существующие таблицы в новые области? ​=====
  
 Необходимость данной операции возникает,​ если некоторые таблицы уже ​ Необходимость данной операции возникает,​ если некоторые таблицы уже ​
 созданы в существующих областях БД, но должны располагаться в новых. созданы в существующих областях БД, но должны располагаться в новых.
 При небольшом кол-ве таблиц и данных для этого можно использовать ​ При небольшом кол-ве таблиц и данных для этого можно использовать ​
-команду tablemove +команду ​//**tablemove**//\\ 
-Зафиксируйте по рекомендациям БИС (файл table.cfg) или собственным  +Зафиксируйте по рекомендациям БИС (файл ​**table.cfg**) или собственным  
-требованиям список таблиц,​ подлежащих переносу в новую область.+требованиям список таблиц,​ подлежащих переносу в новую область. Актуальная версия **table.cfg** поставляется в составе исходников выпускаемых патчей.
 Для каждой из таблиц на остановленной базе выполните команду:​ Для каждой из таблиц на остановленной базе выполните команду:​
  
-$ bq41d tablemove <​table-name>​ <​table-area>​ [<​index-area>​]+   $ bq41d tablemove <​table-name>​ <​table-area>​ [<​index-area>​]
  
-Где: +__Где:__\\ 
-<​table-name>​ - имя перемещаемой таблицы +''​<//table-name//>'' ​- имя перемещаемой таблицы\\ 
-<​table-area>​ - имя области,​ в которой она должна располагаться +''​<//table-area//>'' ​- имя области,​ в которой она должна располагаться\\ 
-<​index-area>​ - имя области,​ в которой должны располагаться ее индексы+''​<//index-area//>'' ​- имя области,​ в которой должны располагаться ее индексы\\
  
-Например,​ в соответствии с table.cfg в области mart должны ​+Например,​ в соответствии с **table.cfg** в области ​**mart** должны ​
 располагаться следующие таблицы:​ располагаться следующие таблицы:​
  
-mart:​loan_mart,​deposit_mart,​account_vek,​subacct_fin+   mart:​loan_mart,​deposit_mart,​account_vek,​subacct_fin
  
 Соответственно,​ если эти таблицы были созданы в других областях, ​ Соответственно,​ если эти таблицы были созданы в других областях, ​
 необходимо перенести их командами:​ необходимо перенести их командами:​
  
-$ bq41d tablemove loan_mart ​   mart mart-i +   $ bq41d tablemove loan_mart ​   mart mart-i 
-$ bq41d tablemove deposit_mart mart mart-i +   ​$ bq41d tablemove deposit_mart mart mart-i 
-$ bq41d tablemove account_vek ​ mart mart-i +   ​$ bq41d tablemove account_vek ​ mart mart-i 
-$ bq41d tablemove subacct_fin ​ mart mart-i+   ​$ bq41d tablemove subacct_fin ​ mart mart-i
  
-Примечания:​+=== Примечания: ​====
 Если таблицы содержат большой объем данных,​ данная операция может ​ Если таблицы содержат большой объем данных,​ данная операция может ​
-потребовать значительного времени.+потребовать значительного времени, т.к. включает в себя перестройку  
 +всех связанных с данной таблицей индексов. 
 +Также следует учитывать,​ что //​tablemove//​ выполняется как одна транзакция,​ что может повлечь за собой 
 +существенное возрастание размера bi-файла. 
 +После выполнения операции проконтролируйте размер bi и при необходимости выполните:​ 
 +   $ bq41d truncate -bi 16384 -biblocksize 16384
 Статистику использования таблиц можно узнать командой:​ Статистику использования таблиц можно узнать командой:​
-$ bq41d tabanalys+   $ bq41d tabanalys
 При значительном объеме таблиц и данных,​ подлежащий переносу,​ данную ​ При значительном объеме таблиц и данных,​ подлежащий переносу,​ данную ​
 операцию,​ в некоторых случаях,​ целесообразно совместить с тотальной ​ операцию,​ в некоторых случаях,​ целесообразно совместить с тотальной ​
 оптимизацией структуры БД, выполняемой путем полного дампа всех данных  ​ оптимизацией структуры БД, выполняемой путем полного дампа всех данных  ​
-с последующей загрузкой в полностью новую структуру. +с последующей загрузкой в полностью новую структуру.\\ 
-Методика: ​http://​support.bis.ru/​info +Методика: ​[[unix:progress:​dump-load|]] 
-етодика бинарного dump/load базы БИСквит"​+ 
 +===== Документация: ===== 
 +//OpenEdge Data Management: Database Administration\\ 
 +-> Maintaining and Monitoring Your Database\\ 
 +-> -> Maintaining Database Structure\\ 
 +-> -> -> OpenEdge Structure Add utility\\ 
 +-> -> -> Maintaining indexes and tables//\\
  
-Документация: +===== Смтакже ===== 
-OpenEdge Data ManagementDatabase Administration +[[unix:progress:​dump-load|]]
-  Maintaining and Monitoring Your Database +
-    Maintaining Database Structure +
-      Maintaining indexes and tables+