Это старая версия документа.
Содержание
Методика добавления новых областей БД
Условия
Здесь используется bq.sh
версии не ниже v.4.5.0
Проверить можно командой:
bq41d --ver
Обновить можно из: http://support.bis.ru/info
«Текущая версия скрипта bq.sh»
Либо использовать команды в соответствии с документацией OpenEdge с
помощью интерфейса:
bq41d exec <команда>
Как добавить новые области в БД?
- Создайте/отредактируйте файл описания структуры вновь добавляемых областей.
Количество и расположение экстентов БД выбирается на усмотрение администратора банка. В файле необходимо указывать только новые экстенты и области (существующие не указывать). Во избежание неоднозначностей рекомендуется указывать полные абсолютные пути для экстентов.
Файл может располагаться в любом месте и иметь любое имя, он нужен только для проведения операции добавления экстентов, после этого его можно удалить.
Например, создан файл mart.st, содержащий:
d "mart":17,64;512 /home2/bis/quit41d/db d "mart-i":37,1;8 /home2/bis/quit41d/db
- На остановленной базе выполнить команду добавления экстентов:
$ bq41d struct add [<путь>/]mart.st Formatting extents: ...
Если в файле описания структуры указаны абсолютные пути, то данную команду можно выполнять из произвольного каталога. Но если файле описания структуры указаны относительные пути (например, '.') экстенты будут создаваться относительно текущего каталога запуска команды. Учитывайте это, при необходимости можно предварительно перейти в каталог с базой.
- Проверьте получившуюся структуру БД и обновите файл bisquit.st
$ bq41d struct list
Результат можно проверить по содержанию bisquit.st
На этом операция добавления экстентов под новые области закончена, можно приступать к загрузке описаний таблиц в новые области и загружать данные.
Как перенести существующие таблицы в новые области?
Необходимость данной операции возникает, если некоторые таблицы уже
созданы в существующих областях БД, но должны располагаться в новых.
При небольшом кол-ве таблиц и данных для этого можно использовать
команду tablemove
Зафиксируйте по рекомендациям БИС (файл table.cfg) или собственным
требованиям список таблиц, подлежащих переносу в новую область.
Для каждой из таблиц на остановленной базе выполните команду:
$ bq41d tablemove <table-name> <table-area> [<index-area>]
Где:
<table-name>
- имя перемещаемой таблицы
<table-area>
- имя области, в которой она должна располагаться
<index-area>
- имя области, в которой должны располагаться ее индексы
Например, в соответствии с table.cfg в области mart должны располагаться следующие таблицы:
mart:loan_mart,deposit_mart,account_vek,subacct_fin
Соответственно, если эти таблицы были созданы в других областях, необходимо перенести их командами:
$ bq41d tablemove loan_mart mart mart-i $ bq41d tablemove deposit_mart mart mart-i $ bq41d tablemove account_vek mart mart-i $ bq41d tablemove subacct_fin mart mart-i
Примечания:
Если таблицы содержат большой объем данных, данная операция может потребовать значительного времени, т.к. включает в себя перестройку всех связанных с данной таблицей индексов. Также следует учитывать, что tablemove выполняется как одна транзакция, что может повлечь за собой существенное возрастание размера bi-файла. После выполнения операции проконтролируйте размер bi и при необходимости выполните:
$ bq41d truncate -bi 16384 -biblocksize 16384
Статистику использования таблиц можно узнать командой:
$ bq41d tabanalys
При значительном объеме таблиц и данных, подлежащий переносу, данную
операцию, в некоторых случаях, целесообразно совместить с тотальной
оптимизацией структуры БД, выполняемой путем полного дампа всех данных
с последующей загрузкой в полностью новую структуру.
Методика: http://support.bis.ru/info
«Методика бинарного dump/load базы БИСквит»
Документация:
OpenEdge Data Management: Database Administration
→ Maintaining and Monitoring Your Database
→ → Maintaining Database Structure
→ → → OpenEdge Structure Add utility
→ → → Maintaining indexes and tables