Различия
Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
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 Management: Database Administration | + | [[unix:progress:dump-load|]] |
- | Maintaining and Monitoring Your Database | + | |
- | Maintaining Database Structure | + | |
- | Maintaining indexes and tables | + | |