Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
unix:progress:new_area [2012/11/09 20:48] kos |
unix:progress:new_area [2012/12/29 20:58] (текущий) kos [Как перенести существующие таблицы в новые области?] |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ===== Рекомендуемая методика добавления новых областей данных для БД OpenEdge ===== | + | ====== Методика добавления новых областей БД ====== |
| + | |||
| + | === Условия === | ||
| + | Здесь используется ''bq.sh'' версии не ниже ''v.4.5.0'' | ||
| + | Проверить можно командой: | ||
| + | bq41d --ver | ||
| + | Обновить можно из: http://support.bis.ru/info | ||
| + | **//"Текущая версия скрипта bq.sh"//**\\ | ||
| + | Либо использовать команды в соответствии с документацией OpenEdge с | ||
| + | помощью интерфейса: | ||
| + | bq41d exec <команда> | ||
| ===== Как добавить новые области в БД? ===== | ===== Как добавить новые области в БД? ===== | ||
| - | ===== Как перенести существующие таблицы в новые области? ===== | + | * Создайте/отредактируйте файл описания структуры вновь добавляемых областей. |
| - | + | ||
| - | + | ||
| - | ===== Условия ===== | + | |
| - | + | ||
| - | Для каких условий (окружении) применима данная статья | + | |
| - | + | ||
| - | ===== Симптомы: ===== | + | |
| - | + | ||
| - | В чем проявляется: сообщения об ошибках, характерные признаки | + | |
| - | + | ||
| - | ===== Причина: ===== | + | |
| - | + | ||
| - | Какова исходная причина | + | |
| - | + | ||
| - | ===== Диагностика: ===== | + | |
| - | + | ||
| - | Каковы объективные признаки проблемы (результаты утилит диагностики | + | |
| - | или тестов). Как ее смоделировать и как убедиться в ее отсутсвии | + | |
| - | + | ||
| - | ===== Решение: ===== | + | |
| - | + | ||
| - | Медоты решения | + | |
| - | + | ||
| - | ===== Документация: ===== | + | |
| - | * Ссылки на первоисточники. | + | |
| - | + | ||
| - | ===== См. также: ===== | + | |
| - | + | ||
| - | * Ссылки на другие статьи. | + | |
| - | + | ||
| - | Рекомендуемая методика добавления новых областей данных для БД OpenEdge | + | |
| - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | + | |
| - | + | ||
| - | I. Как добавить новые области в БД? | + | |
| - | 1) Создайте/отредактируйте файл описания структуры вновь добавляемых | + | Количество и расположение экстентов БД выбирается на |
| - | областей. Количество и расположение экстентов БД выбирается на | + | |
| усмотрение администратора банка. В файле необходимо указывать только | усмотрение администратора банка. В файле необходимо указывать только | ||
| новые экстенты и области (существующие не указывать). Во избежание | новые экстенты и области (существующие не указывать). Во избежание | ||
| неоднозначностей рекомендуется указывать полные абсолютные пути для | неоднозначностей рекомендуется указывать полные абсолютные пути для | ||
| экстентов. | экстентов. | ||
| + | |||
| Файл может располагаться в любом месте и иметь любое имя, он нужен | Файл может располагаться в любом месте и иметь любое имя, он нужен | ||
| только для проведения операции добавления экстентов, после этого его | только для проведения операции добавления экстентов, после этого его | ||
| Строка 50: | Строка 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: | + | ... |
| - | ... | + | |
| Если в файле описания структуры указаны абсолютные пути, то данную | Если в файле описания структуры указаны абсолютные пути, то данную | ||
| Строка 67: | Строка 42: | ||
| каталог с базой. | каталог с базой. | ||
| - | 3) Проверьте получившуюся структуру БД и обновите файл bisquit.st | + | * Проверьте получившуюся структуру БД и обновите файл **bisquit.st** |
| - | + | ||
| - | $ bq41d struct list | + | |
| - | Результат можно проверить по содержанию bisquit.st | + | $ bq41d struct list |
| + | |||
| + | Результат можно проверить по содержанию **bisquit.st** | ||
| На этом операция добавления экстентов под новые области закончена, | На этом операция добавления экстентов под новые области закончена, | ||
| Строка 77: | Строка 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 | + | |