Этот сайт посвящается администрированию баз данных OpenEdge Progress.
Не корысти ради, а познания для!

С уважением,
Валерий Башкатов
Сайт разработан при участии компании Progress Technologies, официального дистрибьютора Progress Software Corp. на территории стран СНГ и Латвии.

RSS RSS подписка на обновления сайта

Поиск по сайту

Лучшие материалы

Orphus System
На сайте функционирует система коррекции ошибок. Обнаружив неточность в тексте, выделите её и нажмите Ctrl+Enter



Результаты опроса: Нужны ли книги по Progress OpenEdge на русском языке? (опрос проводился с мая 2009 по ноябрь 2010)

Да, нужны. Потому что будет легче понять материал - 268
Нет, не нужны. Достаточно материалов на английском языке - 10
Не знаю, мне всё равно - 6

А знаете ли вы что..



Утилиты OpenEdge RDBMS



Основы баз данных OpenEdge
Защита данных
Поддержка и мониторинг базы данных
Команды запуска и останова
Параметры запуска баз данных
Утилиты OpenEdge RDBMS
     Утилита PROMON
        Запуск PROMON
        Опция PROMON User Control
        Опция PROMON Locking and Waiting statistics
        Опция PROMON Block Access
        Опция PROMON Record Locking Table
        Опция PROMON Activity
        Опция PROMON Shared Resources
        Опция PROMON Database Status
        Опция PROMON Shut Down Database
        PROMON R&D Advanced Options
        R&D Status Displays
           Database
           Backup
           Servers
           Processes/Clients
           Files
           Lock Table
           Buffer Cache
           Logging Summary
           BI log
           AI log
           Two-phase Commit
           Startup Parameters
           Shared Resources
           Shared Memory Segments
           AI Extents
           Database Service Manager
        R&D Activity Displays
           Activity Summary
           Activity Servers
           Activity Buffer Cache
           Activity Page Writer
           Activity BI Log
           Activity AI Log
           Activity Lock Table
           Activity I/O Operations By Type
           Activity I/O Operations by File
           Activity Space Allocation
           Activity Index
           Activity Record
           Activity Other
        R&D Other Displays
           Performance Indicators
           I/O Operations by Process
           Lock Requests by User
           Checkpoints
           I/O Operations by User by Table
           I/O Operations by User by Index
        R&D Administrative Functions
           Check Active Transaction Status
           Check Two-Phase Transactions
           Resolve Limbo Transactions
           Adjust Latch Options
           Adjust Page Writer Options
           Restricted Options
           Terminate a Server
        R&D Adjust Monitor Options
        Опция PROMON 2PC Transactions Control
        Опция PROMON Resolve 2PC Limbo Transactions
        Опция PROMON 2PC Coordinator Information
        Опция PROMON Resolve JTA Transactions
        Опция PROMON Modify Defaults
     Утилита PROSTRCT
        PROSTRCT ADD
        PROSTRCT ADDONLINE
        PROSTRCT BUILDDB
        PROSTRCT CLUSTER CLEAR
        PROSTRCT CREATE (COPY)
        PROSTRCT LIST
        PROSTRCT REMOVE
        PROSTRCT REORDER AI
        PROSTRCT REPAIR
        PROSTRCT STATISTICS
        PROSTRCT UNLOCK
     Утилита PROUTIL
        Классификатор PROUTIL 2PHASE BEGIN
        Классификатор PROUTIL 2PHASE COMMIT
        Классификатор PROUTIL 2PHASE END
        Классификатор PROUTIL 2PHASE MODIFY
        Классификатор PROUTIL 2PHASE RECOVER
        Классификатор PROUTIL AUDITARCHIVE
        Классификатор PROUTIL AUDITLOAD
        Классификатор PROUTIL BIGROW
        Классификатор PROUTIL BULKLOAD
        Классификатор PROUTIL BUSY
        Классификатор PROUTIL CHANALYS
        Классификатор PROUTIL CODEPAGE-COMPILER
        Классификатор PROUTIL CONV910
        Классификатор PROUTIL CONVCHAR
        Классификатор PROUTIL CONVFILE
        Классификатор PROUTIL DBANALYS
        Классификатор PROUTIL DBAUTHKEY
        Классификатор PROUTIL DESCRIBE
        Классификатор PROUTIL DBIPCS
        Классификатор PROUTIL DISABLEAUDITING
        Классификатор PROUTIL DISABLEJTA
        Классификатор PROUTIL DISABLEKEYEVENTS
        Классификатор PROUTIL DISPTOSSCREATELIMITS
        Классификатор PROUTIL DUMP
        Классификатор PROUTIL DUMPSPECIFIED
        Классификатор PROUTIL ENABLEAUDITING
        Классификатор PROUTIL ENABLEJTA
        Классификатор PROUTIL ENABLEKEYEVENTS
        Классификатор PROUTIL ENABLELARGEFILES
        Классификатор PROUTIL ENABLELARGEKEYS
        Классификатор PROUTIL ENABLESEQ64
        Классификатор PROUTIL HOLDER
        Классификатор PROUTIL IDXACTIVATE
        Классификатор PROUTIL IDXANALYS
        Классификатор PROUTIL IDXBUILD
        Классификатор PROUTIL IDXCHECK
        Классификатор PROUTIL IDXCOMPACT
        Классификатор PROUTIL IDXFIX
        Классификатор PROUTIL IDXMOVE
        Классификатор PROUTIL IOSTATS
        Классификатор PROUTIL LOAD
        Классификатор PROUTIL MVSCH
        Классификатор PROUTIL RCODEKEY
        Классификатор PROUTIL REVERT
        Классификатор PROUTIL SETAREACREATELIMIT
        Классификатор PROUTIL SETAREATOSSLIMIT
        Классификатор PROUTIL SETBLOBCREATELIMIT
        Классификатор PROUTIL SETBLOBTOSSLIMIT
        Классификатор PROUTIL SETTABLECREATELIMIT
        Классификатор PROUTIL SETTABLETOSSLIMIT
        Классификатор PROUTIL TABANALYS
        Классификатор PROUTIL TABLEMOVE
        Классификатор PROUTIL TRUNCATE AREA
        Классификатор PROUTIL TRUNCATE BI
        Классификатор PROUTIL UPDATESCHEMA
        Классификатор PROUTIL UPDATEVST
        Классификатор PROUTIL WBREAK-COMPILER
     Утилита RFUTIL
        Классификатор RFUTIL AIARCHIVER DISABLE
        Классификатор RFUTIL AIARCHIVER ENABLE
        Классификатор RFUTIL AIARCHIVER END
        Классификатор RFUTIL AIARCHIVER SETDIR
        Классификатор RFUTIL AIARCHIVER SETINTERVAL
        Классификатор RFUTIL AIARCHIVE EXTENT
        Классификатор RFUTIL AIMAGE AIOFF
        Классификатор RFUTIL AIMAGE BEGIN
        Классификатор RFUTIL AIMAGE END
        Классификатор RFUTIL AIMAGE EXTENT EMPTY
        Классификатор RFUTIL AIMAGE EXTENT FULL
        Классификатор RFUTIL AIMAGE EXTENT LIST
        Классификатор RFUTIL AIMAGE EXTRACT
        Классификатор RFUTIL AIMAGE NEW
        Классификатор RFUTIL AIMAGE QUERY
        Классификатор RFUTIL AIMAGE SCAN
        Классификатор RFUTIL AIMAGE TRUNCATE
        Классификатор RFUTIL MARK BACKEDUP
        Классификатор RFUTIL ROLL FORWARD
        Классификатор RFUTIL ROLL FORWARD RETRY
        Классификатор RFUTIL SEQUENCE
     Прочие утилиты администрирования баз данных
        Утилита DBMAN
        Утилита DBTOOL
        Утилита DBUTIL с классификатором CMPDB
        Утилита PROADSV
        Утилита PROBKUP
        Утилита PROCLUSTER
        Утилита PROCOPY
        Утилита PRODB
        Утилита PRODEL
        Утилита Progress Explorer
        Утилита PROLOG
        Утилита PROREST (COPY)
     SQL утилиты
        Утилита SQLDUMP
        Утилита SQLLOAD
        Утилита SQLSCHEMA
Виртуальные системные таблиц (VST)


Утилита PROMON


Утилита PROMON является встроенным средством мониторинга и контроля производительность базы данных OpenEdge. Работа утилиты основывается на данных виртуальных таблиц базы данных. В этой главе будут описаны принципы работы этой утилиты.


Запуск PROMON

Запуск утилиты осуществляется следующей командой:

promon db-name

Где, db-name, указывает имя базы для мониторинга.

Когда вы запускаете PROMON, на экране будет отображено следующее основное меню:

OpenEdge MONITOR Version 10

Database: /usr/wrk/sports2000

1. User Control
2. Locking and Waiting Statistics
3. Block Access
4. Record Locking Table
5. Activity
6. Shared Resources
7. Database Status
8. Shut Down Database
 
R&D. Advanced Options
T. 2PC Transactions Control
L. Resolve 2PC Limbo Transactions
C. 2PC Coordinator Information
 
J. Resolve JTA Transactions
 
M. Modify Defaults
Q. Quit
 
Enter your selection:
 
Далее будут описано каждое меню PROMON.
 
Если вы выберите опции от 1 до 4 или T, будет отображено следующее окно:
 
1. Display all entries
2. Match a user number
3. Match a range of user numbers
 
Q. Return to main menu
 
Enter your selection:
 
После появления первичного экран, любой выбранной опции, вы можете нажать U для постоянного мониторинга тех же параметров. По умолчанию, интервал мониторинга восемь секунд, но он может быть изменен с помощью экрана Modify Defaults из основного меню утилиты (опция M).
 
Примечание:
 
  • Для сбора данных, монитор ограничивает доступ к разделяемой памяти всех пользователей на мгновения для того чтобы снять моментальный снимок состояния. Следовательно, не стоит использовать монитор в случае высокой загрузки системы.
  • Несомненно выходные данные монитора необычно полезны, и они не менее полезны при отладочных работах при решении какой-либо проблемы.
 
Опция PROMON User Control

Данная опция отображает информацию о каждом процессе базы данных. На следующем рисунке показана отображаемая им информации:

Назначение полей этой таблицы следующее:

Usr
   Порядковый номер пользователя, который присваивается последовательно процессам базы данных с момента ее запуска. Брокерский процесс всегда имеет номер ноль (0).

Name
   Имя пользователя, имя конечного пользователя/процесса.

Type
   Следующая таблица содержит четкий список типов процессов, которые могут быть отображены в этом поле:
Значение
Тип процесса 
 AIMD
 Демон утилиты after-image file management
 AIW  Процесс After-Image Writer (AIW)
 APW  Процесс Asynchronous Page Writer (APW)
 AUDA
 Аудиторский процесс архивации
 AUDL  Аудиторский процесс загрузки
 BAT  Фоновый пользователь
 BIND  Утилит двоичной выгрузки
 BINL  Утилит двоичной загрузки
 BIW
 Before-Image Writer
 BKUP  Online резервное копирование
 BROK  Процесс брокера
 FMA  Open Edge Management Monitor (ранее Fathom™ Management)
 IACT  Утилита активации индексов
 IDXC  Утилиты сжатия индексов
 IDXF  Утилита исправления индексов
 IDXM
 Утилита перемещения индексов
 MON  Процесс монитора
 PSA  Утилита PROSTRCT ADD
 QUIE  Утилита PROQUIET
 REMC  Удаленный клиент
 RFUT  Утилита RFUTIL
 RPLA  OpenEdge Replication Site Replication Agent.
 RPLE
 OpenEdge Replication Site Replication online enable.
 RPLS  OpenEdge Replication Site Replication Server.
 RPLT  OpenEdge Replication Site Replication Transition.
 RPLU  OpenEdge Replication Site Replication Utilities.
 SELF  Самообслуживаемый клиент
 SERV
 Сервер удаленных клиентов
 SHUT  Процесс остановки базы данных
 SQSC  Утилита SQLSCHEMA
 SQDP  Утилита SQLDUMP
 SQLD  Утилита SQLLOAD
 SQSV
 Сервер SQL
 TBLM  Утилита перемещения таблицы
 WDOG  Watchdog


Wait
   Указывает, что процесс ожидает блокировку или замок. Следующая таблица перечисляет наиболее общие значения и описывает ресурсы и события, связанные с каждым из них:

 
Значение
 Описание
  Ожидание замка 
 REC  Замок записи
 IX  Замок индекса
 SCHE
 Замок схемы
 TRAN  Совершение транзакции
 TXB  Завершение транзакции - режим блокировки модификаций
 TXE  Завершение транзакции - режим завершения блокировки
 TXS  Завершение транзакции – общий замок
TXX
 Завершение транзакции – эксклюзивный замок
  Ожидание ресурса 
 AIRD  Чтение буфера After-image с диска
 AIWR  Запись буфера After-image на диск
 BIRD  Чтение буфера Before-image с диска
 BIWR
 Запись буфера Before-image на диск
 BKEX  Эксклюзивная блокировка в буфере базы данных
 BKSH  Общая блокировка в буфере базы данных
 BKSI  Общая блокировка с дальнейшим изменением буфера базы данных
 BUFF
 Общедоступный буфер
 DB  Сервер базы данных
 DBBK  Резервное копирование буфера базы данных
 DBRD  Чтение буфера базы данных с диска
 DBWR
 Запись буфера базы данных на диск
 DEAD  Процесс ожидает удаления из списка процессов (появляется если к процессу была применена команда kill -9 под Unix)
 RGET
 Получение блокировки строки
 SRPL  Подтверждение агента репликации
 AIB  Блокировка буфера After-image
 BFP  Блокировка буферного пула
 BHT  Блокировка хеш-таблицы буферного пула
 BUF  Блокировка буфера буферного пула
 CPQ  Блокировка очереди контрольной точки (checkpoint)
 DLC  Удаления индекса из цепочки
 GST  Блокировка глобальной области хранения
 IXD  Блокировка удаления индекса из цепочки
 LKF  Замок свободной цепочки таблицы блокировок
 LKP  Замок очистки таблицы блокировок
 LKT  Замок таблицы блокировок.
 MTX  Блокировка распределения журнала
 PWQ  Замок очереди страничных писателей (Page writer)
 SCH  Общий замок кэша схемы.
 SEQ  Замок кэша секвенций
 TXQ  Замок очереди транзакции
 TXT  Замок таблицы транзакций
 USR  Замок таблицы пользователей


Так же в этой колонке можно увидеть следующие значения:
 
  • BF2
  • BF3
  • BF4
  • BIB
  • LRI
  • LRX
  • OM

Предыдущие значения используются на очень короткие периоды времени (секунды, и даже миллисекунды), и используются исключительно внутри OpenEdge RDBMS.

Area, Dbkey
   Если в поле Wait указывается REC, то комбинация из номера области и ключа базы, идентифицирует запись.

Trans
   Номер транзакции, если она активна. После старта брокера, номера последовательно присваиваются каждой транзакции в базе данных.

PID
   ID процесса получившего доступ из операционной системы. Для удаленных клиентов обычно отображается ноль (0).

Sem
   Номер семафора, используемого процессом. Каждый процесс использует исключительно один семафор. Менеджер базы данных для внутренних целей использует два семафора (номера 1 и 2) и назначает по одному семафору каждый раз при подключении процессов к базе данных, начиная с брокера.

Srv
   Для удаленных клиентов (REMC), номер пользователя относительно сервера на котором работает клиент.

Login
   Дата старта процесса

Time
   Время старта процесса.


Опция PROMON Locking and Waiting statistics

Отображает информацию о блокировках и ожиданиях каждого процесса базы данных. Первые две линии отображают совокупную статистику (с момента старта брокера) для всех пользователей.



Назначение полей:

Type
   Блокировка или ожидание. Для каждого процесса отображается две линии. Первая показывает количество записей, транзакций и полученные блокировки схемы, а вторая отображает количество времени ожидания получения одной из этих блокировок.
 
Usr
   Номер процесса пользователя. Номером 999 представлены все пользователи.
 
Name
   Имя пользователя, для клиентского процесса.
 
Record
   Для типа блокировки, общее количество заблокированных записей. Для типа ожидания, количество времени, ожидаемого пользователем для получения замка записи. Общее число указанно только для «живых» процессов.
 
Trans
   Для типа блокировки, количество транзакционных блокировок. Транзакционная блокировка возникает когда запись удаляется, если же транзакция в итоге отменяется, запись не удаляется. Для типа ожидания, количество времени ожидания затраченное пользователем для получения доступа или пропуска записи помеченной на удаление. Такое транзакционное ожидание соответствует значению TSK описанном в User Control (опция 1).
 
Schema
   Для типа блокировки (Lock), общее количество полученных блокировок схемы. Для типа ожидания (Wait), количество времени ожидаемое пользователем для получения блокировки схемы. (Существует только одна единовременная блокировка, поскольку только один пользователь может в один момент времени изменять схему).
 

Опция PROMON Block Access

Отображает статистику доступа к буферному пулу базы данных.



Первая линия отображает общую информацию по всем пользователям. Эти шесть колонок чтения и записи относятся к дисковому вводу/выводу. Чтение и запись происходит по одному блоку. Размер блока может изменяться в зависимости от системы, но обычно это 512 байт, 1024 байт или 2048 байт.\

Назначение полей:

Type
Это поле всегда имеет значение Acc.
 
Usr
Номер пользовательского процесса.
 
Name
Имя пользователя для клиентского процесса.
 
DB Reqst
Количество попыток поиска буфера базы данных, прежде чем он был найден. Буфер ищется системой каждый раз когда процесс намеревается получить доступ к записи. Если блок содержащий необходимую запись уже в памяти, в дисковом чтении нет необходимости. Если отношение DB Reqst к DB Read не велико (десять к одному или выше), можно рассмотреть вариант увеличения значения параметра Blocks in Database Buffers (-B). Независимо от количества доступных буферов, произвольный доступ к записям вызывает меньше запросов на чтение базы данных с диска чем последовательный доступ.
 
DB Read
Количество прочтенных блоков базы данных. Блок базы данных, содержащий запись,  будет считан с диска в случае если он не будет обнаружен в буферном пуле. При повторном запросе в режиме только чтения, OpenEdge RDBMS использует систему частных буферов, если они доступны, а не общий буферный пул.
 
DB Write
Количество блоков база данных, записанных на диск. Как только все буферы базы данных заполнены, каждое последующее чтение с диска будет перезаписывать существующие блоки. Если же перезаписываемый блок содержит измененные данные, то предварительно он будет записан на диск. Это верно для большинства записываемых блоков.
 
BI Read
Количество чтения блоков Before-image. Например, когда BI файл читается в случае отмены транзакции. BI файл имеет собственный одноблочный входной буфер и не использует буферный пул базы данных.
 
BI Write
Количество записанных BI блоков.  Когда запись изменяется, предварительно ее копия записывается в BI файл. Когда транзакция завершена, последний BI блок записывается на диск, если база данных запущена в режиме полной поддержки целостности. Такая пост-операционная запись на диск объясняет относительно  высокое количество BI записей, но запись может быть задержана использованием параметра запуска Delay BI File Write (-Mf).
 
Дополнительно к копиям записей, менеджер базы данных записывает в BI файл различные примечания и данные, необходимые для восстановления поврежденной базы данных. BI файл имеет собственный одноблочный входной буфер и не использует буферный пул базы данных.
 
AI Read
Количество чтений блоков After-image. AI файлы читаются во время процедуры восстановления (crash recovery). AI файл имеет собственный одноблочный I/O буфер и использует буферный пул базы данных.
 
AI Write
Количество записанных AI блоков. При работе с базой данных с включенным механизмом after-imaging, копия каждого примечания, записанного в BI файл, также пишется и в AI файл.
 


Опция PROMON Record Locking Table

Отображает содержимое таблицы блокировок. Каждая строка соответствует записи в таблице блокировок. Таблица блокировок содержит записи о всех имеющихся и запрошенных блокировках в базе данных.  Следующий рисунок показывает, как это выглядит в PROMON:



Размер таблицы блокировок устанавливается параметром запуска Locking Table Entries (-L).
 
Поля, указанной выше таблицы означают следующее:
 
Usr
Номер пользователя

Name
Имя пользователя для клиентских процессов

Chain
Тип цепочки, всегда равен REC - цепочка блокировок записей.

#
Номер блокировки записи в цепочке. Таблица блокировок разделена на цепочки, закрепленные в хеш-таблицах. Эти цепочки обеспечивают быстрый поиск блокировки записи по Rec-id.

Rec-id
ID записи для таблицы блокировок. Rec-id идентифицирует каждую записи блокированную в базе данных.

Table
ID блокированной таблицы.

Lock
Один из пяти типов блокировок: X (exclusive lock), S (share lock), IX (intent exclusive lock), IS (intent share lock) и SIX (общая блокировка таблицы с намерением установить эксклюзивную блокировку записи).

Flags
Существует пять возможных видов флагов, которые описаны в следующей таблице:
 
Флаг
Имя
Описание
 L  Limbo lock  Клиент выпустил запись, но транзакция не завершилась. Запись не будет разблокирована пока транзакция не будет завершена.
 P  Purged lock entry  Блокировка больше не нужна
 Q  Queued lock request  Ставит в очередь запрос на блокированную другим процессом запись.
 U  Upgrade request  Запрос пользователя на изменения типа блокировки с SHARE на EXCLUSIVE, вынужден ожидать завершения работы другого процесса, блокирующего конфликтный замок.
 H  No hold  Установка флага “nohold”


Trans State
Статус транзакции. Статусы описаны в следующей таблице:
 
Статус
Описание
 Begin  Начало транзакции и формирование первой записи о старте.
 Active  Транзакция в процессе работы
 Dead  Транзакция завершена, но разблокировка не выполнена.
 Prep  Транзакция подготовлена к стадии 1 (ready to commit), но был послан ответ ready-to-commit
 Phase 1  Транзакция в фазе 1
 Phase 2  Транзакция в фазе 2
 C  Для механизма two-phase commit. Регистрация пользователя для координатора транзакций.
 R  Готов к завершению
 L  Не определенная транзакция
 Active JTA  Транзакция к настоящему моменту выполняется
 Idle JTA  В настоящее время транзакция не выполняется
 Prepared JTA  Транзакция подготовлена
 RollbackOnly
JTA
 В транзакции возникла ошибка
 Committed JTA  Транзакция в процессе завершения


Trans ID
ID блокирующей транзакции

 
Опция PROMON Activity

Показывает краткий обзор системной активности.



Где,

Event
События, которые произошли в системе, в общем количестве и количестве событий в секунду. Следующая таблица определяет типы событий в поле Event. Для каждого события, PROMON отображает общее количество возникновения события и количество возникающих событий в секунду.
 
Тип события
Описание
 Commits  Количество завершенных транзакций
 Undos  Количество отмененных транзакций
 Record Updates  Количество измененных записей
 Record Reads  Количество прочтенных записей
 Record Creates  Количество созданных записей
 Record Deletes  Количество удаленных записей
 DB Writes  Количество боков базы данных, записанных на диск
 DB Reads  Количество боков базы данных прочтенных с диска
 BI Writes  Количество BI блоков, записанных на диск
 BI Reads  Количество BI блоков, прочтенных с диска
 AI Writes  Количество AI блоков, записанных на диск
 Record Locks  Количество использованных блокировок записей
 Record Waits  Количество ожиданий менеджером базы данных для получения доступа к блокированной записи.
 Checkpoints  Количество выполненных контрольных точек
Buffers Flushed  Количество буферов базы данных сброшенных на диск во время контрольной точки


Rec Lock Waits
Процент от общего количества доступов к записям, который приводит к ожиданию блокировки. Ожидание блокировки возникает, когда менеджер базы данных вынужден ожидать получение доступа к блокированной записи.
 
BI Buf Waits
Процент ожидающих BI буферов. Данное событие происходит, когда менеджер базы вынужден ожидать доступа к BI буферу.
 
AI Buf Waits
Процент ожидающих AI буферов. Возникает когда менеджер базы ожидает доступ к AI буферу.

Writes by APW
Процент блоков базы данных записанных на диск процессом APW. Это процент от общего количества блоков базы данных, записанных менеджером базы.
 
Writes by BIW
Процент BI блоков, записанных на диск процессом BIW. Это процент от общего количества записанных на диск BI блоков менеджером базы данных.
 
Writes by AIW
Процент AI блоков записанных на диск процессом AIW. Это процент от общего количества записанных AI блоков.
 
Buffer Hits
Процент буферных совпадений. Процент зависит от количества обнаружений искомых записей в буферном пуле базы данных, не приводящий к чтению блоков с диска.
 
DB Size
Размер базы данных к килобайтах
 
BI Size
Размер BI файла в килобайтах
 
AI Size
Размер AI файла в килобайтах
 
FR chain
Количество блоков в свободной цепочке базы данных. Свободная цепочка (free chain) – это цепочка, состоящая из пустых блоков базы данных.
 
RM chain
Количество блоков в цепи Record-Management. Эта цепь состоит из частично заполненных блоков.

Shared Memory
Используемая базой данных разделяемая память в килобайтах.
 
Segments
Количество сегментов разделяемой памяти, размещенной менеджером базы данных. Размер сегментов базы данных определяется конфигурацией ядра операционной системы.
 
Последняя строка опции PROMON Activity отображает текущее количество типов процессов, работающих в базе данных, описанных в следующей таблице:
 
Поле
Описание
 Servers  Количество серверов, запущенных в базе данных. Это текущее количество запущенных серверов, не общее.
 Users  Количество пользовательских процессов, запущенных в базе. Это поле также делится на следующие типы пользователей: Local, Remote и Batch. Это текущее количество -  не общее со времени старта базы.
 Apws  Количество запущенных для базы процессов APW. Это текущее количество -  не общее со времени старта базы.




Опция PROMON Shared Resources

Отображает различную статистику используемых ресурсов, включая настройки параметров запуска.



Поскольку большинство разделяемых ресурсов не требуют разъяснений, здесь будут описаны только два из них:

Shared memory version number
Номер версии структуры разделяемой памяти. Она может немного изменяться между версиями базы данных. Брокер, сервер и клиентские процессы используют тот же пул разделяемой памяти, поэтому их номера разделяемой памяти должны совпадать. Если сообщения об ошибках говорят, что номера разделяемой памяти не совпадают, проверьте, что брокер и клиентские сессии имеют одинаковые версии OpenEdge.

Number of semaphores used (UNIX only)
Для Unix систем, отображается количество размещенных семафоров для этой базы данных. Поскольку каждому процессу требуется один семафор, предварительное размещение семафоров основывается на количестве ожидаемых процессов, которые могут обратиться к базе данных.

Для конкретной базы данных, количество размещаемых семафоров (#SEM) определяется следующим образом:

#SEM = Max-possible-users (-n) + Max-possible-servers (-Mn) + 4

Максимальное количество размещаемых семафоров для вашей системы определяется параметром ядра – SEMMNS. Если количество пользователей в базе увеличилось, вы должны изменить это значение. Для этого необходимо переконфигурировать ядро системы для увеличения этого предела. Для базы данных вы можете только уменьшить количество используемых семафоров, понижая значения параметров запуска Number of Users (-n) или Maximum Servers (-Mn). При запуске процесса брокера, всегда определяется количество доступных семафоров.



Опция PROMON Shut Down Database

Позволяет отключать пользователей или останавливать базу данных. При выборе этой опции отображается следующее меню:



Disconnect a User
Отключение одного пользователя от базы данных. При выборе этого пункта запрашивается номер пользователя для отключения. Список активных пользователей с их номерами отображается выше этого подменю. После ввода номера, нажмите Enter.

Unconditional Shutdown
Останов базы данных в нормальном режиме. Останов начнется сразу после выбора меню и нажатия Enter, учтите, что PROMON не запрашивает подтверждение останова базы данных.

Emergency Shutdown (Kill All)
Останов базы данных без выполнения чистки и с помощью отключения (kill) всех процессов базы данных. Перед началом останова, PROMON выдаст следующее предупреждающее сообщение:

This is rather extreme. All the processes connected to
the database will be destroyed. Do you really want to?
Please confirm by entering y for yes:

Если вы введете нечто другое, вместо y или yes, PROMON прекратит выполнение останова и вернется в главное меню.

 
PROMON R&D Advanced Options

Опция обеспечивает расширенный более глубокий мониторинг активности OpenEdge RDBMS и ее производительности. Она называется R&D.

Для получения доступа к R&D выполните следующее:
 
1.    В строке Enter your selection введите R&D. Отобразится следующее меню:


 
2.    Выберите одну из следующих опций:

Status Displays – отображает информацию о текущем состоянии базы данных и ее пользователях;
Activity Displays – отображается информации об активности базы в недавнем прошлом.

Здесь показываются: общее количество каких-либо действий в базе данных; количество этих действий в минуту, секунду и в течении о одной транзакции;
Other Displays – отображается прочая информация, не подпадающая под категории Status и Activity;
Administrative Functions – позволяет просматривать и изменять административные настройки базы данных;
Adjust Monitor Options – позволяет изменять настройки поведения мониторинга.

Элементы меню, заканчивающие на многоточие (…) содержат меню более низкого уровня доступа.

 
R&D Status Displays

Это меню содержит информацию о текущем состоянии базы данных. Состояние может быть определено для следующего:
 
  • Database;
  • Backup;
  • Servers;
  • Processes/Clients;
  • Files;
  • Lock Table;
  • Buffer Cache;
  • Logging Summary;
  • BI log;
  • AI log;
  • Two-phase Commit;
  • Startup Parameters;
  • Shared Resources;
  • Shared Memory Segments;
  • AI Extents;
  • Database Service Manager


Database

Отображает общую информацию о состоянии базы данных.



Этот экран состоит из следующих полей:
 
Database state – текущий операционный режим базы данных. Возможные статусы описаны в следующей таблице:
Статус
Описание
 Open  База данных открыта
 Not modified since last open  База данных закрыта
 Recovery  Выполняется аварийное восстановление
 Index repair  Запущена утилита переиндексации PROUTIL IDXBUILD
 Restore  Выполняется восстановление базы данных


Database damaged flags – состояние базы данных. Возможны следующие состояния:
Флаг
 Описание
 None  Нормальный
 Opened with –F  Отключен механизм аварийного восстановления. Возможно база данных повреждена.
 Crashed with –i  Разрушение без поддержки целостности. База данных повреждена.
 Crashed with –r  Разрушение при буферизованном I/O. Возможно база данных повреждена.


Integrity flags – режим целостности базы данных.
 Режим Описание
 None  Нормальный
 Запуск с –i  Сбой в таком режиме повредит базу данных
 Запуск с –r  Сбой в этом режиме может повредить базу данных

 
  • Most recent database open – дата и время запуска брокера базы данных.
  • Previous database open – дата и время, когда база данных была предварительно запущена.
  • Local cache file time stamp – временная метка для проверки корректности схемы базы данных.
  • Database block size – размер блока базы данных в байтах.
  • Number of blocks allocated – общее количество блоков, размещенных в базе данных.
  • RM Blocks with free space – общее количество блоков в RM цепочке.
  • Highest table number defined – количество таблиц, определенных в базе данных.
  • Database version number – определяет структуры всех связанных данных с базой данных, расположенных на диске. Этот номер используется для определения корректности соответствия структуры базы данных.
  • Shared memory version number – идентифицирует версию всех структур данных, расположенных в разделяемой памяти и используемых менеджером базы данных. Этот номер используется для гарантирования, что все работающие программы, обращающиеся к разделяемой памяти используя единые правила сохранения и доступа к данным в этой памяти.


Backup

Отображает информацию о резервных копиях базы данных.



Поля экрана означают следующее:
 
  • Most recent full backup – дата формирования последней полной резервной копии.
  • Most recent incremental backup – дата формирования последней инкрементальной резервной копии.
  • Database changed since backup – Yes, если база данных изменена после формирования последней резервной копии. No, если изменений не было.
  • Sequence of last incremental – количество инкрементальных копий после формирования последней полной копии.

 
Servers

Отображает информацию о статусе запущенных OpenEdge серверов.



Поля экрана означают следующее:
 
Type – Тип сервера. Возможны следующие типы:

Тип
Описание
 Broker  Процесс брокера. Брокер регистрирует клиентов и запускает удаленные сервера.
 Auto  Сервер, запущенный автоматически брокером.
 Manual  Сервер, запущенный вручную после старта брокера (параметр –m2). Запуск таких серверов происходит с целью отладки или на системах, в которых автоматический запуск не возможен.
 Login  Вторичный логин брокер. Если база данных работает с различными сетевыми протоколами, этот брокер используется для разделения протоколов.
 Inactive  Метка не запущенного сервера в таблице серверов.

  • Protocol – сетевой протокол, используемый для связи сервера и клиентов. TCP единственное правильное значение для этого поля.
  • Pend. Users – количество пользователей, успешно подключившихся к брокеру, но не завершивших соединение с сервером.
  • Cur. Users – текущее количество подключенных к серверу пользователей.
  • Max. Users – максимально возможное количество подключаемых к серверу пользователей.

 

Processes/Clients

Отображает информацию о процессах OpenEdge. Опции меню позволяют работать со всеми процессами или конкретными из них. В зависимости от выбранного, экран будет отображать следующие поля:
 
Имя поля
Описание
 Usr  Номер пользователя для процесса.
 Name  Имя пользователя процесса
 Type  Тип процесса
 Wait  Тип ожидания
 Login Time
Start Time
 Время, когда процесс зарегистрировался в базе данных
 Trans id  ID пользовательской транзакции
 Tx Start Time  Время старта транзакции
 Trans State  Статус транзакции
 Pid  Номер ID процесса
 Serv  Номер, обслуживающего дистанционного клиента, сервера

В зависимости от значения поля Wait могут быть отображены следующие дополнительные поля:
 
 Тип ожидания Дополнительная информация
 REC  Rowed
 SCH Тип блокировки:
12 – share lock
10 – exclusive lock
 TRAN  Tasked
 RGET  Rowed
 BKSH  Dbkey
 BKEX  Dbkey
 BIRD  Dbkey (bi)
 BIWR  Dbkey (bi)
 AIRD  Dbkey (ai)
 ARWR  Dbkey (ai)
 TXS 2 – TXE update
3 – TXE commit
 TXB 1 – TXE share
2 — TXE update
3 — TEX commit
 TXE 1 — TXE share
2 — TXE update
3 — TEX commit
 TXX 1 — TXE share
2 — TXE update
3 — TEX commit


Меню Processes/Clients состоит из:
 
All Processes – показывает информацию о процессах:

 
Blocked Clients – список пользователей ожидающих доступ к ресурсам:

 
Active Transactions - информация по активным транзакциям:

 
Local Interactive Clients – информация по локальным клиентам:

 
Local Batch Clients – информация по локальным фоновым клиентским процессам:

 
Remote Clients - Информация по удаленным клиентам:

 
Background Processes - информация по фоновым процессам базы данных:



Files

Отображает информацию о файлах базы данных OpenEdge:


Где,
File name – имя файла базы данных, включая полный путь к нему.
Size – размер файла к килобайтах.
Extend – размер последнего расширения файла, в килобайтах.


Lock Table

Отображает информацию по таблице блокировок. Когда вы выбираете это меню, PROMON предоставляет вам три варианта выбора:
 
  • Display all lock entries.
  • Display locks for one user.
  • Display locks for one RECID.

На следующем рисунке показан вид экрана после выбора одного из этих пунктов:


Экран содержит следующие поля:
 
  • Usr – номер пользователя, обладателя блокировки.
  • Name – имя пользователя.
  • Trans id – ID транзакции.
  • Type – тип блокировки (например, REC, RGET).
  • Table – номер таблицы.
  • RECID – RECID блокированной записи в таблице.
  • Flags – в следующей таблице указаны возможные варианты флагов:
 Флаг Описание
 S  Share lock
 X  Exclusive lock
 U  Блокировка в состоянии перехода из Share lock в Exclusive lock
 L  Limbo. Неопределенная блокировка до завершения транзакции
 Q  Запрос установлен в очередь ожидания разблокировки запрошенного ресурса.
 P  Purged
 H  Hold

Trans State - индикатор статуса транзакции.


Buffer Cache

Содержит информацию о буфере. На следующем рисунке показан пример экрана Buffer Cache Status:

Экран содержит следующие поля:

- Total buffers – общее количество буферов в буферном пуле.
- Hash Table Size – размер кеш - таблиц буфера.
- Used Buffers – количество использованных к настоящему времени буферов.
- Empty Buffers – количество пустых буферов.
- On lru Chain – количество буферов в LRU (least recently used) цепочке.
- On apw queue – количество буферов в APW очереди.
- On ckp queue – количество буферов в очереди контрольной точки (checkpoint).
- Modified buffers – количество измененных (dirty/modified) буферов.
- Marked for ckp - количество буферов к настоящему времени, помеченных для контрольной точки.
- Last checkpoint number – последний номер контрольной точки. Нумерация ведется последовательно от начала старта базы данных. Так же является индикатором количества пройденных контрольных точек.





Logging Summary

Отображает информацию о запущенных функциях базы данных. На следующем рисунке приведен пример экрана Logging Summary Status:

Экран содержит следующие поля:

- Crash protection – Yes, если crash protection включен, No, если нет
- Delayed Commit – текущее значение параметра Delayed BI File Write (-Mf).
- Before-image I/O – одно из следующих значений:
    Reliable – если BIW использует синхронную или прямую запись
    Buffered – если BIW использует буферизованный способ I/O. Такой способ обычно не рекомендуется использовать.
- Before-image cluster age time – период времени перед повторным использованием BI кластера. Этот период гарантирует, что блоки базы данных будут сброшены на диск во время контрольной точки. Как только это произойдет, транзакция будет записана на диск.
- BI Writer status – Executing, если BIW запущен.
- Two-Phase Commit – ON, если two-phase commit включен, OFF, если нет.
- After-image journaling – ON, если after-imaging включен, NO, если нет.
- After-image I/O – одно из следующих значений:
    Reliable – если AIW использует синхронный или прямой I/O.
    Buffered - если AIW использует буферизованный способ I/O. Такой способ обычно не рекомендуется.
- AI Writer status – Executing, если AIW запущен.




BI log

Отображается информация о before-image. Следующий рисунок демонстрирует вид экрана BI Log Status:

Экран содержит следующие поля:

- Before-image cluster age time – период времени после которого BI кластер может быть использован многократно. Этот период гарантирует, что блоки базы данных будут сброшены на диск во время контрольной точки. Как только это произойдет, транзакция будет записана на диск.
- Before-image block size – размер BI блока.
- Before-image cluster size – размер BI кластера.
- Number of before-image extents – количество BI файлов.
- Before-image log size (kb) – размер BI Log файла, в килобайтах.
- Bytes free in current cluster – количество свободных байт, оставшихся в BI кластере.
- Last checkpoint was at – время последней контрольной точки.
- Number of BI buffers – количество BI буферов.
- Full buffers – количество заполненных буферов.




AI log

Отображает информацию об after-image, если он включен. Далее представлен экран AI Log Status:

Экран содержит следующие поля:

- After-image begin date - дата последнего выполнения команды AIMAGE BEGIN.
- After-image new date – дата последнего выполнения команды AIMAGE NEW.
- After-image open date – дата когда AI Log был последний раз открыт.
- After-image generation number – номер сгенерированного текущего AI экстента.
- Number of after-image extents – количество AI файлов или экстентов.
- Current after-image extent – номер текущего (busy) экстента.
- Number of AI buffers – количество буферов AI буферном пуле. Вы можете корректировать это число параметром старта After-image Buffers (-aibufs). Значение по умолчанию 1.
- After-image block size – размер after-image блока. Этот размер можно изменять. Тем самым влияя на показатели I/O на дисках, на которых расположены AI файлы.
- After-image log size – размер текущего (busy) AI экстента, в килобайтах.




Two-phase Commit

Отображает информацию о состоянии two-phase commit, если он включен.

Экран содержит следующую информацию:

- Coordinator nickname – псевдоним используемый для идентификации базы - координатора. Установить его можно при включении two-phase commit.
- Coordinator priority – приоритет для базы данных - координатора. Установить его можно при включении two-phase commit.
- After-image journaling – Yes, если after-imaging включен, NO, если нет.




Startup Parameters

Отображает значение параметров запуска базы данных OpenEdge.

Экран содержит следующую информацию:

- Maximum clients – значение параметра Number of Users (-n).
- Maximum servers – параметр Maximum Servers (-Mn).
- Maximum clients per server – параметр Maximum Clients per Server (-Ma).
- Lock table size – параметр Lock Table Entries (-L).
- Database buffers – значение параметра Blocks in Database Buffers (-B). Примечание: значение данного параметра, из-за ошибки в алгоритме, отображается не корректно.
- APW queue check time – значение параметра Page Writer Queue Delay (-pwqdelay).
- APW scan time – значение параметра Page Writer Scan Delay (-pwsdelay).
- APW buffers to scan – параметр Page Writer Scan (-pwscan).
- APW max writes/scan – параметр Page Writer Maximum Buffers (-pwwmax).
- Spinlock tries before timeout – количество попыток приобретения блокировки перед «засыпанием» процесса (-spin).
- Before-image buffers – параметр Before-image Buffers (-bibufs).
- After-image buffers – параметр After-image Buffers (-aibufs).
- Max number of JTA transactions – значение параметра Maximum JTA Transaction Ids (-maxxids).




Shared Resources

Отображает информацию по разделяемым ресурсам базы данных.

Экран содержит следующие поля:

- Active transactions – количество текущих активных транзакций.
- Lock table entries in use – количество используемых на текущий момент блокировок, и общее возможное количество блокировок.
- Lock table high water mark – максимальное количество одновременно блокированных записей.
- Number of servers – количество запущенных серверов.
- Total users – количество пользователей, в том числе: Self service, Remote и Batch.
- Watchdog status – Executing, если Watchdog запущен, NO, если не запущен.
- BIW status - Executing, если BIW запущен, NO, если не запущен.
- AIW status - Executing, если AIW запущен, NO, если не запущен.
- Number of page writers – количество запущенных APW.
- Number of monitors – количество процессов монитора.
- Number of semaphores allocated – количество размещенных UNIX семафоров.
- Shared memory allocated – сумма размещенной разделяемой памяти, в килобайтах и сегментах.




Shared Memory Segments

Отображает основную информацию о размещенных для базы данных сегментах разделяемой памяти.

Экран содержит следующие поля:

- Seg – номер сегмента. Каждый сегмент получает порядковый номер в момент создания.
- Id – номер, используемый операционной системой для работы с сегментом.
- Size – общий размер размещенных сегментов, в байтах.
- Used – количество разделяемой памяти используемой сегментом, в байтах.
- Free – количество размещенной разделяемой памяти, но еще не используемой сегментом, в байтах.




AI Extents

Отображает состояние AI экстентов базы данных, если включен after-imaging.

Экран содержит следующие поля:

- Area – номер области экстента. Каждый AI экстент это отдельная область.
- Status – статус экстента. Возможны следующие значения: BUSY, EMPTY, FULL, LOCKED и ARCHIVED.
- Type – тип экстента: фиксированной или переменной длины.
- File number – порядковый номер AI.
- Size – размер экстента в килобайтах.
- Extent Name – полное имя экстента, используемой операционной системой.



Database Service Manager

Отображает статус связи между основной базой данных и связанных с ней сервисных объектов.

Экран содержит следующие поля:

- Communication Area Size – размер в KB очереди связи.
- Total Message Entries – общее количество сообщений возможных в очереди.
- Free Message Entries – количество свободных сообщений.
- Used Message Entries – количество используемых сообщений.
- Registered Database Service Objects:
    Name – имя сервиса базы данных. Возможны следующие значения:
       OpenEdge Replication Server.
       OpenEdge Replication Agent.
       OpenEdge RDBMS.
       OpenEdge Management DB Agent.
    Rdy – Y или N. Индикатор готовности сервиса. В основном это Y. N отображается только при старте или остановке.
    Status – статус сервиса базы данных:
Статус сервиса
Описание
 RUN  Запущен
 ACT  Активен
 INACT  Не активен. Сервис зарегистрировано, но не активен.
 BUSY  Занят
 REG  Регистрируется
 PREREG  Предварительная регистрация. Сервис найден, но не готов для использования.
 UNK  Неизвестное состояние

    Messages – количество сообщений в обслуживающей сервис очереди.
    Locked by – PID процесса заблокировавшего очередь сообщений.




R&D Activity Displays

R&D Activity обеспечивает информацией относительно текущей деятельности базы данных, и состоит из следующих пунктов меню:

- Summary
- Servers
- Buffer Cache
- Page Writers
- BI Log
- AI Log
- Lock Table
- I/O Operations By Type
- I/o Operations By File
- Space Allocation
- Index
- Record
- Other

Указанные меню предлагают следующий вариант действия с отображаемым экраном:

Enter <return>, A, L, R, S, U, Z, P, T, or X (? for help):

В зависимости от вашего выбора, зависит поведение экрана:


Если вы выбрали …  PROMON …
ENTER   Отобразит следующую страницу экрана, если таковая существует, в противном случае, вернется в предыдущее меню.
 A  Активация режима автоматического повтора. Текущий экран будет обновляться через установленное время в секундах. Режим будет отключен после установленного количества повторов или по нажатию Ctrl+C.
 L  Загрузка данных счетчиков с начала запуска базы. Используется для восстановления счетчиков после их сброса для считывания данных за более короткий период времени.
 R  Повторить текущий экран
 S  Интервал считывания счетчиков в секундах для одной выборки. Текущий экран будет перезапущен. Отображаемые данные будут содержать информацию только за указанный интервал времени.
 U  Обновление счетчиков. Текущий экран будет перезапущен. Счетчики будут содержать произошедшие изменения с момента старта сессии.
 Z  Обнуление счетчиков, для снятия новых показателей.
 P  Возврат в предыдущее меню.
 T  Возврат в основное меню.
 X  Выход из OpenEdge Monitor
 ?  Отображает помощь по меню.




Activity Summary

Отображает основную информацию о деятельности базы данных. На следующем рисунке приведен пример экрана Summary Activity:

Экран отображает количественные показатели событий, произошедших в системе, включая общий итог и количество событий в секунду. Поля экрана означают следующее:

- Commits – количество совершенных транзакций всеми пользователями.
- Undos – количество отмененных транзакций.
- Record Reads – количество считанных записей.
- Record Updates – количество измененных записей.
- Record Creates – количество созданных записей.
- Record Deletes – количество удаленных записей.
- Records Locks – количество использованных блокировок записей.
- Records Waits – количество пользователей ожидавших доступа к заблокированным записям.
- DB Reads – количество считанных блоков базы данных.
- DB Writes – количество записанных блоков на диск.
- BI Reads – количество считанных BI блоков.
- BI Writes – количество записанных на диск BI блоков.
- AI Writes – количество AI блоков, записанных на диск.
- Checkpoints – количество выполненных контрольных точек.
- Flushed at chkpt - количество сброшенных на диск буферов, которые не были записаны на диск во время контрольной точки.
- Rec Lock Waits – процент от количества запросов доступа к записям, вынужденных ожидать разблокировки. Для оптимальной производительности, желательно по возможности, добиваться наименьшего значения этого поля. Этого можно добиться путем модификации алгоритмов программ так, чтобы транзакции были как можно короче, а следовательно записи будут блокированы меньше времени.
- BI Buf Waits – процент ожидания BI буферов. Возникает когда менеджер базы данных вынужден ожидать доступа к BI буферу. Держите это значение как можно меньшим. Для этого разместите больше BI буферов в базе данных с помощью параметра запуска Before-image Buffers (-bibufs).
- AI Buf Waits – процент ожидания AI буферов. буферов. Возникает когда менеджер базы данных вынужден ожидать доступа к AI буферу. Старайтесь держать это значение как можно меньшим. Для этого разместите больше AI буферов в базе данных с помощью параметра запуска After-image Buffers (-aibufs).
- Writes by APW – процент записанных на диск блоков с помощью APW, это процент от общего количества записанных блоков. Это значение желательно одерживать как можно большим. Для этого запустите больше APW процессов и увеличьте размер кластера.
- Writes by BIW – процент записанных BI блоков на диск с помощью BIW, это процент от общего количества записанных на диск BI блоков. Для улучшения производительности, поддерживайте это значение крайне высоким. Для этого можно увеличить количество BI буферов параметром –bibufs.
- Writes by AIW – процент записанных AI блоков на диск с помощью AIW, это процент от общего количества записанных на диск AI блоков. Для улучшения производительности, поддерживайте это значение крайне высоким. Для этого можно увеличить количество AI буферов параметром –aibufs.
- DB Size – размер базы данных.
- BI Size – размер BI файла.
- AI Size – размер AI файла.
- Empty blocks – количество пустых (ни когда не использованных) блоков базы данных.
- Free blocks – количество блоков в свободной цепочке базы данных. Свободная цепочка, состоит из ранее  использованных, а затем освобожденных блоков базы.
- RM chain – количество блоков в RM цепочке. RM цепочка, это цепочка состоящая из частично заполненных блоков базы данных.
- Buffer hits – процент буферных совпадений. Данное событие происходит, когда менеджер базы данных обнаруживает запись в буферном пуле, и ему не нужно обращаться к диску для ее считывания. Для оптимальной производительности, желательно держать это значение очень большим. Для чего разместите больше буферов с помощью параметра –B. Но будьте внимательны, увеличивать значение этого параметра можно пока:
    Количество I/O в секунду не уменьшится до менее чем половины возможности дисков.
    Значение Buffer Hit перестанет улучшаться.
    Система начнет пейджинг (paging).
- Active trans – количество активных транзакций.

Последняя строка экрана Summary Activity суммирует количество запущенных процессов по типам, на момент запуска утилиты. Следующая таблица определяет типы этих процессов:
 Тип процесса  Описание
 Servers  Количество серверов, запущенных в базе данных. Это текущее количество серверов, не суммированное с начала запуска базы.
 Clients  Количество запущенных клиентских сессий. Это поле делится на следующие типы пользователей: Local, Remote и Batch. Это текущее количество, не суммированное с начала запуска базы.
 APWs  Количество APW процессов, запущенных в базе. Это текущее количество, не суммированное с начала запуска базы.




Activity Servers

Отображает информацию об серверной активности. Следующий рисунок приводит пример отображаемого экрана, при этом для каждого сервера формируется отдельный экран.

Экран содержит следующие поля:

- Messages received – количество сетевых пакетов, полученных сервером.
- Message sent - количество сетевых пакетов отправленных сервером.
- Bytes received - количество байт полученных сервером.
- Bytes sent - количество байт отправленных сервером.
- Records received – количество полученных сервером передаваемых записей.
- Records sent – количество отправленных сервером передаваемых записей.
- Queries received – количество полученных запросов.
- Time slices – количество запросов по отрезкам времени. Это происходит когда сервер приступает к обработке следующего клиента не завершая запрос.




Activity Buffer Cache

Отображает информацию о деятельности буферного кеша базы данных (который так же называют буферным пулом). Ниже приведен пример экрана Buffer Cache Activity:

Экран содержит список следующих типов запросов буферного пула:

- Logical Reads – количество клиентских запросов на чтение блоков базы данных
- Logical Writes – количество клиентских запросов на запись блоков базы данных.
- O/S reads – количество блоков базы данных считанных с диска.
- O/S writes – количество блоков базы данных записанных на диск.
- Checkpoints – количество операций контрольных точек.
- Marked at checkpoint – количество блоков, которые планируется записать перед контрольной точкой.
- Flushed at checkpoint – количество блоков, не записанных во время контрольной точки, и которое должно быть записано сразу после нее.
- Writes deferred – количество измененных блоков, которые записаны прежде чем они были заполнены. Каждая задержка записи, это потенциальное сохранение операции I/O.
- LRU skips – количество раз когда буфер LRU цепочки был пропущен из-за его блокировки или изменения.
- LRU Writes – количество записанных блоков чтобы  освободить буфер для операции чтения.
- APW Enqueues – количество измененных буферов поставленных в APW очередь для записи.
- Hit Ratio – процентов запросов к буферному пулу, не требующих обращения к диску.




Activity Page Writer

Отображает информацию по активности APW (Asynchronous page writer). Ниже приведен пример экрана Page Writers Activity.

Экран содержит следующие поля:

- Total DB writes – общее количество операций записи выполненных всеми пользователями.
- APW DB writes – количество операций записи выполненных APW. Это значение так же делится на следующие виды DB записей:
    Scan writes – количество буферов, записанных во время цикла сканирования.
    APW queue writes – количество буферов, записанных при чистке APW очереди.
    Ckp queue writes – количество буферов, записанных из очереди контрольной точки.
    Scan cycles – количество циклов сканирования. В течение цикла сканирования, APW просматривает часть буферного пула на предмет обнаружения измененных буферов.
    Buffers scanned – количество просканированных буферов в течении цикла сканирования.
    Bufs checkpointed – количество выгруженных буферов.
- Checkpoints – количество выполненных контрольных точек.
- Marked at checkpoint - количество блоков, которые планируется записать перед контрольной точкой.
- Flushed at checkpoint – количество блоков, не записанных во время контрольной точки, и которое должно быть записано сразу после нее.
- Number of APWs – количество запущенных APW.




Activity BI Log

Отображает информацию по деятельности BI лога. Ниже приведен пример экрана BI Log Activity.

Экран содержит следующие типа BI операций:

- Total BI writes – количество записей в BI файл.
- BIW BI writes – количество записей в BI файл, выполненных процессом BIW (before-image writer). Для показателя хорошей производительности, это значение должно быть достаточно высоко относительно общего количество BI записей.
- Records written – количество BI заметок (записей таблиц) записанных в BI файл.
- Bytes written – количество данных, записанных в BI файл, в байтах.
- Total BI Reads – количество BI блоков, считанных из BI файла (для отката транзакций).
- Records read – количество BI заметок (записей таблиц) считанных из BI файл.
- Bytes read – количество данных, считанных из BI файла, в килобайтах.
- Clusters closed – количество BI кластеров заполненных и закрытых для подготовки к повторному использованию.
- Busy buffer waits – количество раз, когда процесс был вынужден ожидать кого-либо еще, прежде чем выполнить запись в BI файл.
- Empty buffer waits – количество раз, когда процесс был вынужден ждать, поскольку все буферы были заняты.
- Log force waits – количество waiting-for-commit записей, которые должны быть отписанных на диск.
- Log force writes - количество waiting-for-commit записей, отписанных на диск.
- Partial Writes – количество записей в BI файл, сделанных до того как BI буфер был заполнен.  Это может случится если:
    таймер параметра Delayed BI File Write (-Mf), истек до полного заполнения BI буфера.
    APW пытается записать блок, изменения которого зарегистрированы в BI файле, и которые еще не были записаны. А поскольку данные в BI должны быть записаны на диск прежде, чем данные AI, AIW производит запись данных BI до того как буфер будет заполнен, и таким образом, AI данные могут быть записаны на диск.
    процесс AIW отработал прежде процесса BIW. Поскольку данные в BI должны быть записаны прежде чем записаны данные AI, AIW выполнит запись BI буфера даже если он не будет заполнен, после чего станет возможным запись AI данных.
- Input buffer hits – количество найденных данных для отката транзакций в Input BI buffer. Input BI buffer – это разделяемый буфер содержащий BI блоки, необходимые для отката транзакции, если они не были предварительно обнаружены в Output BI buffer или Mod BI buffer. Input BI buffer считывается назад в память из BI log.
- Output buffer hits - количество найденных данных для отката транзакций в Output BI buffer. Output BI buffer – это разделяемый буфер содержащий BI данные к настоящему времени записанные на диск.
- Mod buffer hits - количество найденных данных для отката транзакций в Mod BI buffers. Mod BI buffers, это разделяемые буферы, которые изменяются действующими в настоящее время транзакциями. Эти буферы не пишутся на диск.
- BO buffer hits - количество раз, когда данные для отката транзакции были обнаружены в private BO (Back out) буфере. Back out буферы относятся к частным (private) буферам одного пользователя, после отката транзакции в Input BI buffer будет помещена двойная информация. Эти буфера уменьшают конфликты за Input BI buffer, когда более чем один пользователь выполняет откат транзакции.




Activity AI Log

Отображает деятельность After-imaging.

На экране представлен список из следующих операций:

- Total AI writes – общее количество записей в AI файл.
- AIW AI writes – количество AI записей, выполненных процессом AIW (After-image writer). Это часть от общего числа AI записей.
- Records written – количество заметок (записей таблиц), записанных в AI файл.
- Bytes written – количество AI данных, записанных в AI файл, в байтах.
- Busy buffer waits – количество раз, когда процесс вынужден был ждать освобождение буфера.
- Buffer not avail – общее количество времени, когда процесс был вынужден ожидать, поскольку свободных буферов не было найдено.

- Partial writes – rколичество записей в AI файл, выполненных до того как AI буфер был заполнен. Причины этому могут быть следующие:
    Значение параметра BI File Write (-Mf) истекло по таймеру до заполнение буфера.
    APW пытается записать блок, изменения которого были зарегистрированы в AI буфере, но еще не записаны.
- Log force waits - количество waiting-for-commit записей, которые должны быть отписанных на диск




Activity Lock Table

Отображается информация по деятельности таблицы блокировок (Lock Table Activity). Менеджер базы данных хранит информацию о блокировках записей в таблице блокировок. Если пользователь будет пытаться получить блокировку записи, и при этом таблица блокировок будет переполнена, доступ к серверу пользователю будет отказан.

Экран содержит список из следующих операций:

- Requests
    Share - количество пользовательских запросов с share lock.
    Intent Share - количество пользовательских запросов о намерении получить share lock.
    Exclusive – количество пользовательских запросов с exclusive lock.
    Intent Exclusive – количество пользовательских запросов о намерении получить exclusive lock.
    Share Intent Exclusive - количество пользовательских запросов о намерении сменить share lock на exclusive.
    Upgrade – количество пользовательских запросов изменивших share lock на exclusive lock.
    Record Get Lock – количество пользовательских запросов на получение блокировки записи.
    Table Lock – количество пользовательских запросов на блокировку таблицы.
    Record Lock – количество пользовательских запросов на блокировку записи.
- Grants
    Share – количество предоставленных share lock.
    Intent Share - количество предоставленных share lock на запросы намерения
    Exclusive – количество предоставленных exclusive lock по запросам.
    Intent Exclusive – количество предоставленных exclusive lock по запросам намерения.
    Share Intent Exclusive – количество предоставленных намерений share lock с exclusive lock.
    Upgrade - количество предоставленных изменений блокировок.
    Record Get Lock – количество предоставленных ответов на запросы о получении блокировки.
    Table Lock – количество предоставленных по запросам блокировок таблиц.
    Record Lock – количество предоставленных по запросам блокировок записей.
- Waits
    Share – количество раз, когда пользователь ожидал share lock.
    Intent Share – количество раз, когда пользователь ожидал Intent share lock.
    Exclusive – количество раз, когда пользователь ожидал exclusive lock.
    Intent Exclusive – количество раз, когда пользователь ожидал Intent Exclusive Lock.
    Share Intent Exclusive – количество раз, когда пользователь ожидал share lock с Intent Exclusive.
    Upgrade – количество раз, когда пользователь ожидал изменение блокировки.
    Record Get Lock – количество раз, когда пользователь ожидал получения блокировки записи.
    Table Lock – количество раз, когда пользователь ожидал блокированную таблицу.
    Record Lock – количество раз, когда пользователь ожидал блокированную запись.
- Requests cancelled – количество отмененных запросов блокировки.
- Downgrades – количество отвергнутых блокировок.



Activity I/O Operations By Type

Показывает информацию по I/O активности, определенную по типам.

Далее описаны возможные типы I/O операций:

- Database reads – обще количество чтений из базы данных:
    Index blocks – количество прочтенных индексных блоков.
    Data blocks – количество прочтенных блоков с данными.
- BI reads – количество блоков считанных из BI файла.
- AI reads – количество блоков, считанных из AI файла.
- Total reads – общее количество операций чтений BI и AI.
- Database writes – общее количество записей в базу данных:
    Index blocks – количество записанных индексных блоков.
    Data blocks – количество записанных блоков данных.
- BI writes – количество операций BI записей.
- AI writes – количество операций AI записей.
- Total writes – общее количество операций BI и AI записей.




Activity I/O Operations by File

Отображает информацию по I/O активности, относительно файлов базы данных.

Информация отображается по каждому файлу отдельно, и состоит из полей:

- Reads – количество операций чтения, выполненных относительно файла.
- Writes – количество операций записи, выполненных относительно файла.
- Extends – количество операций расширения файла.




Activity Space Allocation

Здесь отображается информация об использовании дискового пространства (Space Allocation).

Экран содержит информацию по следующим действиям:

- Database extends – количество расширений базы данных.
- Take free block – количество раз использования блока из свободной цепи (free chain).
- Return free block – количество раз, когда блок возвращался в свободную цепочку.
- Alloc rm space – количество распределений пространства для записи или для ее фрагмента.
- Alloc from rm – количество распределений пространства из rm цепочки.
- Alloc from free – количество распределений пространства из свободной цепочки.
- Bytes allocated – количество байт, распределенных для фрагментов записей.
- rm blocks examined – количество проверенных блоков в rm – цепочке, на предмет наличия пространства для фрагмента записи.
- Remove from rm – количество блоков, удаленных из rm – цепочки.
- Add to rm, front – количество блоков, добавленных в начало rm – цепочки.
- Add to rm, back – количество блоков, добавленных в конец rm - цепочки.
- Move rm front to back – количество блоков перемещенных с начала в конец rm – цепочки.
- Remove locked rm entry – количество блокированных вхождений в rm –цепочке.



Activity Index

Отображается информации по индексной активности в базе данных.

Поля экрана означают следующее:

- Find index entry – количество просмотренных индексов.
- Create index entry – количество созданных новых индексов.
- Delete index entry – количество удаленных индексов.
- Remove locked entry – количество разблокированных старых замков после завершения транзакции.
- Split block – количество разделений блоков из-за добавления индексов.
- Free block – количество индексных блоков, освобожденных после удаления.



Activity Record

Показывает информацию о деятельности с записями базы.

Экран отображает следующие действия:

- Read record – количество считанных записей.
- Update record – количество измененных записей.
- Create record – количество созданных записей.
- Delete record – количество удаленных записей.
- Fragments read – количество считанных фрагментов.
- Fragments created – количество созданных фрагментов.
- Fragments deleted – количество удаленных фрагментов.
- Fragments update – количество низменных фрагментов.
- Bytes read – количество считанных байт.
- Bytes created – количество созданных байт.
- Bytes deleted – количество удаленных байт.
- Bytes updated – количество измененных байт.



Activity Other

Отображает информацию о прочей деятельности базы данных.

Под прочими операциями подразумевается:

- Commit – количество совершенных транзакций.
- Undo – количество отмененных транзакций.
- Wait on semaphore – количество процессов ожидающих ресурс.
- Flush master block – количество раз, когда мастер блок базы данных, был записан на диск.





R&D Other Displays

Опция R&D Other Displays содержит смешанную информацию и состоит из следующего меню:

- Performance Indicators
- I/O Operations by Process
- Lock Requests by User
- Checkpoints
- I/O Operations by User by Table
- I/O Operations by User by Index




Performance Indicators

Отображается информация по статистике имеющей отношение к производительности.

Performance Indicators показывает общее количество операций разделенных по группам за определенный период (Total), количество этих же операций в минуту (Per Min) и в секунду (Per Sec), а также, количество операций за одну транзакцию (Per Tx). Отображаемые операции следующие:

- Commits – количество завершенных транзакций.
- Undos – количество отмененных транзакций.
- Index Operations – общее количество всех операций выполненных над индексами (например, индексные добавления и удаления).
- Record Operations – общее количество всех операций с записями.
- Total o/s i/o – общее количество операций чтения и записи.
- Total o/s reads – общее количество операций чтения.
- Total o/s writes – общее количество операций записи.
- Background o/s writes – общее количество операций записи, выполненные фоновыми процессами базы данных (APW, BIW и AIW).
- Partial log writes – записи в BI файл до того как BI буфер будет заполнен. Это происходит если:
    таймер параметра Delayed BI File Write (-Mf), истек до полного заполнения BI буфера.
    APW пытается записать блок, изменения которого зарегистрированы в BI файле, и которые еще не были записаны. А поскольку данные в BI должны быть записаны на диск прежде, чем данные AI, AIW производит запись данных BI до того как буфер будет заполнен, и таким образом, AI данные могут быть записаны на диск.
    процесс AIW отработал прежде процесса BIW. Поскольку данные в BI должны быть записаны прежде чем записаны данные AI, AIW выполнит запись BI буфера даже если он не будет заполнен, после чего станет возможным запись AI данных.
- Database extends – общее количество раз, когда база данных расширялась за счет размещения дополнительных блоков.
- Total waits – общее количество ожиданий.
- Lock waits – количество раз, когда менеджер базы данных был вынужден ожидать освобождения блокировки.
- Resource waits – количество раз, когда менеджер базы данных был вынужден ожидать ресурс, такие как блокированная запись, блокированный буфер в разделяемой памяти, транзакционная блокировка и т.п.
- Latch timeouts – количество раз, когда истекал период spinlock, вынуждая процесс «засыпать» при попытке получения замка.
- Buffer pool hit rate – процент обнаружения записей в буферном пуле, без необходимости чтения с диска.




I/O Operations by Process

Отображает информацию по I/O операциям, сгруппированных по процессам.

Экран содержит следующие данные:

- Usr – номер пользователя в процессе.
- Name - имя пользователя.
- Database Access – количество операций доступа к базе данных, выполняемых процессом.
- Database Read – количество операций чтения, выполненных процессом.
- Database Write – количество операций записи, выполненных процессом.
- BI Read – количество операций BI чтения, выполненных процессом.
- BI Write - количество операций BI записи, выполненных процессом.
- AI Read - количество операций AI чтения, выполненных процессом.
- AI Write - количество операций AI записи, выполненных процессом.




Lock Requests by User

Отображает информацию о запросах блокировки, сгруппированных по пользователям.

Экран содержит следующие данные:

- Usr Num – номер пользователя.
- User Name - имя пользователя.
- Record Locks - количество блокировок записей, полученных пользователем.
- Record Waits - количество раз, когда пользователь был вынужден ждать блокировки записи.
- Trans Locks – количество раз, когда удаляемая запись была защищена до конца транзакции.
- Trans Waits – количество раз, когда пользователь должен был ждать помеченную активной транзакций запись на удаление.
- Schema Locks – количество приобретенных пользователей блокировок схемы.
- Schema Waits – количество раз, когда пользователь должен был ждать разблокировки схемы.



Checkpoints

Отображает информацию о контрольных точках.

Этот экран содержит следующую информацию:

- Ckpt. No. – порядковый номер контрольной точки.
- Time – время начала контрольной точки.
- Len – период времени, потребовавшийся для завершения контрольной точки.
- Freq – период времени между началом контрольных точек.
- Dirty – количество измененных блоков запланированных для записи.
- Database Writes CPT Q – количество блоков записанных из очереди контрольной точки с помощью APW.
- Database Writes Scan – количество блоков, записанных APW во время цикла сканирования.
- Database Writes APW Q – количество блоков, записанных очередью APW, и помещенных в LRU (least recently used) цепочку.
- Database Writes Flushes – общее количество блоков не записанных во время контрольной точки, но которые должны быть записаны в конце ее завершения.



I/O Operations by User by Table


Экран содержит следующие данные:

- User – номер пользователя.
- Table – номер таблицы.
- Reads – количество чтений, выполненных пользователем из таблицы.
- Updates – количество изменений, выполненных пользователем в таблице.
- Creates – количество созданий записей, выполненных пользователем в таблице.
- Deletes – количество выполненных удалений в таблице.\\

По умолчанию, экран отображает информацию о первых 100 таблицах. Настройка других значений выполняется параметрами запуска –basetable и –tablerange.



I/O Operations by User by Index


Экран отображает следующую информацию:

- User – номер пользователя.
- Index – номер индекса.
- Reads – количество доступов пользователем на чтение индекса.
- Creates – количество доступов пользователем на создание индекса.
- Deletes – количество доступов пользователем на удаление индекса.
- Splits – количество операций разделения, которые были выполнены пользователем по отношению к индексу.
- Block dels – количество блоков, удаленных пользователем при работе с индексом.

По умолчанию, экран отображает информацию о первых 100 индексах. Настройка других значений выполняется параметрами запуска –baseindex и –indexrange.





R&D Administrative Functions


R&D Administrative Functions позволяет просматривать и изменять параметры настройки, такие как:

- Check Active Transaction Status
- Check Two-Phase Transactions
- Resolve Limbo Transactions
- Adjust Latch Options
- Adjust Page Writer Options
- Restricted Options
- Terminate a Server



Check Active Transaction Status


Отображается информация по действующим транзакциям.

Экран содержит следующие данные:

- Usr – номер пользователя в процессе.
- Name – имя пользователя.
- Txt start time – время старта транзакции.
- Trans id - идентификационный номер (ID) транзакции.
- Trans State – статус транзакции.
- Crd Nam – имя базы данных координатора.
- Crd Tx Id – идентификационный номер (ID) транзакции в базе координатора.



Check Two-Phase Transactions

Содержит информацию о Two-Phase Commit.



Resolve Limbo Transactions

Позволяет решать проблему с неопределенной транзакцией, завершая ее или отменяя. После выбора этого меню, PROMON отобразит следующее:

Выбор одного из этих меню позволяет:

- Abort a Limbo Transaction – предлагается ввести номер пользователя, чью транзакцию вы хотите прервать. PROMON отображает номера пользователей в колонке User, экрана Transaction Control option. Введите номер пользователя и нажмите RETURN.
- Commit a Limbo Transaction - предлагается ввести номер пользователя, чью транзакцию вы хотите совершить. (PROMON отображает номера пользователей в колонке User, экрана Transaction Control option.) Введите номер пользователя и нажмите RETURN. Будут отображено сообщение подобное следующему:

User 1: commit transaction and disconnect.

Примечание: для совершения транзакций в остановленной базе, используйте классификатор 2PHASE RECOVER утилиты PROUTIL.




Adjust Latch Options

Настраивается механизм Spin Lock, для регулирования доступа к разделяемым ресурсам системы.

Spins before timeout, позволяет динамически изменять значение таймера механизма Spin Lock. Напомню, что это значение так же может быть изменено параметром запуска Spin Lock Tries (-spin).




Adjust Page Writer Options

Позволяет вручную изменять поведение APW. (это редко когда необходимо, не изменяйте эти параметры, если это не было инициирована службой технической поддержки).

Выберите одно из следующих меню:

- APW queue check time – позволяет вручную настраивать значение параметра Page Writer Queue Delay (-pwqdelay). Данный параметр вы можете без опасения изменять, поскольку он является самонастраивающимся. Т.е., когда база данных испытывает высокую нагрузку, значение уменьшается, чтобы APW записывал более часто. Когда же нагрузка на базу уменьшается, значение увеличивается, чтобы запись производилась менее часто. По умолчанию, значение параметра –pwqdelay равно 100 миллисекунд.
- APW buffers scan time - позволяет вручную настраивать значение параметра Page Writer Scan Delay (-pwsdelay). Значение по умолчанию 1 секунда.
- APW buffers per scan - позволяет вручную настраивать значение параметра Page Writer Scan (-pwscan).
- APW writes per scan - позволяет вручную настраивать значение параметра Page Writer Maximum Buffers (-pwwmax).



Restricted Options

Эта опция может быть использована только под контролем супервизора из Progress Technical Support. Выбрав этот пункт, у Вас будет запрошен restricted option key, который при необходимости предоставляется службой технической поддержки.




Terminate a Server

Позволяет выбрать сервер для остановки.






R&D Adjust Monitor Options

Данное меню позволяет вам просматривать и изменять параметры отображения информации на экранах PROMON.

Этот экран содержит следующую информацию:

- Display page length – количество строк в терминальном экране.
- Clear screen for first page – Если Yes, система очищает экран перед основным меню и перед каждой страницей просмотра.
- Monitor sampling interval – интервал через который происходит считывания образцов данных, в секундах.
- Pause between displays – задержка между страницами вывода, при работе в не прерывном режиме (нажмите u для работы в непрерывном режиме), в секундах.
- Pause between screens – задержка после последней отображенной страницы при работе в непрерывном режиме, в секундах.
- Number of auto repeats – количество повторов экрана при работе в режиме auto repeat.
- Change working area – отображает контролируемую область. По умолчанию, PROMON контролирует все области.

Для изменения значений, выберите необходимую опцию и на запрос введите новое значение.




Опция PROMON 2PC Transactions Control

Отображает информацию о распределенных two-phase commit транзакциях в базе данных.

Примечание: если вы запустите PROMON с этой опцией на базе данных без limbo транзакций, ни какая информация не будет отображена на этом экране.

Поля экрана означают следующее:

- Usr – номер пользователя, запустившего распределенную транзакцию.
- Name – имя пользователя, запустившего распределенную транзакцию.
- Trans – номер транзакции на машине где был запущен PROMON.
- Login – дата запуска пользователем распределенной транзакции.
- Time - время запуска распределенной транзакции.
- R-comm? – Статус транзакции. Если это Yes, транзакция имеет статус ready-to-commit. Это означает, что первая фаза two-phase commit завершена.
- Limbo? – Признак неопределенной (limbo) транзакции. Если имеется одна или более транзакции, поле Limbo будет для каждой транзакции установлено в yes. Поле с yes означает, что необходимо решить эти транзакции.
- Crd? - независимо от того на какой базе вы запустили PROMON относительно координатора.
- Coord – имя базы координатора.
- Crd-task – номер транзакции на базе данных координаторе.




Опция PROMON Resolve 2PC Limbo Transactions

Позволяет вам решать two-phase commit limbo транзакции, путем их завершения или прерывания. После выбора этой опции будет отображен следующий экран:


- Abort a Limbo Transaction - PROMON запросит ввести номер пользователя прерываемой транзакции. (номер можно получить на экране 2PC Transaction Control в колонке User) Введите номер и нажмите RETURN.
- Commit a Limbo Transaction - PROMON запросит ввести номер пользователя завершаемой транзакции. (номер можно получить на экране 2PC Transaction Control в колонке User) Введите номер и нажмите RETURN. После этого будет отображено примерно следующее сообщение:

User 1: commit transaction and disconnect.

Для завершения транзакции на остановленной базе данных, необходимо воспользоваться классификатором 2PHASE RECOVER утилиты PROUTIL.





Опция PROMON 2PC Coordinator Information

Позволяет определять была ли limbo транзакция завершена. Эта информация необходима перед решением limbo транзакции.

Для ее получения запустите PROMON на базе данных координаторе. PROMON отобразит имя базы координатора в колонке Coord экрана 2PC Transaction Control.

Примечание: если база данных остановлена, можно воспользоваться классификатором 2PHASE COMMIT утилиты PROUTIL, для определения совершения транзакции.

Ниже приведен пример вывода этой опции:

PROMON отображает номер транзакции в колонке Crd-task экрана Transaction Control.  Введите номер транзакции и нажмите RETURN. Будет отображено сообщение о завершении транзакции.





Опция PROMON Resolve JTA Transactions

Позволяет вам просматривать, завершать или откатывать JTA транзакции.

Экран содержит:

- Display all JTA Transactions – отображается следующая информации по всем активным JTA транзакциям: внутренний номер транзакции, JTA статус и внешний номер JTA транзакции.
- Rollback a JTA Transaction - будет запрошен номер транзакции для отката и затребует подтверждения выполнения операции. ВНИМАНИЕ: откат JTA транзакции может нарушить целостность базы данных, прибегайте к этому методу только если вы абсолютно уверены в неисправимой ошибке на стороне транзакционного менеджера JTA.
- Commit a JTA Transaction – в данном случае также будет запрошен транзакционный номер завершаемой транзакции и вопрос о подтверждении. ВНИМАНИЕ: откат JTA транзакции в обход внешнего транзакционного менеджера JTA может привести к нарушению целостности базы данных. Используйте этот метод только в крайних случаях.



Опция PROMON Modify Defaults

Отображает параметры поведения экранов монитора и позволяет их корректировать. Так же здесь можно просмотреть и изменить параметры запуска APW.

Этот экран выглядит следующим образом:

Экран поддерживает следующее меню:

- Page size – количество строк в терминальном экране.
- Clear screen for first page – если Yes, система будет очищать экран перед каждым основным меню и перед каждым листом просмотра.
- Short pause after each page – задержка между страницами вывода, при работе в не прерывном режиме (нажмите u для работы в непрерывном режиме), в секундах.
- Long pause after last page – задержка после вывода последней страницы, перед продолжением мониторинга.
- Monitor Sampling Interval - интервал через который происходит считывания образцов данных, в секундах.
- APW queue delay – настраивается  значение параметра Page Writer Queue Delay (-pwqdelay). Данный параметр вы можете без опасения изменять, поскольку он является самонастраивающимся. Т.е., когда база данных испытывает высокую нагрузку, значение уменьшается, чтобы APW записывал более часто. Когда же нагрузка на базу уменьшается, значение увеличивается, чтобы запись производилась менее часто. По умолчанию, значение параметра –pwqdelay равно 100 миллисекунд.
- APW queue start – значение параметра Page Writer Queue Minimum (-pwqmin). Не изменяйте этот параметр без назначения технической поддержки.
- APW scan delay – значение параметра Page Writer Scn Delay (-pwsdelay). По умолчанию значение равно 1 секунде.
- APW scan count – значение парметра Page Writer Scan (-pwscan). Не изменяйте этот параметр без назначения технической поддержки.
- APW write limit - значение параметра Page Writer Maximum Buffers (-pwwmax). Не изменяйте этот параметр без назначения технической поддержки.
- BIW scan delay – значение параметра BI Writer Scan Delay (-bwdelay). Значение по умолчанию равно 0.
- Group commit delay – значение параметра Group Delay (-groupdelay). По умолчанию значение равно 10.





Утилита PROSTRCT


Эта глава посвящена утилите OpenEdge RDBMS – PROSTRCT.

Утилиты предназначена для создания и поддержки базы данных OpenEdge. Например, вы можете использовать утилиту с ее классификаторами для выполнения следующих задач:

- Создание новой базы данных на основании существующего файла описания структуры (.st).
- Просмотреть статистику хранения, включая информацию по каждой отдельной области хранения.
- Добавить области и экстенты в базу данных.
- Удалить области или экстенты из базы данных.

При этом синтаксис команды следующий:

prostrct qualifier db-name [ structure-description-file ]

Утилиты имеет следующий набор параметров (qualifier):

  • ADD
  • ADDONLINE
  • BUILDDB
  • CLUSTER CLEAR
  • CREATE
  • LIST
  • REMOVE
  • REORDER AI
  • REPAIR
  • STATISTICS
  • UNLOCK                                        

Детально эти параметры будут описаны на следующих страницах.

Вы должны определиться со структурой базы данных до ее созданию. PROSTRCT CREATE создает контрольную область (DB) базы данных именно на основании этого файла.

Также данная утилита поддерживает параметры интернационализации, как например, -cpinternal и –cpstream.




PROSTRCT ADD

Команда добавляет файлы (экстенты) в базу данных, используя информацию из структурного файла (.st).

Синтаксис:

prostrct add db-name [ structure-description-file ] [ -validate ]

Параметры:

db-name
   определяет используемую базу данных

structure-description-file
   указывает на новый st – файл. Не стоит использовать файл с именем db-name.st.

-validate
   Проверяет содержимое st – файла на наличие синтаксических ошибок. Когда этот параметр определен, база данных не будет создана, или если вы добавляете экстенты – они так же не будут добавлены. Если ошибки будут обнаружены, об этом будет сообщено с указанием номера строки.

Используйте PROSTRCT ADD для добавления новых областей хранения и экстентов к новой или существующей области.

Использовать этот классификатор можно только когда база данных находится в offline. Для добавления областей и экстентов в online применяется классификатор PROSTRCT ADDONLINE.

Новый структурный файл должен содержать только информацию о новых экстентах, и не должен содержать данные экстентов существующих.

После каждого использования классификатора PROSTRCT ADD, всегда необходимо использовать PROSTRCT LIST. Это необходимо для актуализации структурного файла базы данных db-name.st, поскольку автоматически он не изменяется.




PROSTRCT ADDONLINE

Команда добавляет файлы (экстенты) в базу данных, используя информацию из структурного файла (.st) в online.

Синтаксис:

prostrct addonline db-name [ structure-description-file ] [ -validate ]

Параметры:

db-name
   определяет используемую базу данных

structure-description-file
   указывает на новый st – файл. Не стоит использовать файл с именем db-name.st.

-validate
   Проверяет содержимое st – файла на наличие синтаксических ошибок. Когда этот параметр определен, база данных не будет создана, или если вы добавляете экстенты – они так же не будут добавлены. Если ошибки будут обнаружены, об этом будет сообщено с указанием номера строки.

Используйте PROSTRCT ADD для добавления новых областей хранения и экстентов к новой или существующей области в online.

PROSTRCT ADDONLINE имеет следующие ограничения:

- Нельзя запускать более одной сессии PROSTRCT ADDONLINE, в один момент времени.
- Если текущие пользователи не имеют достаточных привилегий доступа к новым экстентам, вы можете выполнить их добавление, но такие пользователи будут отключены от базы как только они попытаются обратиться к вновь созданным экстентам. К тому же, это может произойти в любое время, например когда пользователю будет необходимо найти место в буферном пуле. Поэтому PROSTRCT ADD проверяет статус текущих пользователей перед добавлением экстентов, и запрашивает вас о необходимости продолжения работы.

Если у базы данных включен механизм after-imaging, необходимо скорректировать целевую базу относительно исходной. Отказ от корректировки целевой базы приведет к тому, что RFUTIL ROLL FORWARD завершится с ошибкой при использовании after-image экстентов. В связи с этим, PROSTRCT ADDONLINE выдаст предупреждение следующего содержания:

Adding a new area online with ai enabled will cause the roll forward
utility to fail unless the corresponding areas are also added to the
target database. (13705)
Do you want to continue (y/n)? (13706)
y

В случае, если во время работы ADDONLINE произойдет ошибка, вновь созданные экстенты будут автоматически удалены.




PROSTRCT BUILDDB

Воссоздание контрольной области (control area) существующей базы данных из структурного файла (.st).

Синтаксис:

prostrct builddb db-name [ structure-description-file ]

Параметры:

db-name
   определяет используемую базу данных

structure-description-file
   указывает на st – файл.

Этот классификатор используется когда контрольная область (DB) базы данных потеряна или повреждена. При этом помните, что BUILDDB выполняет только минимальную проверку результатов создания контрольной области.




PROSTRCT CLUSTER CLEAR

Очищает настройки кластера в мастер блоке базы данных. Такая очистка позволит вам запускать и управлять базой данных в случае необходимости ее использования вне кластера.

Синтаксис:

prostrct cluster db-name clear

Параметры:

db-name
   определяет используемую базу данных

Этот классификатор стоит использовать только в крайнем, аварийном случае. При нормальных обстоятельствах, должна быть использована команда PROCLUSTER для исключения базы данных из кластера.

CLUSTER CLEAR при использовании не очищает за собой кластерные объекты связанные с базой данных. Поэтому, в этом случае Вам придется самостоятельно позаботиться об удалении этих объектов.



PROSTRCT CREATE

Классификатор создает пустую (void) базу данных OpenEdge из предварительно подготовленного структурного файла (.st).

Синтаксис:

prostrct create db-name [ structure-description-file ]
                        [ -blocksize blocksize ]
                        [ -validate ]

Параметры:

db-name
   определяет используемую базу данных

structure-description-file
   определяет st файл, который будет использовать PROSTRCT. По умолчанию, его имя db-name.st. Если вы хотите использовать структурный файл с тем же именем, что и база данных, указывать его здесь не обязательно. PROSTRCT автоматически создаст базу данных из структурного файла с именем как у базы и расширением .st.

-blocksize blocksize
   Определяет размер блока базы данных в байтах, например –blocksize 1024). Максимальное количество индексов, доступных в базе данных основано на размер ее блока.

-validate
   Проверяет содержимое st – файла на наличие синтаксических ошибок. Когда этот параметр определен, база данных не будет создана, или если вы добавляете экстенты – они так же не будут добавлены. Если ошибки будут обнаружены, об этом будет сообщено с указанием номера строки.

PROSTRCT CREATE может использовать минимальное количество информации для создания базы данных. Вам достаточно указать только тип области и расположение экстента.  Так же, если экстент является фиксированным по размеру, можно указать это размер. Вам не обязательно определять специфическое имя и расширение экстента. Утилита генерирует имя и расширение файлов для всей базы данных согласно следующим правилам:

- Контрольная область (.db) и лог файл (.lg) располагаются всегда в каталоге, указанном при определении имени базы данных параметром db-name.
- Если имеется поддержка относительных путей, включающих точку (.), относительный путь будет преобразован в абсолютный. Начало относительного пути будет определяться от текущего рабочего каталога.
- Для BI экстентов, имя файла присваивается такое же как и имя базы данных, но с расширением .bn,  где n это порядковый номер экстента.
- Для AI экстентов, имя файла присваивается такое же как и имя базы данных, но с расширением .an,  где n это логический номер экстента в порядке которого AI области будут использоваться при работе.
- Для TL экстентов, имя файла присваивается такое же как и имя базы данных, но с расширением .tn.
- Для Schema Area экстентов, имя файла присваивается такое же как и имя базы данных, но с расширением .dn,  где n это порядковый номер экстента, который формируется по мере их добавления.
- Для экстентов данных, имя формируется так же из имени базы данных, плюс номер области. Номер области это уникальный идентификатор отличающийся между областями. Расширение такое же как и у Schema Area - .dn,  где n это порядковый номер экстента.

Вновь созданная база данных не содержит какой либо информации о метасхеме. Она состоит только из Control area (DB), Primary recovery area (BI), After-image (AI), Two-phase commit log (TL), областей хранения данных (.dn) и структурного файла (.st).

После создания пустой (void) базы данных, необходимо добавить информацию о метасхеме. OpenEdge располагает так называемыми empty базами данных, каждая из которых подготовлена для определенного размера блока базы. Скопируйте соответствующую empty базу данных во вновь созданную вашу базу, при этом убедитесь что размер блока обеих баз совпадает. Для копирования необходимо использовать только команды OpenEdge – PROCOPY или PRODB.

Примечание: нельзя создать базу данных в указанном каталоге, если там уже существует база данных с таким же именем.




PROSTRCT LIST

Создает структурный файл (.st) на основании указанной базы данных OpenEdge. Классификатор может быть использован в online.

Синтаксис:

prostrct list db-name [ structure-description-file ]

Параметры:

db-name
   указывается многотомная база данных, структурный файл которой вы хотите обновить.

structure-description-file
   определяет имя структурного файла. Если имя файла не указать, PROSTRCT использует базовое имя и обновит структурный файл (.st) базы данных, фактически это будет перезапись существующего st файла базы данных.

Так же, на экран будет выведена информации о областях хранения, экстентах, их типах, размерах, номерах и именах.

Классификатор рекомендуется использовать всегда, после изменения структуры базы данных. Это небходимо для проверки этих изменений.




PROSTRCT REMOVE

Классификатор удаляет области или экстенты областей хранения.

Синтаксис:
prostrct remove db-name extent-token storage-area

Параметры:

db-name
   указывается база данных, в которой будет производиться удаление.

extent-token
   индикатор типа удаляемого экстента. Возможны следующие варианты:
- d, удаление экстента данных.
- bi, удаление before-image экстента.
- ai, удаление after-image экстента.
- tl, удаление transaction log экстента.

storage-area
   указывается имя области хранения для удаления.

При этом вы не можете удалить экстент, если он используется или содержит какие-либо данные.

Перед удалением необходим усечь bi файл.

Перед удалением экстента из TL области, вы должны отключить механизм two-phase commit.

Так же необходимо отключить after-imaging перед удалением переменных или фиксированных AI экстентов.

Для проверки корректности удаления, используете классификатор LIST утилиты PROSTRCT.



PROSTRCT REORDER AI

Переупорядочивает AI экстенты.

Синтаксис:

prostrct reorder ai db-name

Параметры:

db-name
   указывается имя базы данных в которой вы хотите переупорядочить AI экстенты.

Используется в случае отсутствия empty AI экстентов, например, в следствии их блокировки OpenEdge Replication. REORDER AI переместит empty AI экстенты за busy экстенты в порядке переключения. При этом произойдет переименование AI экстента и перепривязка к другой области. Сразу же после реорганизации выполните команду PROSTRCT LIST для обновления st файла.




PROSTRCT REPAIR

Обновляет информацию в контрольной области базы данных после перемещения или переименования экстента.

Синтаксис:

prostrct repair db-name [ structure-description-file ]

Параметры:

db-name
   указывает на используемую базу данных.

structure-description-file
   указывает на st – файл, который содержит скорректированную информацию. Если параметр опущен, используется стандартный структурный файл базы данных – db-name.st.

Вы не можете использовать REPAIR для добавления или удаления экстентов. Вы можете использовать его только для переопределение места расположения существующего экстента.

Перемещение экстентов должно быть выполнено вручную. PROSTRCT REPAIR только корректирует список файлов базы данных (.db), чтобы он содержал новые позиции экстентов.





PROSTRCT STATISTICS

Отображает статистическую информацию по областям хранения  относительно указанной базы данных.

Синтаксис:

prostrct statistics db-name

Параметры:

db-name
   указывается имя базы данных.

PROSTRCT STATISTICS отображает следующие данные:

- имя базы данных.
- Размер блока базы данных, размер блока before-image и after-image.
- Область хранения и каждый ее экстент.
- Общее количество активных блоков размещенных для каждой области.
- Общее количество блоков в каждой области.
- Общее количество empty блоков в каждой области данных.
- Общее количество extent блоков для каждой области данных.
- Общее количество записей на блок для каждой области.
- Общее количество всех блоков (active, active free, empty).
- Дата и время последней полной резервной копии.

Когда PROSTRCT STATISTICS запускается на базе данных, находящейся в online, отображаемые значения могут быть некорректными, поскольку база данных может быть изменена. Не запускайте утилиту относительно поврежденной базы данных, для этого необходимо сначала выполнить процедуру восстановления. К пустой (void) базе данных доступ этой команде запрещен.




PROSTRCT UNLOCK

Позволяет получить доступ к структуре поврежденной базы данных и корректировать различие в дате создания и открытия заголовочного блока файла базы данных и мастер блока. Это особенно полезно при попытке открытия базы данных принудительно или при восстановлении потерянного файла базы данных. Используйте эту возможность только в качестве последнего варианта.

Синтаксис:

prostrct unlock db-name [ -extents ]

Параметры:

db-name
   имя базы данных для принудительного доступа.

-extents
   Заменяет потерянные экстенты на пустые экстенты.

Когда база данных находит несоответствие между данными и логом восстановления, она генерирует сообщение об ошибке и блокирует все попытки открытия базы данных. Обычно, несовместимость между файлами, это результат случайного неправильного использования утилит копирования операционной системы, из-за ошибок удаления, или неправильно использования процедур резервного восстановления.

Если первый файл данных (.d1) потерян, база данных не может быть открыта из-за потерянного мастер блока. PROSTRCT UNLOCK с параметром –extents, тем не менее, позволит открыть базу данных, создав в замен потерянных экстентов точную их копии, но без данных. Это позволяет получить доступ к сильно поврежденным базам данных.

Запомните, PROSTRCT UNLOCK не восстанавливает разрушенную базу данных. Он только позволяет получить доступ к поврежденной базе данных, для того чтобы продолжить полноценное использование такой базы, необходимо предварительно выполнить дополнительные процедуры восстановления. Обычно это ограничивается выгрузкой оставшихся данных, для последующей их загрузки в новую.






Утилита PROUTIL


Утилита PROUTIL способна выполнять огромное количество различных операций с базой данных. Вид выполняемой операции зависит от используемого классификатора и сопутствующих его параметров.

Общий синтаксис утилиты следующий:

proutil db-name -C qualifier

Где,

db-name
   указывается имя используемой  базы данных.


   Указывает на использование конкретной утилиты или функции PROUTIL.

qualifier
    определяет используемый классификатор.

PROUTIL так же работает с параметрами интернационализации, такими как –cpinternal или –cpstream.

Каждый классификатор утилиты и его назначение описан в следующей таблице:

 Классификатор
 Описание
 2PHASE BEGIN  Включение two-phase commit
 2PHASE COMMIT  Определение базы-координатора совершенной транзакции
 2PHASE END  Отключение two-phase commit
 2PHASE MODIFY  Изменяется псевдоним или приоритет базы данных для two-phase commit
 2PHASE RECOVER
 Завершение или прерывание неопределенной (limbo) транзакции в базе данных.
 AUDITARCHIVE  Архивация данных аудита из базы данных в двоичный файл
 AUDITLOAD  Загрузка данных аудита из двоичного файла в базу данных
 BIGROW  Определяет количество BI кластеров, доступных базе данных
 BULKLOAD  Загрузка текстовых данных в базу данных
 BUSY  Определяет, является ли база данных на текущий момент используемой.
 CHANALYS  Отображает информацию о блоках в свободной цепочке (free chain)
 CODEPAGE- COMPILER
 Компиляция conversion map файла из текстового формата в двоичный
 CONV910  Конвертация базы данных версии Progress 9 в версию Progress 10.
 CONVCHAR  Конвертация набора символов базы данных или установка набора символов, для неопределенных баз.
 CONVFILE  Конвертация текстового файла из одного набора символов в другой набор символов.
 DBANALYS
 Отображает статистическая информация относительно индексов, записей и свободной цепочки блоков.
 DBAUTHKEY  Устанавливает ключ авторизации для базы данных.
 DBIPCS  Отражает нформацию о статусе разделяемых сегментов памяти, закрепленных за всеми базами данных OpenEdge в системе
 DESCRIBE  Описывает доступные возможности базы данных.
 DISABLEAUDITING
 Отключения аудита для базы данных
 DISABLEJTA  Отключение базы данных от участия в распределенных JTA транзакциях
 DISABLEKEYEVENTS  Отключение сохранения событий базы данных в базе данных
 DISPTOSSCREATELIMITS  Отображает блочный предел и ограничение создания всех таблиц и BLOB поле для области
 DUMP  Выполнение двоичной выгрузки.
 DUMPSPECIFIED
 Выполнение выборочной выгрузки, позволяя выгружать значение полей.
 ENABLEAUDITING  Включение аудита для базы данных
 ENABLEJTA  Включение базы данных в механизм распределенных JTA транзакций
 ENABLEKEYEVENTS  Включение хранения событий базы данных в базе данных
 ENABLELARGEFILES  Включение поддержки больших файлов для базы данных
 ENABLELARGEKEYS
 Включение поддержки больших ключей для баз данных мигрирующих на версию 10.1B
 ENABLESEQ64  Включение поддержки 64-битных секвенций для баз данных мигрирующих на версию 10.1B
 HOLDER  Определяет, используется ли база данных в настоящий момент в однопользовательском, многопользовательском режимах или утилитами.
 IDXACTIVATE  Активация не активных индексов
 IDXANALYS  Отображается информация по индексным блокам
 IDXCOMPACT
 Выполняется сжатие индексов в online и увеличения пространства в индексных блоках, определенным процентом сжатия.
 IDXMOVE  Перемещение индексов из одной прикладной области данных в другую в online
 IDXBUILD  Организация индексных записей с целью улучшения использования дискового пространства. Активация не активных индексов. Восстановление поврежденных индексов базы данных.
 IDXCHECK Проверка индексов базы данных с целью обнаружения повреждений и диагностика проблем.
 IDXFIX  Проверка база данных на предмет наличия поврежденных индексов или записей имеющих некорректные индексы. Вы можете как отдельно сканировать индексы и записи, так и все вместе сразу. Также IDXFIX может восстанавливать поврежденные индексы.
 IOSTATS  Обеспечивает текущей статистикой активной базы данных, которая включает буферизованные и не буферизованные, а также логические операции ввода/вывода. Статистика суммируется с момента запуска базы данных.
 LOAD
 Выполнение двоичной загрузки данных
 MVSCH  Перемещение схемы после конвертации базы данных.
 RCODEKEY  Включение ключа авторизации в существующий CRC r-код
 REVERT  Проверка базы данных версии 10.1B или выше, на предмет возможности возврата к версии 10.1A
 SETAREACREATELIMIT  Установка ограничений создания для конкретной области
 SETAREATOSSLIMIT  Установка ограничений дозаписывания (toss limit) для конкретной области.
 SETBLOBCREATELIMI
 Установка ограничения создания BLOB объектов
 SETBLOBTOSSLIMIT  Установка ограничения дозаписывания (toss limit) для BLOB объектов.
 SETTABLECREATELIMIT  Установка ограничения создания для конкретной таблицы
 SETTABLETOSSLIMIT  Установка ограничения дозаписывания (toss limit) для конкретной таблицы.
 TABANALYS  Отображает информацию относительно фрагментации каждой таблицы в базе данных
 TABLEMOVE
 Перемещение таблицы и возможно связанных с ней индексов из одной области хранения в другую, в online
 TRUNCATE AREA  Усечение прикладной области хранения данных в базу данных. Используется перед удалением области хранения и экстентов.
 TRUNCATE BI  Выполняет три функции: использует информацию из BI файла для актуализации базы данных; ожидает, чтобы проверить, что информация была успешно записана на диск; усекает BI файл до исходного размера. Настройка размера BI кластера осуществляется параметром Before-image Filename (-bi), настройка размера BI блока – параметром Before-image Block Size (-biblocksize).
 UPDATESCHEMA  Загрузка в указанную базу данных самой последней метасхемы.
 UPDATEVST  Обновление виртуальных таблиц базы данных
 WBREAK- COMPILER  Компиляция word-break таблицы
 WORD-RULES
 Компиляция word-rules файла





Классификатор PROUTIL 2PHASE BEGIN

Включение two-phase commit для OpenEdge базы данных.

Синтаксис:

proutil db-name -C 2phase begin [ -crd | -tp nickname ] ...

Параметры:

db-name
   указывается используемая база данных.

-crd
   Указывает на получение наивысшего приоритета базе данных при установки базы координатора. Если это не будет указано, PROUTIL произвольно выберет базу координатора из доступных баз.

Указание конкретной базы координатора, существенно упрощает процесс решения неопределенных (limbo) транзакций, поскольку PROUTIL не должен обращаться к другим базам координаторам.

-tp nickname
   Определяет уникальное имя, которое использует PROUTIL для идентификации базы координатора. Если параметр указан не будет, PROUTIL автоматически использует имя взятое из имени базы данных, без расширения .db. Использование уникальных имен (nickname) баз данных упрощает решение неопределенных (limbo) транзакций, в случае, когда две базы данных имеют одинаковые названия, но размещены на разных машинах.

Классификатор нельзя применить если база данных находится в online.

Для использования two-phase commit, вам также необходимо предварительно создать TL (Transaction log) области, которые используются для хранения информации о распределенных транзакциях, подобно BI файлу.




Классификатор PROUTIL 2PHASE COMMIT

Определяет, совершена лит транзакция в базе координаторе..

Синтаксис:

proutil db-name -C 2phase commit tr-number

Параметры:

db-name
    Указывается база координатор.

tr-number
    указывается номер транзакции, у которой нужно проверить статус.

Если координатор завершил транзакцию, PROUTIL выдаст следующее сообщение:

Transaction 768 has committed. (2048)

Как только вы определили, что транзакция завершена на базе координаторе, вы можете завершите ее на базе, на которой возникла неопределенная транзакция. Если координатор не завершил транзакцию, вы должны прервать неопределенную транзакцию в базе в которой она возникла.




Классификатор PROUTIL 2PHASE END

Отключение механизма two-phase commit.

Синтаксис:

proutil db-name -C 2phase end

Параметры:

db-name
    имя базы данных для которой отключается two-phase commit.




Классификатор PROUTIL 2PHASE MODIFY

Изменение уникального имени (nickname) или приоритета базы данных для механизма two-phase commit.

Синтаксис:

proutil db-name -C 2phase modify [ -crd | -tp nickname ] ...

Параметры:

db-name
  указывается используемая база данных

-crd
   Определяет, может ли база данных выступать координатором. Если применить этот параметр относительно базы данных, которая уже является кандидатом в координаторы, произойдет противоположный эффект, т.е. она более не будет являться кандидатом. И наоборот.

-tp nickname
   Определение нового уникального имени (nickname) для базы координатора. Использование уникальных имен баз данных упрощает решение неопределенных (limbo) транзакций, в случае, когда две базы данных имеют одинаковые названия, но размещены на разных машинах




Классификатор PROUTIL 2PHASE RECOVER

Завершение или прерывание неопределенных (limbo) транзакций в базе данных.

Синтаксис:

proutil db-name -C 2phase recover

Параметры:

db-name
   указывается имя базы данных с неопределенной (limbo) транзакцией.

Когда будет запущена команда относительно базы данных с неопределенными транзакциями, PROUTIL отобразит сообщение подобное следующему:

Commit transaction 760, on coordinator sports1 #768 (y to commit/n to
abort)? (2039)

Если вы введете y, PROUTIL завершит транзакцию. Если введете no, PROUTIL прервет транзакцию.




Классификатор PROUTIL AUDITARCHIVE

Архивация записей из аудиторских таблиц в двоичный файл.

Синтаксис:

proutil db-name -C auditarchive [date-range]
     [-recs num-recs] [-nodelete] [-checkseal]
     [-directory directory-name]
     [-userid user-id [-password passwd] ]

Параметры:

db-name
   указывается база данных, данные аудита которой необходимо архивировать

date-range
   когда определен, ограничивает архивирование записей как описано в следующей таблице:

 Значение Действие
 Не указано  Все данные аудита включаются в процесс архивации
 Указана одна дата  Архивируются все данные аудита с датой меньшей или равной указанной даты.
 Две даты, разделенные пробелом  Архивируются все данные между указанным периодом дат. Сначала нужно указать начало периода, а потом его кончание.


data-range имеет следующий формат:

– “mm-dd-yyyy hh:mm:ss.sss+hh:mm”. Вы должны обязательно заключить даты в кавычки. Например, указание даты 5 часов 47 минут 8 апреля 2008 года по Алматинскому времени, будет выглядеть так: “04-08-2008 17:47:00.000-06:00”.

-recs num-recs
   Указывается количество записей удаляемых в одной транзакции. AUDITARCHIVE запускает транзакцию на каждые num-recs записей для удаления. Значение по умолчанию равно 100, максимально возможное значение ограничено текущим значением Lock Table Entries (-L). В многопользовательском режиме, значение –L по умолчанию равно 8192.

-nodelete
   Определяет, что после копирования данных не нужно их удалять из исходной базы. Если параметр не определен, то после копирования, AUDITARCHIVE удалит записи из исходной базы данных.

-checkseal
   Определяет, что AUDITARCHIVE должен проверять штамп каждой записи аудиторских данных на соответствие MAC key базы данных, перед записью их в файл архива. Этот параметр требует, что бы политикой безопасности при записи аудиторских данных был определен Security Level of DB Passkey.

-directory directory-name
   Определяет каталог, в которую архив аудита будет записан. Если значение не будет определено, файл будет создан в текущем рабочем каталоге. В случае, если файл архива с таким именем уже существует в указанном каталоге, вам будет выдано сообщение с предупреждением и предложено либо прекратить работу, либо продолжить с перезаписью файла.

Если же вы просто хотите очистить данные аудита, без сохранения в архивный файл, можно указать в качестве каталога выгрузки “/dev/null/”.

-userid username
   Определяется имя пользователя имеющего права выполнения архивации. Если вы используете таблицу _User, пользователь должен быть там зарегистрирован, и параметр –userid в данном случае обязателен. Если вы не используете таблицу _User, использование параметра может быть как дополнительная опция, и в этом случае пользователь будет определен на основании данных операционной системы. В любом случае, пользователь должен иметь права архиватора данных аудита, для работы с AUDITARCHIVE.

-password passwd
   Указывается пароль пользователя. Если используется таблица _User, пароль должен соответствовать записи в этой таблице. Значение пароля может быть как в виде обычного текста, так и зашифрованным.  Если таблица _User не используется, и используется ID пользователя в операционной системе, passwd должен быть зашифрован с помощью DB Pass key. Если вы не укажите пароль, утилита сама предложит его ввести.

Архивация данных происходит и таблиц _aud-audit-data и _aud-audit-data-value. Так же копируются данные из таблиц _db-detail, _client-session и _aud-event. Архивируемые данные записываются в один файл с именем db-name.abd, чтобы данные из всех таблиц рассматривались как единое целое. Файл помечен временной меткой и MAC ключом на текущий момент времени.

Архивирование данные является контролируемым событием. Т.е. Если вы настроили правило аудита, на контроль архивирования данных, то при каждой работе AUDITARCHIVE, это событие будет сгенерировано и записано. При этом, это событие не будет удалено из базы данных после выполнения AUDITARCHIVE.

Примечание:

- Для выполнения AUDITARCHIVE требуются права Audit Archive.
- AUDITARCHIVE может работать с базой данных, находящейся как в offline так и в online.
- Несколько сессий AUDITARCHIVE могут работать параллельно, но при этом выходные файлы должны располагаться в различных каталогах. При загрузке таких данных, в случае наличия дублирующих записей, AUDITLOAD будет игнорировать дубликаты без ошибок.
- Если выходной файл архива с таким же именем уже существует в указанном каталоге, AUDITARCHIVE не перезапишет его, а задаст вопрос о необходимости перезаписи или прерывании работы.
- Если архивный файл превысит ограничение по размеру файлов в вашей операционной системе, будет создан второй архивный файл – db-name2.abd.





Классификатор PROUTIL AUDITLOAD

Загрузка данных аудита в базу данных из архивного файла аудита.

Синтаксис:

proutil db-name -C auditload archive-file-name
      [-recs num-recs] [-checkseal]
      [-userid user-id [-password passwd] ]

Параметры:

db-name
   определяет базу данных в которую бужет производиться загрузка.

archive-file-name
   определяет файл архива

-recs num-recs
   Определяет количество записей, загружаемых в базу в одной транзакции. AUDITARCHIVE создает транзакцию для каждых num-recs записей. Значение по умолчанию равно 100, максимальное значение ограничено параметром Lock Table Entries (-L). В многопользовательском режиме значение параметра –L равно 8192.

-checkseal
   Перед загрузкой AUDITLOAD проверяет печать каждой загружаемой записи на соответствие MAC key. Этот параметр требует, что бы политикой безопасности при записи аудиторских данных был определен Security Level of DB Passkey. Перед началом загрузки записей , AUDITLOAD загружает данные в таблицу _db-detail, содержащие MAC key, для обеспечения этой проверки.

-userid username
    Определяется имя пользователя имеющего права выполнения загрузки. Если вы используете таблицу _User, пользователь должен быть там зарегистрирован, и параметр –userid в данном случае обязателен. Если вы не используете таблицу _User, использование параметра может быть как дополнительная опция, и в этом случае пользователь будет определен на основании данных операционной системы. В любом случае, пользователь должен иметь права архиватора данных аудита, для работы с AUDITLOAD.

-password passwd
   Указывается пароль пользователя. Если используется таблица _User, пароль должен соответствовать записи в этой таблице. Значение пароля может быть как в виде обычного текста, так и зашифрованным.  Если таблица _User не используется, и используется ID пользователя в операционной системе, passwd должен быть зашифрован с помощью DB Pass key. Если вы не укажите пароль, утилита сама предложит его ввести.

Если в процессе загрузки AUDITLOAD обнаружат дублирующие записи, дубликаты будут проигнорированы без ошибок.

Загрузка аудиторских данных является контролируемым событием. Т.е. Если вы настроили правило аудита, на контроль архивирования данных, то при каждой работе AUDITLOAD, это событие будет сгенерировано и записано.

Примечание:

- Для выполнения загрузки требуются права Audit Data Archiver.
- AUDITLOAD может быть использован когда база находится как в online так и в offline.
- Несколько сессий AUDITLOAD могут работать одновременно.
- AUDITLOAD создает индекса загружаемых данных в момент загрузки.




Классификатор PROUTIL BIGROW

Определяет предварительно отформатированное количество BI кластеров для базы данных.

Синтаксис:

proutil db-name -C bigrow n [ -r ]

Параметры:

db-name
   определяется база данных для которой создаются BI кластера

n
   количество создаваемых BI кластеров для базы данных.

-r
   Параметр Nonreliable I/O – отключение надежности.

Примечание:

- Вычислить необходимое количество кластеров можно путем деления физического размера BI файла на размер BI кластера. Например, для базы данных, у которой BI файл с размером BI кластера равным 128K и физическим размером самого файла равным 917 504, понадобится 7 BI кластеров.
- По умолчанию, BI кластера создаются при запуске. Все BI кластера, определенные параметром n, добавляются к основным четырем.
- База данных при использовании BIGROW должна находиться в offline.
- BIGROW должен использоваться сразу после усечения (truncate) BI файла.



Классификатор PROUTIL BULKLOAD

Загрузка текстовых данных в базу данных.

Примечание: bulk loader работает только с базами данных OpenEdge. Для баз данных других производителей необходимо использовать рекомендуемые ими соответствующие средства. В случае отсутствия такого средства, можно использовать стандартные опции Data Administration или Data Dictionary.

Синтаксис:

proutil db-name [-yy n] -C BULKLOAD fd-file [-B n]

Параметры:

db-name
   определяет используемую базу данных.

-yy n
   Параметр запуска Century Year Offset. n определяет четырех знаковый номер года (например, 1900) и указывает на начало 100 летнего период для любого определения года в формате двух знаков. По умолчанию, это значение равно 1950, имейте ввиду, значение этого параметра должно соответствовать его значению при выгрузке данных.

fd-file
   определяет файл описания для bulk loader.

-B n
   Количество блоков в буферном пуле.

Примечание:

- Вы должны создать файл описания для bulk loader и загрузить файл описания базы данных (.df) до запуска утилиты Bulk Loader.
- Невозможно использовать BULKLOAD для загрузки данных аудита.




Классификатор PROUTIL BUSY

Определение, используется ли база данных в текущий момент.

Синтаксис:

proutil db-name -C busy

Параметры:

db-name
   определяет имя используемой базы.

Это полезно проверять перед выполнение резервной копии или  остановки базы данных. Использование базы данных означает, что она находит в одном из следующих состояний – в однопользовательском режиме; в многопользовательском режиме или используется утилитами OpenEdge.

Для проверки состояния, запустить PROUTIL с классификатором BUSY, который возвратит код состояния базы. Описание кодов приведено в следующей таблице:

Код возврата
Значение
 0  База данных не используется
 6  База данных используется
 64  База данных в процессе запуска

Ниже приведен пример скрипта обработки результата работы классификатора в операционной системе UNIX:

proutil mydb -C busy
if [ $? != 0 ]
then
      echo
      echo \"Do you want to use ‘proshut’ to force users off\\
              the system?\"
      read ans
      if [ \"$ans\" = y ]
      then
              proshut -by mydb
      else
              echo \"Backup will not be performed.\"
              exit
      fi
fi
echo \"Beginning backup.\"
# Backup procedure




Классификатор PROUTIL CHANALYS

Отображает информацию о свободной (free) и RM цепочках. Вычисляется количество доступных блоков в них.

Синтаксис:

proutil db-name -C chanalys

Параметры:

db-name
    определяется используемая база данных.



Классификатор PROUTIL CODEPAGE-COMPILER

Компилируется conversion map файл из текстового формата в двоичный.

Синтаксис:

proutil -C codepage-compiler inputfile outputfile

Параметры:

inputfile
   указывается имя текстового conversion map файла. Это файл должен быть в определенном формате.

outputfile
   указывается имя двоичного conversion map файла.

Примечание:

- Conversion map файл - это файл описания кодовых страниц, содержащий информацию о страницах в определенном формате. За более подробной информацией можно обратиться к документации OpenEdge Development: Internationalizing Applications





Классификатор PROUTIL CONV910

Конвертация базы данных Progress версии 9 в OpenEdge 10.

Синтаксис:

proutil db-name -C conv910

Параметры:

db-name
    указывается имя исходной базы данных.

Примечание:

- Перед выполнением конвертации необходимо:
    Выполнить резервную копию базы данных средствами 9 версии Progress.
    Отключить After-imaging.
    Отключить two-phase commit.
    Усечь (truncate) BI файл.
- Всегда существует вероятность, что во время конвертации схема базы будет повреждена. Если это произойдет, база данных будет повреждена и не подлежит восстановлению. У вас останется только один выход – восстановление базы данных из резервной копии, предварительно вернувшись на версию Progress 9.
- После завершения конвертации, сформируйте резервную копию базы данных средствами OpenEdge 10.





Классификатор PROUTIL CONVCHAR

Конвертация набора символов (characters set) базы данных  или  установка набора символов для неопределенной (undefined) базы данных.

Синтаксис:

proutil db-name -C convchar [ analyze | charscan | convert ]
                                [ codepage ] [ character-list ]

Параметры:

db-name
    определяется конвертируемая база данных

analyze
   cканирование полей базы данных на предмет обнаружения возможных ошибок конвертации, связанных с невозможностью преобразования символов.

charscan
   ищет каждое символьное поле содержащее любой символ поддерживаемые списком символов и выдает отчет о имени таблици, имени поля, ID записи и общем количестве символов. Кроме того, PROUTIL CONVCHAR CHARSCAN выполняет тот же анализ что и PROUTIL CONVCHAR ANALYZE. Если неправильные данные будут обнаружены, PROUTIL CONVCHAR сгенерирует сообщение об ошибке и продолжит сканирование.

convert
   преобразование символьных данных в целевую кодовую страницу и меток базы данных. Примечание: PROUTIL CONVCHAR CONVERT не преобразует DBCODEPAGE CLOB (character large objects) в новую кодировку. Вместо этого происходит изменение DBCODEPAGE CLOB в COLUMN-CODEPAGE CLOB их текущих параметров настройки.

codepage
   содержит название кодовой страница для преобразования. Возможны любые кодовые страницы, входящие в состав conversion map (по умолчанию, OpenEdge-install-dir/convmap.cp). PROUTIL находит в этом файле соответствующую кодовую страницу и использует ее. Если же вы определите UNDEFINED, база данных не будет конвертирована, а внутренняя метка кодовой страницы станет UNDEFINED.

Когда вы преобразуете базу с кодовой страницей «UNDEFINED»  с помощью proutil dbname –C convchar convert codepage, PROUTIL CONVCHAR сгенерирует сообщение об ошибке. После получения этого сообщения, вам необходимо загрузить collation table для указанной кодовой страницы. Collation table это файл определения данных, имеющий расширение .df, и расположенный в OpenEdge-install-dir/prolong/<language>.

Если вы используете этот параметр совместно с параметром analyze, произойдет сканирование базы данных на предмет возможности конвертации ее символьных данных из текущей кодировки в указанную вами.

character-list
   определяет, в кавычках, строку разделенных запятой чисел в шестнадцатеричном или десятичном формате. Эти числа являются значениями символов в кодовой странице. Для определения диапазона, используйте мнус (-). Можно не использовать кавычки, если числа перечислены без пробелов.

Шестнадцатеричные значения должны начинаться на 0x. Например, для десятеричных значений “128, 129, 130” строка PROUTIL CONVCHAR выглядит так:

proutil sports2000 -C convchar charscan ibm850 “0x80, 0x81, 0x82”

Строка для десятичных и шестнадцатиричных значений будет выглядеть так:

proutil sports2000 -C convchar charscan 1253 “128, 0xC2, 0x7f, 122”

Если в строке будут содержаться некорректные символы, PROUTIL CONVCHAR их проигнорирует, например, в следующем случае:

proutil sports2000 -C convchar charscan 1253 \"49854 - 50050\"

будет произведен поиск и выдано следующее:

Charscan searching for utf-8 character: 49854 0xc2be. (6570)
Charscan searching for utf-8 character: 49855 0xc2bf. (6570)
Charscan searching for utf-8 character: 50048 0xc380. (6570)
Charscan searching for utf-8 character: 50049 0xc381. (6570)
Charscan searching for utf-8 character: 50050 0xc382. (6570)

Если используется charscan, но при этом список символов не определен, будет выполнена функция analyze.

При конвертации наборов символов (character set), PROUTIL CONVCHAR преобразует все текстовые данные в базе данных. Для получения более подробной информации о перекодировке, обратитесь к документации OpenEdge Development: Internationalizing Applications




Классификатор PROUTIL CONVFILE

Конвертация текстового файла из одного набора символов в другой.

Синтаксис:

proutil -C convfile { file-name convert using table-name
                   | file-name [ analyze ] }

Параметры:

file-name
    указывается имя файла для конвертации или анализа.

convert using table-name
   определяется имя файла, содержащего таблицу конвертации. Этот файл имеет следующий формат:

# optional comment lines begin with the # character
SOURCE source-codepage-name
TARGET target-codepage-name
/*000-015*/000 001 002 003 004 005 006 007 008 009 010 011 012 013 014
/*016-031*/016 017 018 019 020 021 022 023 024 025 026 027 028 029 030
/*032-047*/032 033 034 035 036 037 038 039 040 041 042 043 044 045 046
.
.
.
/*240-255*/240 241 242 243 244 245 246 247 248 249 250 251 252 253 254

Где source-codepage-name это имя набора символов для file-name, а target-codepage-name – имя набора нового символов для file-name.

Таблица конвертации состоит из 256 ячеек, пронумерованных от 0 до 255.  Вы можете создать свою таблицу конвертации, или использовать стандартные таблицы, расположенные в каталоге prolong. Если вы создали свою таблицу, вы должны понимать, как PROUTIL CONVFILE с ней работает. Для каждого символа в file-name, PROUTIL CONVFILE использует числовое значение символа для индексации его в таблице. Оно размещается в соответствующей ячейке таблицы, PROUTIL CONVFILE заменяет символ в текстовом файле значением символа из ячейки. Следовательно, вы должны сделать копию текстового файла перед тем как запустите PROUTIL CONVFILE, поскольку если утилита не до конца преобразует файл, файл будет поврежден.

analyze
   номер каждого символа в file-name. Вы можете сравнить полученный результат относительно различных кодовых страниц.




Классификатор PROUTIL DBANALYS

Отображает статистическую информацию относительно индексов, записей и свободных (free) блоках базы данных.

Синтаксис:

proutil db-name -C dbanalys

Параметры:

db-name
    определяется используемая база данных.

Следующий пример, демонстрирует часть предоставляемой информации:





Классификатор PROUTIL DBAUTHKEY

Установка ключа авторизации для базы данных.

Синтаксис:

proutil db-name -C dbauthkey old-key new-key

Параметры:

db-name
    определяется используемая база данных.

old-key
    указывается старый ключ авторизации.

new-key
    указывается новый ключ авторизации.

Примечание:

- DBUTHKEY используется для установки, изменения и удаления ключа авторизации. Когда вы компилируете исходный код, этот ключ включается в r-код. Такой r-код не будет работать если ключ авторизации базы данных, включенный в него, будет некорректным. Следующая таблица отображает значения, которые вы должны ввести при различных задачах:
 Задача  Значение old-key  Значение new-key
 Установка ключа авторизации  Плюс (+)  Ключ авторизации
 Изменение ключа авторизации  Текущий ключ авторизации  Новый ключ авторизации
 Удаление ключа авторизации  Текущий ключ авторизации  Плюс (+)

- Как только вы установили ключ авторизации, не забудьте его. Вы не сможете изменить или удалить его, если вы не знаете текущего значения.
- После установки, изменения или удаления ключа авторизации для базы данных, вы можете использовать классификатор RCODEKEY для обновления r-кодов без перекомпиляции.




Классификатор PROUTIL DESCRIBE

Отображает описывающую базу данных информацию и имеющихся дополнительных включенных характеристиках.

Синтаксис:

proutil dbname -C describe

Параметры:

db-name
    определяется используемая база данных.

PROUTIL DESCRIBE обеспечивает основное описание базы данных и детально описывает включенные характеристики.

Далее приведен пример результата работы классификатора:

Где,

Database Name
    Полное имя базы данных

Version
     Внутренний номер версии базы данных

Block Size
    Размер блока базы данных в байтах

Largest Cluster
   Наибольший размер кластера, для всех областей базы данных.

Create Date
   Дата и время создания базы данных

Last Open Date
    Дата и время последнего открытия базы данных

Prior Open Date
    Дата и время предпоследнего открытия базы данных

Schema Change Date
    Дата и время последнего изменения схемы базы данных.\\

Before Imaging Information
    Детализации Before-image области, включающая:
- Block Size – размер before-image блока в байтах
- Cluster Size (16K Units) – размер кластера Before-image, измеряется в юнитах по 16K.
- Last OpenDate – Дата и время последнего открытия Before-image Log.

After Imaging Information
   Детализация After-imaging области, если after-imaging включен, включая:
- Block Size – размер AI блока в байтах
- Begin Date – Дата и время старта after-imaging
- Last AIMAGE NEW – Дата и время выполнения последней команды RFUTIL AIMAGE NEW  для переключения экстентов.
- Currently Busy Area – номер текущей AI области со статусом BUSY.
- Current File Number – Текущий номер AI файла/

Two-Phase Commit Information
    Детализация two-phase commit, если включен, включая:
- Nickname – уникальное имя 2PC базы данных
- Coordinator Priority – 2PC приоритет координатора для базы данных.

Backup Inform
    Детализация последнего резервирования базы данных:
- Last Full Backup Date – дата и время формирования последней полной резервной копии
- Last Incremental Backup – дата и время формирования последней инкрементальной копии.

Database Features
    Детализации включенных характеристик базы данных:
- ID – идентификационный номер характеристики
- Feature – имя характеристики
- Active – Статус, если актвина – Yes, иначе – NO.
- Details – дополнительная информация по характеристике.

Ниже приведена таблица ID и имен возможных характеристик:
ID
ИМЯ
 1  OpenEdge Replication
 3  DataXtend Remote Edition
 5  Large File support
 6
 Database Auditing
 7  JTA
 8  AI Management
 9  64-bit DB Keys
 10  Large Keys (for indexes)
 11  64-bit Sequences
 12  DataXtend Integration Edition
 -  Failover Clusters
 -  Save Key Events


DESCRIBE может быть запущен на базе данных, находящейся как в online, так и в offline.




Классификатор PROUTIL DBIPCS

Отображает информацию о сегментах разделяемой памяти закрепленных за базами данных OpenEdge в системе. Классификатор используется только в Unix.

Синтаксис:

proutil -C dbipcs

Пример:

Следующий пример демонстрирует результат работы PROUTIL DBICS.

PROGRESS SHARED MEMORY STATUS
ID         ShMemVer         Seg#         InUse         Database
68            -                         -                  -            (not PROGRESS)
100          3                        0               Yes          /db/work5/sports
101          3                        1                  -            /db/work5/sports
120          3                        0                No          /db/work5/test

ID
    ID разделяемой памяти (shared-memory)

ShMemVer
     Версия разделяемой памяти

Seg#
   Номер сегмента разделяемой памяти. Для одной базы данных может быть выделено более одного сегмента памяти.

InUse
   Определяет, используется ли сегмент. Значения Yes или No отображается только если сегмент имеет номер 0.  Для всех остальных сегментов указан дефис (-). Для определения, используется ли сегмент или нет, необходимо рассматривать сегмент с номером ноль (0).

Database
   Представляет полный путь к базе данных, связанной с сегментом.

Примечание:

- Количество используемых сегментов и общую сумму разделяемой памяти можено так же посмотреть с помощью утилиты PROMON в меню Activity.
- В UNIX, для определения размеров и количество используемых сегментов разделяемой памяти, можно воспользоваться командой ipcs –m. В случае если брокер был «убит» не средствами OpenEdge, он не освобождает за собой сегменты разделяемой памяти. С помощью PROUTIL DBIPCS вы можете определить номера таких сегментов и освободить их командой UNIX ipcrm –m.




Классификатор PROUTIL DISABLEAUDITING

Отключение аудита для базы данных.

Синтаксис:

proutil db-name -C disableauditing [-userid username [-password passwd ] ]

Параметры:

db-name
    имя базы данных для которой хотите отключить аудит.

-userid username
   Указывается пользователь с правами Audit Administrator, позволяющими выполнить процедуру.

-password passwd
   Пароль пользователя.

Перед отключением аудита необходимо очистить таблицы аудита. Если база данных будет содержать информацию в таблицах _aud-audit-data и _aud-audit-data-value, при выполнении команды, аудит будет деактивирован вместо того чтобы быть отключенным.

Если аудит будет деактивирован, на экран будет выведено следующее сообщении:

Auditing was not fully disabled because auditing data tables are not empty.
(13647)
Auditing has been deactivated, no additional auditing records will be
recorded. (13649)

Если же таблицы аудита пусты, аудит будет отключен, и выведено следующее сообщение:

Auditing has been disabled for database db-name. (12490)

Примечание:
- Только пользователь с правами Audit Administrator способен отключить аудит.
- Во время отключения база данных должна находиться в offline.
- Отключение не удаляет записи данных аудита и аудиторские таблицы.
- Доступ к аудиторским данным по прежнему остается только у авторизованных пользователей аудита.



Классификатор PROUTIL DISABLEJTA

Отключение базы данных от работы с распределенными JTA транзакциями.

Синтаксис:

proutil db-name -C disablejta

Параметры:

db-name
   имя базы данных для отключения.

База данных должна находиться в offline в момент отключения работы с JTA транзакциями.




Классификатор PROUTIL DISABLEKEYEVENTS

Отключение сохранения событий базы данных в базе данных.

Синтаксис:

proutil db-name -C disablekeyevents

Параметры:

db-name
    имя базы данных в которой происходит отключение.

Примечание:

- База данных может находиться в online в момент отключения.
- События, хранимые в таблицы _KeyEvt не будут удалены после выполнения PROUTIL DISABLEKEYEVENTS.




Классификатор PROUTIL DISPTOSSCREATELIMITS

Отображение toss и create лимитов для указанной области.

Синтаксис:

proutil db-name -C disptosscreatelimits area-number

Параметры:

db-name
    имя используемой базы данных

area-number
    номер области для отображения лимитов.

База данных должна находиться в offline во время работы утилиты.




Классификатор PROUTIL DUMP

Выполнение двоичной выгрузки содержимого таблиц в файл.

Синтаксис:

proutil db-name -C dump [owner-name.]table-name directory [ -index num ]
         {[-thread n ] [-threadnum nthreads] [-dumplist dumpfile] }

Параметры:

db-name
   имя базы данных из которой будет выполнена выгрузка. Если база данных находится не в текущем рабочем каталоге, необходимо указать полный путь к базе.

owner-name
   определяет владельца таблиц, содержащих данные для выгрузки. Вы можете не определять владельца, если таблица является уникальной в базе данных, ил если владельцем является PUB. По умолчанию, владельцем ABL таблиц является PUB.

table-name
   указывается имя таблицы, содержащей данные для выгрузки.

directory
   указывается имя каталога, в который будут выгружены данные.

-index num
   указывается индекс, используемый при выгрузки содержимого таблицы. Заметьте, что текстовые (word) индексы не допускаются к использованию. Если этот параметр не будет использован, при выгрузки будет  задействован первичный (primary) индекс.

-thread n
   для базы данных с лицензией Enterprise, индикатор использования многопоточной выгрузки. Если указать ноль (0), будет использоваться однопоточная выгрузка, если единицу (1) – многопоточная.

-threadnum nthreads
   для многопоточной выгрузки, указывает на количество создаваемых потоков. По умолчанию, количество потоков равно количеству CPU. Фактически, созданное количество потоков может быть меньше указанного значения. PROUITL DUMP определяет количество создаваемых потоков на основании сложности используемого для выгрузки индекса.

-dumplist dumpfile
   для многопоточной выгрузки, создает файл, dumpfile, со списком всех файлов созданных утилитой. Этот файл используется как входной параметр при двоичной загрузке (PROUTIL LOAD).

PROUTIL DUMP записывает данные из таблиц в файл или множество файлов. Когда процедура завершится. Будет выдан отчет о количестве записанных в файл данных. Для многопоточной выгрузки, будет выдано также количество записей записанных в файлы каждым потоком.

PROUTIL DUMP и LOAD используют циклическую проверку CRC для значений, чтобы установить критерии загрузки.  Open Edge поддерживает гибкую архитектуру хранения и способность перемещения объектов, например, таблиц и индексов, пока база данных остается в online. Как результат, когда выполняется двоичная загрузка, номе таблицы в файл выгрузки может не соответствовать номеру таблицы в загружаемой базе данных. Тем не менее, при выполнении операции загрузки, критерии загрузки таблиц основываются исключительно на циклической проверки избыточности - (Cyclic Redundancy Check) CRC, а не на номерах таблиц.

Например, когда вы загружаете таблицу, PROUTL рассчитывает значение CRC  для таблицы и сохраняет его в заголовке двоичного файла выгрузки. Когда вы загружаете таблицу, PROUTIL сравнивает значение CRC, хранимое в заголовке, со значением CRC целевой базы данных. Эти величины должны соответствовать, в противном случае, загрузка будет отвергнута.

Вы также можете загружать файлы выгрузки, сохранные предшествующей версией PROUTIL DUMP, поскольку текущая версия PROTUIL LOAD использует значение CRC, установленной во время создания оригинального файла выгрузки. Следовательно, база данных поддерживает обратную совместимость.

Имя создаваемых файлов выгрузки зависит от владельца таблицы. По умолчанию, ABL таблицы имеют хозяина PUB. Когда владельцем таблицы является PUB, однопоточная выгрузка или offline выгрузка будет формировать файл имя которого будет состоять из имени таблицы и расширения .bd. Например, tablename.bd. Тем не менее, когда владельцем таблицы является не PUB. Выгрузка в файл создаст имя файла сформированное на основании имени владельца и имени таблицы, например, ownername_tablename.bd.

В системах, имеющих ограничение по размеру файлов в 2GB, PROUTIL DUMP создаст множество файлов в момент, когда файл превысит 2 GB. Например, когда вы выгружаете данные из таблицы с именем “customer” размер которой 6,4 GB, PROUTIL DUMP создаст четыре двоичных файла выгрузки: customer.db, customer.bd2 и customer.bd3, каждый из файлов примерно по 2 GB, а также файл customer.bd4, размер которого примерно 0,4 GB. PROUTIL DUMP добавляет заголовок в каждый двоичный файл выгрузки. Поэтому общий размер файлов становится больше чем размер данных таблицы.

В системах без ограничения 2GB предела, RPOUTIL DUMP, запущенный в однопоточном режиме, создаст только один двоичный файл выгрузки независимо от размеров таблицы.

При многопоточной выгрузки, PROUTIL DUMP создает множество файлов, по одному на каждый поток. При этом, каждый поток создает файл с порядковым номером – tablename.bdn. Используйте параметр –dumpfle для генерации списка созданных файлов многопоточной выгрузкой.

Если файл, указанный параметром –dumpfile, уже существует, то он будет перезаписан.

PROUTIL DUMP также поддерживает выгрузку двоичных больших объектов (BLOB objects).

PORUTIL DUMP не записывает кодовую страницу данных в файл выгрузки. Выгруженные данные должны быть загружены в базу данных с соответствующей им кодовой странице. Для преобразования кодовой страницы, необходимо использовать ASCII выгрузку и загрузку данных.

Вы не можете использовать DUMP для выгрузки защищенных данных аудита.




Классификатор PROUTIL DUMPSPECIFIED

Выполнение выборочной двоичной выгрузки записей.

Синтаксис:

proutil db-name -C dumpspecified [owner-name.]table-name.field-name
                         operator field-value directory

Параметры:

db-name
   указывается имя базы данных из которой произойдет выгрузка. Вы должны указать полный путь.

owner-name
   определяет владельца таблиц, содержащих данные для выгрузки. Вы можете не определять владельца, если таблица является уникальной в базе данных, ил если владельцем является PUB. По умолчанию, владельцем ABL таблиц является PUB.

table-name
   указывается имя таблицы, содержащей данные для выгрузки.

operator
   определяет используемый оператор: EQ (равно), GT (больше чем), LT (меньше чем), GE (Больше или равно) и LE (меньше или равно).

field-value
   определяет значение, с которым значение поля из field-name будет сравнено.

directory
   указывает на имя каталога, в который будет производиться выгрузка.

Если необходимое поле должно сравниваться не только с символьными значениями (например, пробел и цифры), строка должна быть заключена в кавычки. Например, “John Smith”, “11-14-2008” или “25 Main St”.

Выгрузка данных происходит с учетом верхнего регистра.

В случае определения денежного значения, не включайте символ валюты. Например, вметсо $5,50 необходимо ввести 5,50.

При использовании отрицательных значений, используйте косую черту (\\) для его экранирования. Наример, proutil testdb –C dumpspecified “PUB.Item.Item-NUM” LT “\\-90”.

Даты должны вводиться в формате mm-dd-yyyy.

Нельзя использовать PROUTIL DUMPSPECIFIED для выгрузки защищенных данных аудита.




Классификатор PROUTIL ENABLEAUDITING

Включение аудита для базы данных.

Синтаксис:

proutil db-name -C enableauditing area Area-Name
     [indexarea Index-Area-Name ] [deactivateidx ]

Параметры:

db-name
    имя базы данных для включения аудита

area Area-Name
   имя области хранения, в которой будут размещены таблицы с данными аудита. Если имя содержит пробел, вы должны заключить его в кавычки.

indexarea Index-Area-Name
   имя области хранения, в которой будут размещены индексы таблиц аудита. Если имя содержит пробел, вы должны заключить его в кавычки.

deactivateidx
   деактивация не первичных индексов для таблиц аудита.

Для обеспечения безопасности, на момент включения аудита, таблицы аудита не должны содержать информации. Когда аудит в базе данных включен, она может находиться в двух возможных состояниях: auditing disabled (аудит блокирован или не когда ранее не включался) или auditing is deactivated (аудит деактивирован).

В первом случае, при успешном включении, вы получите следующее сообщение:

Auditing has been enabled for database db-name. (12479)

Если в ваше базе данных аудит блокирован (disabled), и таблицы аудита содержат данные, вы получите следующее сообщение об ошибке:

Auditing can not be enabled because auditing data tables are not empty. (13650)

Если в ваше базу данных аудит деактивирован, успешное включении аудита выдаст следующее сообщение:

Auditing has been activated

При первоначальном включении аудита, мета-схема базы данных будет дополнена мета-схемой аудита и заполнена таблица событий.

При включении аудита, база данных должна находиться в offline.

Рекомендуется, чтобы таблицы и индексы аудиторских данных хранились в отдельной области.

Для улучшения производительности  использлования аудиторских данных, в качестве опции доступна возможность отключения не первичных индексов. Деактивированные индексы можно активировать с помощью PROUTIL IDXBUILD. Не первичные индексы полезны только для получения аудиторских отчетов, и имеют смысл быть активированными только на архивной базе данных.




Классификатор PROUTIL ENABLEJTA

Включение базы данных для работы с распределенными JTA транзакциями.

Синтаксис:

proutil db-name -C enablejta

Параметры:

db-name
   имя базы данных, которую нужно включить для работы с JTA транзакциями.

При этом, база данных должна находиться в offline.

База данных, с включенным механизмом работы с JTA транзакциями, при запуске должна выполнить crash recovery в многопользовательском режиме.

Включение механизма JTA транзакций отключает after-imaging. Поэтому, вам нужно будет заново включить after-imaging на такой базе данных.




Классификатор PROUTIL ENABLEKEYEVENTS

Включение механизма сохранения событий базы данных в базу данных.

Синтаксис:

proutil db-name -C enablekeyevents [area-name]

Параметры:

db-name
   имя базы данных для включения механизма

area-name
   имя области, в которой будут сохраняться события базы. Если area-name не указана, то таблица хранения событий, _KeyEvt, будет создана в Schema Area.

При первом выполнении ENABLEKEYEVENTS для базы данных, будет создана таблица _KeyEvt в указанной области  хранения, или, если она не указана, то в Schema Area. Последующее выполнение команды, игнорирует параметра area-name.

Для включения механизма, база данных должна находиться в offline.




Классификатор PROUTIL ENABLELARGEFILES

Включение возможности работы базы данных с большими файлами.

Синтаксис:

proutil db-name -C EnableLargeFiles

Параметры:

db-name
   имя базы данных для работы с большими файлами.

Примечание:

- База данных должна находиться в offline.
- Не существует команды для отключения поддержки больших файлов.
- Поддержка больших файлов доступна только при наличии Enterprise лицензии.




Классификатор PROUTIL ENABLELARGEKEYS

Включение поддержки больших платежей для базы данных мигрирующей на версию OpenEdge 10.1B.

Синтаксис:

proutil db-name -C enablelargekeys

Параметры:

db-name
   определяет базу данных для включения поддержки больших ключей.

Поддержка больших ключей увеличивает размеры пользовательских данных в плане индексов с 200 байт до 1970 байт.

Примечание:

- Большие ключи поддерживаются для баз данных только с размером блока 4K или 8K.
- Поддержка больших ключей не может быть отключена.
- Поддержка больших ключей может вызвать проблемы при работе более старых клиентов. Клиенты версии 10.1A и старше, не могут обновлять или удалять записи и поля имеющие большие ключи индексов. PROUTIL ENABLELARGEKEYS перед началом выполнения выдает предупреждающее сообщение и  запрашивает подтверждение дальнейшего выполнения:

$ proutil docsample -C enablelargekeys
OpenEdge Release 10.1B1P as of Mon Oct 23 19:54:20 EDT 2006
If you enable large key entries support for this database, it may cause
runtime issues to pre-10.1B clients that connect to this database.
Do you really want to enable large keys support? (y/n) (13929)
y
Large Key Entry Feature enabled for database docsample. (13700)
$

- База данных может находиться как в online так и в offline.
- Если база данных в момент включения поддержки больших ключей, будет находиться в online, большие ключи будут доступны только для новых подключений.
- База данных с поддержкой больших ключей не может быть возвращена на формат версии 10.1A командой PROUTIL REVERT.
- База данных с размером блока 4K и 8K, созданная под версией 10.1B, имеет поддержку больших ключей по умолчанию.
- После включения поддержки больших файлов переиндексация индексов не требуется.



Классификатор PROUTIL ENABLESEQ64

Включение поддержки 64-битных секвенций для баз данных конвертированных  на 10.1B.

Синтаксис:

proutil db-name -C enableseq64

Параметры:

db-name
    имя базы данных.

Примечание:

- В момент работы утилиты база данных может находиться как в offline, так и в online.
- База данных созданной под версией 10.1B, имеет поддержку 64-битных секвенций по умолчанию.
- Поддержка 64-битных секвенций не может быть отключена.
- База данных с поддержкой 64-битных секвенций не может быть возвращена на формат версии 10.1A командой PROUTIL REVERT.
- Существующие секвенции с верхним пределом, указанным как Unknown value (?), были ранее ограничены максимальным значением 32-х разрядного целого числа. Теперь они ограничены максимальным значением 64-х разрядного целого числа.




Классификатор PROUTIL HOLDER

Определяется статус использования базы данных: однопользовательский режим, многопользовательский режим или использование утилитами.

Синтаксис:

proutil db-name -C holder

Параметры:

db-name
    указывается используемая база данных.

Примечание:

- Когда классификатор HOLDER отработает, он возвращает код возврата, который может использоваться в криптах. Эта информация полезна перед формированием резервной копии или перед остановом базы данных. Код возврата используемые в UNIX описаны в следующей таблице:
 Код возврата  Описание
 0  База данных не используется
 14  База данных заблокирована в однопользовательском режиме утилитами PROUTIL или RFUTIL
 16  База данных используется в многопользовательском режиме

Любой другой не нулевой код возврата указывает на наличие ошибки.

- При переходе от одной версии OpenEdge на другую, коды возврата могут отличаться. Имейте это ввиду во время переходов между версиями, чтобы своевременно корректировать скрипты использующие коды возврата.
- Следующий пример демонстрирует, как можно использовать классификатор HOLDER при выполнении резервной копии:

proutil mydb -C holder
retcode=$? # this saves the return code
case $retcode in
0) echo \"The database is not busy, ok to backup\"
   ;;
14) echo \"The database is locked, no backup done\"
   exit $retcode
   ;;
16) echo \"The database is busy in multi-user mode, no backup done\"
   exit $retcode
   ;;
*) proutil failed, no backup done
   echo error code = $retcode
   exit $retcode
   ;;
esac
proutil mydb -C truncate bi
<<test the return value from proutil here>>
<<put the backup command here>>
rfutil mydb -C mark backedup



Классификатор PROUTIL IDXACTIVATE

Активация не активных индексов.

Синтаксис:

proutil db-name -C idxactivate [owner-name.]table-name.index-name
                   [useindex table-name.index-name] [recs n] [refresh t]

Параметры:

db-name
   определяет базу данных, в которой нужно активировать неактивные индексы.

[owner-name.]table-name.index-name
   Определяет индекс для активации. Вы должны указать таблицу и индекс. Указывать владельца таблицы имеет смысл если владельцев у таблицы несколько.

useindex table-name.index-name
   определяет индекс по которому будет происходить доступ к записи для построения активируемого индекса. Этот индекс должен быть активным. Если этот параметр будет опущен, утилита будет использовать первичный (primary) индекс.

recs n
   определяется количество записей, обрабатываемых в одной транзакции. По умолчанию в одну транзакцию включается 100 записей.

refresh t
   определяется частота обновления клиентского экрана, который блокирует активируемый индекс. По умолчанию это 60 секунд. Вы можете установить его вплоть до 300 секунд. Подключенные клиента с временной меткой схемы меньшей чем временная метка активируемого индекса, предотвратят активацию.

Примечание:

- IDXACTIVE может работать с базой данных, находящейся как в offline, так и в online.
- Если IDXACTIVE обнаружит клиентов с меньшей временной меткой индекса, вам придется подождать, пока они сами отключатся или можете отключить их самостоятельно командой PROSHUT. Индекс не может быть активирован пока имеются такие пользователи.
- Вы не можете активировать с помощью IDXACTIVE индексы схемы и аудиторских таблиц.




Классификатор PROUTIL IDXANALYS

Отображает информацию о состоянии индексных блоков.

Синтаксис:

proutil db-name -C idxanalys

Параметры:

db-name
    база данных для анализа.

IDXANALYS рассчитывает количество индексных блоков и процент их использования в базе данных. Следующий пример показывает часть анализа индексов:





Классификатор PROUTIL IDXBUILD

Перестройка индексов, их упаковка и консолидация индексных записей на диске с целью более эффективного их использования.

Внимание! Сформируйте резервную копию перед выполнением  IDXBUILD. Единственный метод восстановления базы данных после сбоя во время переиндексации, это восстановление ее из резервной копии.

Синтаксис:

proutil db-name -C idxbuild
  [ all |table [owner-name.]table-name | area area-name |
  schema schema-owner | activeindexes | inactiveindexes]
  [ -thread n ] [ -threadnum n ]
  [ -T dir-name | -SS sort-file-directory-specification ]
  [ -TB blocksize ] [ -TM n ] [ -B n ] [ -SG n ]

Параметры:

db-name
    имя используемой базы данных

all
   указывает, что вы хотите перестроить все индексы. PROUTIL автоматически начнет перестройку всех ваших индексов без запроса требований дискового пространства.

table [owner-name.]table-name
   указывает, что вы хотите перестроить индексы только для конкретной таблицы. Когда этот параметр используется в командной строке, PROUTIL автоматически перестроит индексы таблицы без запроса требований дискового пространства.

area area-name
   определяет, что вы хотите перестроить все индексы находящиеся в указанной области. Когда этот параметр используется в командной строке, PROUTIL автоматически перестроит индексы таблицы без запроса требований дискового пространства.

schema schema-owner
   определяет, что вы хотите перестроить индексы принадлежащие владельцу schema-owner. Когда этот параметр используется в командной строке, PROUTIL автоматически перестроит индексы таблицы без запроса требований дискового пространства.

activeindexes
   указывает, что вы хотите перестроить только все текущие активные индексы.

inactiveindexes
   указывает, что вы хотите перестроить только все неактивные индексы. После перестройки, все неактивные индексы будут активированы.

-thread n
   Для баз данных с лицензией Enterprise, IDXBUILD выполняет многопоточную перестройку по умолчанию. Параметр –thread позволяет отключать многопоточность.  По умолчанию, n равно единицы (1), что является индикатором многопоточности. Для ее отключения, установите значение равным нулю (0).

-threadnum n
   Для баз данных с лицензией Enterprise, IDXBUILD выполняется в многопоточном режиме, параметр – threadnum позволяет контролировать максимальное количество создаваемых потоков. По умолчанию, максимальное количество потоков, n, равно количеству CPU. Установив значение n равным нулю (0), можно отключить многопоточность.

-T dir-name
   Определяет имя каталога к котором будут хранится временные файлы. Если параметр не будет указан, временные файлы будут сохраняться в текущий рабочий каталог.

-SS sort-file-directory-specification
   Идентифицирует имя файл с указанием каталогов для сортировки. Если этот параметр указан, PROUTIL игнорирует параметр Temporary Directory (–T).

-TB n
   Указывает, что перестройка индекса будет выполнена с использованием скоростной сортировки (Speed Sort). n указывает на размер блоков, в килобайтах.

-TM n
   Определяет число слияния. n указывает количество блоков или потоков объединяемых в процессе сортировки.

-B n
   Определяет количество блоков в буферном пуле базы данных.

-SG n
  Определяет, что перестраиваемые индексы организуются в группы. n указывает количество индексных групп, используемых IDXBUILD и должно быть величиной от 8 до 64. Значение по умолчанию равно 48. Заметьте, что для каждой такой группы создаются свои временные файлы.

Большое значение –SG требует большего количества используемой памяти и большего количество файловых дескрипторов. Для определения количества памяти (в килобайтах) для каждой индексной группы, добавите 1 к значению параметра –TM, и умножьте суму на размер блока сортировки (-TB). Таким образом формула следующая: (-TM + 1) * -TB.

Если вы не укажите параметры all, table, area или schema, на экран будет выдано следующее сообщение:

Index Rebuild Utility
Select one of the following:
All                   (a/A) - Rebuild all the indexes
Some              (s/S) - Rebuild only some of the indexes
By Area           (r/R) - Rebuild indexes in selected areas
By Schema     (c/C) - Rebuild indexes by schema owners
By Table         (t/T) - Rebuild indexes in selected tables
By Activation  (v/V) - Rebuild selected active or inactive indexes
Quit        (q/Q) - Quit, do not rebuild
Enter your selection:

Пункты этого меню описаны в следующей таблице:
Меню
Действие
 All  Запрашивает вас о наличии необходимого дискового пространства для сортировки.
 Some  Запрашивает информацию о индексе для перестройки, сначала имя таблицы, затем индекс. Так же запрашивается информация о наличии дискового пространства.
 By Area  Запрашивает имя области, содержащей индексы для перестройки, затем индексы в области, а затем информацию о доступном дисковом пространстве.
 By Schema  Запрашивает имя владельца перестраиваемых индексов, затем индексы, а затем информацию о доступном дисковом пространстве.
 By Table  Запрашивает имя таблицы перестраиваемых индексов, затем индексы, а затем информацию о доступном дисковом пространстве.
 By Activation  Предлагает выбрать активные или неактивные индексы, запрашивает сами индексы, а затем информацию о доступном дисковом пространстве
 Quit  Выход из переиндексации
   
Дополнительно к перестройке индексов, IDXBUILD также:

- Сжимает индексные блоки для минимизации использования дискового пространства.
- Активирует не активные индексы.
- Восстанавливает поврежденные индексы в базе данных. (О поврежденных индексах обычно информируется сообщениями об ошибке)

Примечание:

- Используйте IDXFIX для восстановления и IDXCOMPACT для сжатия индексов в online.
- Используете параметр запуска –T, чтобы идентифицировать или переадресовывать временные файл, созданные утилитой PROUTIL в указанный каталог при сортировке и решении проблем с дисковым пространством.
- Для улучшения производительности используйте параметры Speed Sort (-TB), Merge Number (-TM), Sort Grouping (-SG) и Blocks in Database Buffers (-B).
- IDXBUILD не восстанавливает поврежденные записи данных.
- Используйте следующие формулы для расчета необходимого свободного места используемого для сортировки:
    Если вы перестраиваете все индексы в базе данных, до доступное протсранство для сортировки может понадобиться до 75% от общего размера базы.
    Если вы перестраиваете конкретные индексы, то понадобившееся место может быть в три раза больше чем размер записей в таблице, которые индексируются индексом.
- Index Rebuild перестраивает индексы в течении трех фаз:
    Утилита сканирует области базы данных, очищая индексные блоки, принадлежащие индексам и добавляет их список свободных блоков.
    Сканируются все области базы данных и перестраиваются все индексы для каждой записи. Если вы выбираете сортировку индексов, утилита записывает индексные вхождения в файл сортировки. В противном случае, утилита записывает индексные данные в соответствующий текущей точке индекс.
    Если вы указали, что имеет достаточно места для индексной сортировки, утилита уплотняет индекс, сортируя индексные вхождения в файлах сортировки по группам, и внося их в индекс сразу за один раз.





Классификатор PROUTIL IDXCHECK

IDXCHECK проверяет базу данных на наличие испорченных индексов, и если они есть, то выполняет диагностику проблемы.

Синтаксис:

proutil db-name -C idxcheck [ all |table [owner-name.]table-name |
           area area-name | schema schema-owner]

Параметры:

db-name
    указывается база данных для проверки индексов.

all
    определяет, что вы хотите проверить все индексы.

table [owner-name.]table-name
   определяет, что вы хотите проверить индексы указанной таблицы.

area area-name
   определяет, что вы хотите проверить все индексы указанной области.

schema schema-owner
   определяет, что вы хотите проверить все индексы принадлежащие владельцу, указанному в schema-owner.

Если вы не укажите all, table, area или schema, на экран утилита выведет следующее меню:

Index Check Utility
Select one of the following:
All                        (a/A) - Check all the indexes
Some                  (s/S) - Check only some of the indexes
By Area              (r/R) - Check indexes in selected areas
By Schema        (c/C) - Check indexes by schema owners
By Table             (t/T) - Check indexes in selected tables
Quit (q/Q) - Quit, do not Check
Enter your selection:

Меню PROUTIL IDXCHECK:
Меню
 Действие
 All  Проверка всех индексов
 By Area  Запрашивает имя области, содержащей проверяемые индексы
 By Schema  Запрашивается владелец схемы, которому принадлежат проверяемые индексы
 By Table  Запрашивается таблица, содержащая проверяемые индексы
 Some  Запрашиваются конкретные индексы для проверки
 Quit  Выход без проверки  индексов.

PROUTIL IDXCHECK сообщает вам, необходимо ли выполнить перестройку индекса перед фактическим выполнением PROUTIL IDXBUILD. IDXCHECK выполняет следующие операции для каждого проверяемого индекса:

- Считывает содержимое индекса и содержимое таблицы, проверяет, что все значения в записи проиндексированы, и проверяет, что каждое значение индекса связанно с записью.
- Выполняет различные проверки структуры индекса, для нахождения повреждений.

Если PROUTIL IDXCHECK завершит работу успешно, это гарантирует, что FIND, CAN-FIND, GET, FOR EACH и PRESELECT будут корректно работать с этими индексами. Если имели место ошибки, то указанные операторы могут возвращать непредсказуемый результат.

Примечание:

- Когда PROUTIL IDXCHECK найдет повреждение, он сообщит об ошибке на экран. Если сообщение появляется, то сохраните копию базы данных, и выполните PROUTIL IDXBUILD.
- IDXCHECK отображает ошибки и предупреждающие сообщения на экран и сохраняет их в лог файл. Так же он отображает и записывает успешное выполнение или различные неудачи, вместе с номерами ошибок и предупреждающими сообщениями.
- Предупреждающие сообщения указывают только на наличие проблемы, при этом это обычно означает, что индекс все еще целый. Для получения детального описания просмотрите лог файл.



Классификатор PROUTIL IDXCOMPACT

IDXCOMPACT выполняет сжатие индексов в online.

Синтаксис:

proutil db-name -C idxcompact [ owner-name.]table-name.index-name [ n ]

Параметры:

db-name
    указывает исходную базу данных.

owner-name
   определяет владельца таблицы, содержащей индекс. Вы должны указывать владельца, только если имя таблицы не уникально в пределах базы данных или таблица не принадлежит PUB. PUB это значение по умолчанию для ABL таблиц.

table-name
   указывается имя таблицы содержащей сжимаемый индекс.

index-name
   указывается имя сжимаемого индекса.

n
   определяет степень и индексного сжатия. Вы можете определить целочисленное значение от 50 до 100. Значение по умолчанию равно 80. Если вы хотите оставить это значение, указывать n не нужно.

Примечание:

- Индексное сжатие рекомендуется в случае если PROUTIL IDXANALYS показал процент утилизации (Util %) в районе 60% или меньше. Индексное сжатие увеличивает Uril% до значения указанное параметром n.
- Сжатие уменьшает количество блоков B-дереве (tree) и по возможности количество уровней B-дерева, что улучшает производительность системы.
- Сжатие происходит в течении трех фаз:
    Фаза 1 – если индекс уникальный, сканируемая цепочка удаляется и очищаются индексные блоки путем стирания удаленных индексных вхождений.
    Фаза 2 – уровни B-дерева, не являющиеся «листьми» (завершающими), сжимаются начиная от «корня» дерева двигаясь по направлениб к «листьям».
    Фаза 3 – сжимаются уровни «листьев».
- PROUTIL IDXCOMPACT может быть запущен как в online, так и в offline.
- В дополнении к сжатию, утилита очищает «мертвые» индексные вхождения, оставленные после удаления вхождений уникальных индексов.
- Поскольку сжатие индексов происходит в online, другие пользователи, использующие уплотняемый индекс, могут одновременно выполнять операции чтения и записи без ограничений. Сжатие блокирует только три индексных блока одновременно, причем на короткое время. Это полностью допускает нормальную работу параллельных процессов.
- IDXCOMPACT не блокирует любые таблицы и их записи.
- В течении процесса сжатия не допускается использование иных административных действий с индексом.
- В редких случаях, при использовании высокого процента уплотнения, желаемый результат может быть не достигнут. Повторная попытка обработки, может исправить это.




Классификатор PROUTIL IDXFIX

IDXFIX проверяет записи и индексы для определения испорченных индексов и записей с отсутствующими или неправильными индексами. Так же он выполняет исправление разрушенных индексов.

Синтаксис:

proutil db-name -silent -C idxfix [-userid username [-password passwd ] ]

Параметры:

db-name
   указывается имя проверяемой базы данных.

silent
   указывает, что повторные сообщения не отправляются на экран или в лог файл.

-userid username
   указывается пользователь, имеющий права доступа к защищенным данным аудита, для выполнения этой утилиты.

-password passwd
   пароль пользователя.

С помощью PROUTIL IDXFIX, вы можете определить – сканировать базу данных, индексы или и то и другое. Утилита имеет следующее меню:

Index Fix Utility
Select one of the following:
1. Scan records for missing index entries.
2. Scan indexes for invalid index entries.
3. Both 1 and 2 above.
4. Cross-reference check of multiple indexes for a table.
5. Build indexes from existing indexes.
6. Delete one record and its index entries.
7. Quit
Enter your selection:

Описание меню приведено в следующей таблице:
Меню
Действие
 1  Сканирование базы данных на предмет отсутствия или повреждения индексов.
 2  Сканирование индексов на предмет некорректных индексных вхождений. Вы можете выбрать сканирование всех индексов либо сканирование набора конкретных индексов.
 3  Проверка индексных вхождений, и затем, проверка вхождений базы данных.
 4  Запрашивает таблицу и индексы, для которых вы хотите выполнить проверку перекрестных ссылок.

Для указанных индексов выполняется следующий процесс:
- Сканируется индекс и каждое индексное вхождение.
- Для каждого индексного вхождения, выбирается связанная запись по ROWID, и проверяется ее корректность, поля записи должны соответствовать полям формирующим индексный ключ.

После проверки отдельных индексов, проверка «индекс к индексу» подтверждает, что список ROWID, сгенерированный одним индексом, имеет место в другом индексе.
 5  Позволяет восстанавливать различные индексы, на основе одного известного индекса. В запросах введите следующее:
- Table name: введите имя таблицы с индексами.
- Index name: введите имя исходного индекса. Это должен быть хороший индекс, который нужно будет использовать для расположения строк таблицы.
- Следующий запрос Index Name: введите имя индекса для перестройки.
- Введите «!», для завершения ввода имен индексов.

Утилита запросит, чтобы вы проверили введенные данные, после чего приступит к перестройке.
 6  Запрашивает RECID записи, которую вы хотите удалить. При этом, при удалении записи, удаляются все индексы с ней связанные. Используйте это меню, когда запись повредила индексы.
 7  Выход из утилиты PROUTIL Index Fix


Примечание:

- PROUTIL IDXFIX выполняет следующие операции для каждого проверяемого индекса:
    Считывает содержимое индекса и содержимое таблицы, проверяет, что все записи проиндексированы, и проверяет, что каждое значение в индексе связанно с записью таблицы.
    Выполняет различные проверки структуры индекса, для идентификации его повреждений.
- IDXFIX отображает сообщения об ошибках на экран и в лог файле. Он также сообщает об успешных завершениях или о возникших проблемах, вместе с количеством ошибок и предупреждений. IDXFIX может также отображать предупреждающие сообщения. Хотя такие сообщения и возникают, это не означает, что индекс разрушен, для получения подробной информации – обратитесь в лог файл.
- Утилита не может обеспечить сравнение индекса и базы данных при сканировании в online, поскольку база может быть изменена во время этой операции.
- Утилита разработана так, чтобы она могла ожидать, пока записи находится в процессе изменения, таким образом гарантирую, что не произойдет некорректных изменений такой записи. Тем не менее, поскольку изменения могут произойти во время сканирования, итоговый отчет может не соответствовать действительному состоянию базы данных.
- IDXFIX можно запускать как в online, так и в offline. Тем не менее, для работы в online, IDXFIX должен быть запущен как self-service сессия.
- IDXFIX не удаляет или не отключает индексы, но когда вы запускаете полное сканирование базы данных в offline, и которое успешно завершается, он включает выключенные индексы если не было обнаружено каких-либо ошибок.
- Включение индексов в online не желательно, поскольку не возможно определить, производились ли какие-либо изменения в отношении индекса, пока процесс был запущен.
- Проверка IDXFIX целостности и корректности индекса, не улучшает уровень его использования.
- Работу утилиты можно контролировать используя виртуальную системную таблицу (VST) - _UserStatus.
- IDXFIX требует использования дополнительного уровня безопасности при работе с базой данных со включенной системой аудита (auditing). Только пользователь имеющий права доступа Audit Archiver, могут запускать утилиту на такой базе данных. Для того чтобы утилита могла определить, как работать с базой данных, необходимо указать ID пользователя (-userid) и его пароль (-password).




Классификатор PROUTIL IDXMOVE

IDXMOVE перемещает индекс из одной прикладной области хранения данных в другую, в то время пока база данных находится в online.

Синтаксис:

proutil db-name -C idxmove [ owner-name.]table-name.index-name area-name

Параметры:

db-name
    указывается используемая база данных

owner-name
   указывает владелец таблицы, индекс которой хотите переместить. В можете не указывать имя владельца, если таблица уникальна в пределах базы данных и принадлежит PUB. ПО умолчанию, для ABL таблиц владельцем является PUB.

table-name
   имя таблицы, содержащей перемещаемый индекс.

index-name
   имя перемещаемого индекса.

area-name
   указывается имя целевой области, в которую необходимо переместить индекс. Имя области, содержащее пробел, должно быть заключено в кавычки.

PROUTIL IDXMOVE работает в двух фазах:

- Фаза 1: новый индекс создается в новой области хранения. Старый индекс остается в старой области, и все пользователи продолжают использовать этот индекс для операций чтения.
- Фаза 2: старый индекс удаляется, и все блоки индекса перемещаются в свободную (free) цепочку. Для больших индексов, эта фаза может занять значительное время. Во время этой фазы, все действия с индексом блокированы пока новый индекс не будет доступен. Пользователи, использующие этот индекс, в это время будут наблюдать «замедление» в работе.

Примечание:

- Пока вы выполняете процедуру перемещения, ни какие записи в таблицу или индексы не возможны. IDXMOVE блокирует таблицу с замком SHARE LOCK, что не позволяет ни каких изменений в таблице. Поэтому используйте утилиту, когда система относительно не загружена, или когда пользователи выполняют работу без использования таблицы.
- Ни какие другие административные операции не возможны с перемещаемым индексом, пока он используется утилитой. Такие операции будут блокироваться. Вы не можете запустить одновременно для одного индекса, утилиту перемещения (IDXMOVE), утилиту сжатия (IFCCOMPACT) или утилиту восстановления (IDXFIX).
- Поскольку утилита перемещения блокирует таблицу с замком SHARE, возможно, что ей понадобится некоторое время для ожидания приобретения этого замка.
- Вы можете улучшить производительность за счет перемещения наиболее активных индексов в области хранения, расположенные на отдельных дисках.
- Работу утилиты можно проверить, используя виртуальную системную таблицу (VST) - _UserStatus.



Классификатор PROUTIL IOSTATS

IOSTATS обеспечивает текущей информацией по статистике ввода/вывода в базе данных.

Синтаксис:

proutil db-name -C iostats

Параметры:

db-name
    имя используемой базы данных.

Данная статистика включает буферизованные, не буферизованные и логические операции ввода/вывода. Статистика собирается относительно старта базы данных.

Следующий пример отображает статистику использования базы данных sports:

Database name is sports (2524)
FILE                BUFFERED      UNBUFFERED                 LOGICAL (2556)
                    Writes   Reads   Writes    Reads       Reads    Writes Extends (2557)
========================================================
sports.b1          0          0               317          389          388            252            2
sports.d1         1           173          11             0              171            11               0
sports_7.d1    773      6792        0               0               6790         772             0
FILE

Отображает имя файла, относительно которого выводится статистика. Сюда включаются: файлы базы данных (расширение .db), файлы before-image (.bi), файлы after-image (.ai), файлы экстентов данных (.dn).

BUFFERED
   Отображает количество буферизованных чтений и записей относительно файла.

UNBUFFERED
   Отображает количество не буферизованных чтений и записей относительно файла.

LOGICAL
   Отображает количество клиентских запросов в базу данных для операций чтения и записей относительно файла.

Примечание:

- Статистика является совокупной и сбрасывается при перезапуске базы данных.
- IOSTATS доступен только для базы данных в многопользовательском режиме.
- IOSTATS является хорошей альтернативной PROMON, когда вам необходима только информация по активности экстентов базы данных.
- Вы можете использовать IOSTATS для определения, какой экстент базы данных используется в буферизованном, а какой в не буферизированном режимах.




Классификатор PROUTIL LOAD

LOAD выполняет двоичную загрузку содержимого базы данных.

Синтаксис:

proutil db-name -C load filename [ -dumplist dumpfile ]
          build indexes [-TB blocksize] [-TM n]
      [[-T dir-name] | [-SS sort-file-directory-specification]]

Параметры:

db-name
   указывается имя базы данных, в которую будут загружаться данные. Необходимо указать полный путь к базе данных.

filename
   указывается имя двоичного файла, загружаемого в базу. Необходимо указать полный путь к файлу.

-dumplist dumpfile
   Указывается файл со списком двоичных файлов для загрузки. Может использоваться файл, созданный утилитой PROUTIL DUMP или созданный вручную.

build indexes
   индикатор для PROUTIL LOAD, что необходимо в процессе загрузки создавать индексы.

-TB blocksize
   определяет, что при построении индекса используется механизм сортировки Speed Sort. blocksize устанавливает размер блока в килобайтах.

-TM n
   Определяет номер слияния (merge number). n указывает количество блоков или потоков для объединения в процессе сортировки.

-T dir-name
   Определяет имя каталога для формирования временных файлов сортировки. Если параметр не указан, используется текущий рабочий каталог.

-SS sort-file-directory-specification
   Указывает размещение файл, содержащего описание каталогов для многотомной сортировки. Если вы указали параметр Sort Directory Specification (-SS), PORUITL не использует параметр Temporary Directory (-T).

Примечание:

- Утилиты PROUTIL DUMP и LOAD используют проверку значений CRC (cyclic redundancy check) для установления критериев загрузки.

OpenEdge поддерживает гибкую архитектуру памяти и способность перемещения объектов, таки как таблицы и индексы, в то время как база данных находится в online. Как результат, во время выполнения операции двоичной загрузки, номера таблиц в двоичном файле могут не совпадать с номерами таблиц, размещенных в целевой базе данных. Следовательно, когда вы выполняете двоичную загрузку, критерии загрузки базируются не на номерах таблиц, а исключительно на значениях CRC (cyclic redundancy check).

Например, при выгрузки таблицы, PROUTIL рассчитывает значение CRC для таблицы и сохраняет его в заголовок двоичного файла. Когда происходит загрузка таблицы, PROUTIL сравнивает значение CRC из заголовка файла с значением CRC целевой таблицы. Значения должны быть одинаковыми, в противном случае, загрузка будет не возможной.

Вы можете загружать двоичный файл, созданный предыдущей версией PROUTIL DUMP, поскольку текущая версия PROUTIL LOAD использует значение CRC установленное при первоначальной выгрузке файла. Следовательно, база данных OpenEdge поддерживает обратную совместимость.

Тем не менее, вы не можете использовать PROUTIL LOAD версии 8.3 или меньше, для двоичной загрузки файла созданного версией 9.0 и выше. Более ранний версии PROUTIL DUMP и LOAD не использовали значения CRC для установки критериев загрузки, взамен они использовали другие механизмы, такие как:
    просмотр RECID таблицы в целевой базе данных, для использования номер таблицы с целью сохранения в заголовок двоичного файла выгрузки.
    Сравнение номер таблицы в заголовке загружаемого двоичного файла с номер таблицы в целевой базе данных.
    Сравнение количества полей в двоичном файле с количество полей в таблице целевой базы данных.
- PROUTIL LOAD поддерживает загрузку больших двоичных объектов (BLOBs).
- При использовании PROUTIL LOAD с параметром Build Indexes, PROUTIL помечает существующие индексы как не активные. Как только он завершит создание индексов, они будут помечены как активные. Это означает, что если двоичная загрузка будет прервана по каким-либо причинам, работа PROUTIL будет завершена без активации индексов.
- Таблицы, загружаемые с параметром build indexes, должны быть пустыми.
- Вы не можете использовать PROUTIL LOAD для загрузки защищенных данных аудита.




Классификатор PROUTIL MVSCH

MVSCH освобождает дисковое пространство перемещением схемы. Первоначально используется после преобразования базы данных на новую версию.

Синтаксис:

proutil db-name -C mvsch

Параметры:

db-name
   указывается имя преобразованной базы данных.

Примечание:

- После преобразования, можно переместить данные в новую область используя PROUTIL DUMP и LOAD, или классификатор BULKLOAD. Тем не менее, область останется и будет использовать дисковое пространство, поскольку осталась схема. Как только схема будет перемещена утилитой PROUTIL MVSCH, область может быть усечена.
- Вы должны усечь BI файл после использования PROUTIL MVSCH.
- Всегда создавайте резервную копию базы данных перед использованием этой утилиты. Внимание: утилита PROUTIL MVSCH – не восстанавливаемая, т.е если во время ее работы произойдет сбой, вы не сможете далее использовать базу данных.




Классификатор PROUTIL RCODEKEY

RCODEKEY вставляет ключ авторизации в CRC (cyclic redundancy check) r-кода.

Синтаксис:

proutil db-name -C rcodekey old-key new-key files ...

Параметры:

db-name
    указывается используемая база данных.

old-key
    указывается старый ключ авторизации.

new-key
    указывается новый код авторизации.

files
    указывается r-код файл (.r).

Примечание:

- Когда вы устанавливаете, изменяете или удаляете ключ авторизации с помощью классификатора DBAUTHKEY, вы можете скорректировать новое значение для r-код файлов, не прибегая к перекомпиляции, с помощью классификатора RCODEKEY.

Следующая таблица описывает порядок работы с утилитой в различных случаях:
Задача
old-key
New-key
 Установка ключа  Плюс (+)  Ключ авторизации
 Изменение ключа  Текущий ключ авторизации  Новый ключ авторизации
 Удаление ключа  Текущий ключ авторизации  Плюс (+)

- Как только ключ авторизации установлен – не забудьте его. Вы не сможете изменить или удалить ключ, не зная текущего его значения.


Классификатор PROUTIL REVERT

Возврат базы данных с формата версии 10.1B на формат версии 10.1A.

Синтаксис:

proutil db-name -C revert

Параметры:

db-name
    имя базы данных. Вы не можете осуществить возврат базы данных, созданной версией 10.1B. Вы можете использовать ранее только преобразованную базу данных.

Внимание: утилита PROUTIL REVERT не восстанавливаемая, т.е. в случае сбоя во время ее работы, вы не сможете далее использовать базу данных. Поэтому перед началом ее работы, сформируйте резервную копию базы.

Большая база данных версии 10.1B требует как минимум один ручной шаг для осуществления возврата – запуск этой утилиты. PROUTIL REVERT анализирует базу данных и определяет возможность обратного преобразования. Если утилитой будет решено, что не возможно преобразовать базу данных, единственный выход сделать это будет выполнение перезагрузки данных (D&L).

PROUTIL REVERT не может выполнить обратное преобразование если:

- Схема содержит поля формата INT64.
- Включена поддержка больших ключей для индексов.
- База данных содержит область хранения Type II с пороговым значением использующим 64-битный DB ключ.
- База данных содержит LOB сегменты, использующие 64-битное значение блока.
- База данных имеет области с номерами выше 1000.

PROUTIL REVERT работает следующим образом:

1.    Определяется, что пользователь имеет соответствующие привилегии для выполнения команды. Привилегии ограничены пределами файловой системы для доступа к базе данных.
2.    Анализируется возможность возврата базы данных. Если нет, утилита выдаст сообщение о невозможности возврата и завершится.

Такое сообщение выглядит примерно следующим образом:

   Revert Utility
Feature                                                            Enabled                  Active
--------------------------------                                  -------                       ------
64 Bit DBKEYS                                                   Yes                        Yes
Large Keys                                                          Yes                        Yes
64 Bit Sequences                                               Yes                        Yes
Revert: The database actively supports Large Key Indexes. (13749)
Revert: The database can not be reverted. (13750)
Revert: The database contains 64-bit Sequences. (13751)
Revert: The database can not be reverted. (13750)

3.    Задается вопрос о наличии резервной копии базы данных.
4.    Выполнятеся физическое восстановление преобразовываемой базы данных. Исправления включают:
a.    Возврат значений в мастер блоке базы данных  в формат 10.1A.
b.    Возврат значений блоков объектов в формат 10.1A.
c.    Удаление VST 10.1B и создание VST 10.1A.
d.    Удаление всех настроек 10.1B по маске.
5.    Отключает 2-phase commit, JTA, Replication, After-imaging AI Management, если они активны.
6.    Усекается BI файл/

PROUTIL REVERT в процессе выполнения выдает информационные сообщения, примерно следующего содержания:

Revert Utility
Feature Enabled Active
--------------------------------                            -------                    ------
Database Auditing                                       Yes                     Yes
64 Bit DBKEYS                                            Yes                     Yes
Revert: Have you backed up your database..... Type y to continue (y/n).
(13754)
y
Revert: Database beginning reversion process. (13755)
VST Table Deletion has begun. Please standby. (6876)
VST Table Deletion has completed successfully. (6885)
Revert: 64 Bit Dbkey has been disabled for this database.
After-image disabled. (846)
Revert: Truncating the Bi File.
VST Table Deletion has begun. Please standby. (6876)
VST Table Deletion has completed successfully. (6885)
Adding VST file: _Connect. (6875)
Adding VST file: _MstrBlk. (6875)
Adding VST file: _DbStatus. (6875)
.
.
.
Adding VST file: _AreaThreshold. (6875)
Total number of Virtual System Tables is 45. (6250)
Revert: Database ending reversion process.

Как только PROUTIL REVERT будет завершен, база данных будет находиться в формате 10.1A. Сформируйте резервную копию преобразованной базы данных, так как предшествующие копии в формате 10.1B не совместимы с форматом 10.1A.

Примечание:

- PROUTIL REVERT может быть запущен только на базе данных, находящейся в offline.
- PROUTIL REVERT ожидает нахождение утилиту 10.1A, в установочном каталоге bin. Если эта утилита не будет найдена, PROUTIL CONVERT не сможет восстановить VST 10.1A, о чем выдаст  сообщение. В таком случае, восстановить виртуальные таблицы можно с помощью PROUTIL UPDATEVST.




Классификатор PROUTIL SETAREACREATELIMIT

SETAREACREATELIMIT устанавливается create limit для указанной области.

Синтаксис:

proutil db-name -C setareacreatelimit area-number create-limit

Параметры:

db-name
    указывается база данных для установления лимита.

area-number
   указывается область, для которой устанавливается create limit.

create-limit
   указывается новое значение create limit. Create limit – это общее свободное пространство, которое должно оставаться в блоке при добавлении в него записи.

Примечание:

- SETAREACREATELIMIT устанавливает create limit для всех таблиц и BLOBs в указанной области.
- Значение create limit должно быть больше чем 32 и меньше чем размер блока минус 128 байт.
- Для баз данных с размером блока 1K, значение по умолчанию равно 75. Для баз с другим размером блока – 150.
- При установление create limit база данных должна находиться в offline.




Классификатор PROUTIL SETAREATOSSLIMIT

SETAREATOSSLIMIT устанавливает toss limit для указанной области.

Синтаксис:

proutil db-name -C setareatosslimit area-number toss-limit

Параметры:

db-name
указывается база данных для установления лимита.

area-number
указывается область, для которой устанавливается toss limit.

toss-limit
указывается новое значение toss limit. Toss limit – это минимальное свободное пространство, которое должно остаться в блоке, для того чтобы он оставался в свободной цепочке (free chain), как кандидат на размещение дополнительных записей.

Примечание:

- SETAREATOSSLIMIT устанавливает create limit для всех таблиц и BLOBs в указанной области.
- Значение toss limit должно быть больше чем 0 и меньше чем размер блока минус 128 байт.
- Для баз данных с размером блока 1K, значение по умолчанию равно 150. Для баз с другим размером блока – 300.
- При установление create limit база данных должна находиться в offline.





Классификатор PROUTIL SETBLOBCREATELIMIT

SETBLOBCREATELIMIT устанавливает create limit для BLOB.

Синтаксис:

proutil db-name -C setblobcreatelimit blob-id create-limit

Параметры:

db-name
указывается база данных для установления лимита.

blob-id
определяет BLOB объект для которого устанавливается create limit.

create-limit
указывается новое значение create limit.

Примечание:

- Для области Type II, SETBLOBCREATELIMIT устанавливает create limit для конкретного BLOB. Для области Type I, SETBLOBCREATELIMIT выдает предупреждение, что все таблицы и BLOBs в области должны иметь одинаковый create limit, и запрашивает вас о подтверждении установки create limit для всей области, содержащей указанный BLOB.
- Значение create limit должно быть больше чем 32 и меньше чем размер блока минус 128 байт.
- Для баз данных с размером блока 1K, значение по умолчанию равно 75. Для баз с другим размером блока – 150.
- При установление create limit база данных должна находиться в offline.




Классификатор PROUTIL SETBLOBTOSSLIMIT

SETBLOBTOSSLIMIT устанавливает create limit для BLOB.

Синтаксис:

proutil db-name -C setblobtosslimit blob-id toss-limit

Параметры:

db-name
указывается база данных для установления лимита.

blob-id
определяет BLOB объект для которого устанавливается toss limit.

toss-limit
указывается новое значение toss limit.

Примечание:

- Для области Type II, SETBLOBTOSSLIMIT устанавливает toss limit для конкретного BLOB. Для области Type I, SETBLOBTOSSLIMIT выдает предупреждение, что все таблицы и BLOBs в области должны иметь одинаковый toss limit, и запрашивает вас о подтверждении установки toss limit для всей области, содержащей указанный BLOB.
- Значение toss limit должно быть больше чем 0 и меньше чем размер блока минус 128 байт.
- Для баз данных с размером блока 1K, значение по умолчанию равно 150. Для баз с другим размером блока – 300.
- При установление toss limit база данных должна находиться в offline.




Классификатор PROUTIL SETTABLECREATELIMIT

SETTABLECREATELIMIT устанавливает create limit для таблицы.

Синтаксис:

proutil db-name -C settablecreatelimit table-name create-limit

Параметры:

db-name
указывается база данных для установления лимита.

table-name
определяет таблицу для которого устанавливается create limit.

create-limit
указывается новое значение create limit. Create limit – это общее свободное пространство, которое должно оставаться в блоке при добавлении в него записи.

Примечание:

- Для области Type II, SETTABLECREATELIMIT  устанавливает create limit для конкретной таблицы. Для области Type I, SETTABLECREATELIMIT  выдает предупреждение, что все таблицы и BLOBs в области должны иметь одинаковый create limit, и запрашивает вас о подтверждении установки create limit для всей области, содержащей указанную таблицу.
- Значение create limit должно быть больше чем 32 и меньше чем размер блока минус 128 байт.
- Для баз данных с размером блока 1K, значение по умолчанию равно 75. Для баз с другим размером блока – 150.
- При установление create limit база данных должна находиться в offline.




Классификатор PROUTIL SETTABLETOSSLIMIT

SETTABLETOSSLIMIT устанавливает toss limit для указанной таблицы.

Синтаксис:

proutil db-name -C settabletosslimit table-name toss-limit

Параметры:

db-name
указывается база данных для установления лимита.

table-name
указывается таблицу, для которой устанавливается toss limit.

toss-limit
указывается новое значение toss limit. Toss limit – это минимальное свободное пространство, которое должно остаться в блоке, для того чтобы он оставался в свободной цепочке (free chain), как кандидат на размещение дополнительных записей.

Примечание:

- Для области Type II, SETTABLETOSSLIMIT устанавливает toss limit для конкретной таблицы. Для области Type I, SETTABLETOSSLIMIT выдает предупреждение, что все таблицы и BLOBs в области должны иметь одинаковый toss limit, и запрашивает вас о подтверждении установки toss limit для всей области, содержащей указанную таблицу.
- Значение toss limit должно быть больше чем 0 и меньше чем размер блока минус 128 байт.
- Для баз данных с размером блока 1K, значение по умолчанию равно 150. Для баз с другим размером блока – 300.
- При установление toss limit база данных должна находиться в offline.




Классификатор PROUTIL TABANALYS

TABANALYS отображает информацию о степени фрагментации каждой таблицы в базе данных, попутно отображая данные о размерах записей в таблицах.

Синтаксис:

proutil db-name -C tabanalys

Параметры:

db-name
определяется база данных для формирования анализа.

Пример:

Ниже представлен пример результата работы PORUTIL TABANALYS:

Где,

Table
      Владелец и имя таблицы.

Records
      Общее количество записей в таблице.

Bytes
      Общее количество байт, используемое таблицей.

Min
      Минимальное количество байт, используемое записью в таблице.

Max
      Максимальное количество байт, используемое записью в таблице.

Mean

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

Count

      Количество фрагментов записей, обнаруженных в таблице.

Factor
     Степень фрагментации таблицы. Это значение определяется количеством фрагментов разделенных на идеальное количество фрагментов (например, взятое, когда данные были только загружены).  Значение 1.0 – идеальное. Значение 2.0 говорит о двойном увеличении количества фрагментов, чем когда данные были загружены.

Используйте это значение для принятия решения о необходимости перезагрузки данных. Если оно равно 2.0 и выше, перезагрузка требуется, если меньше, то перезагрузка мало повлияет на улучшение производительности.

Scatter Factor
      Степень расстояния между записями в таблицы.

Наилучшей значение является то, которое установлено после загрузки данных. Это значение стоит использовать в будущем как эталонное для сравнения последующих значений. Значение 1 означает, что записи располагаются не прерывно в цепочке блоков. Значение 2 – записи разбросаны в десяти раз больше чем при первоначальном значении.

Используйте его, для определения степени влияния на производительность фрагментации. Если значение 1.5 и выше, производительность будет плохой для последовательного доступа, и перезагрузка данных могла бы помочь. Значение 1.5 и выше, также может повлиять на производительность при произвольном доступе к данным, но это зависит в основном от типа системы и самого приложения.

Примечание:

- PROUTIL DBANALYS включает в себя туже информацию, которую отображает PROUTIL TABANALYS.





Классификатор PROUTIL TABLEMOVE

TABLEMOVE перемещает таблицу и, если указано, её индексы из одной области хранения в другую, во время нахождения базы данных в online.

Синтаксис:

proutil db-name -C tablemove
        [owner-name.]table-name table-area [index-area]

Параметры:

db-name
указывается имя базы данных, содержащей таблицу.

owner-name
указывается владелец перемещаемой таблицы. Вы можете не указывать владельца, если таблица уникальна в пределах базы данных или ее владелец является PUB. По умолчанию, все ABL таблицы принадлежат PUB.

table-name
определяется имя перемещаемой таблицы.

table-area
определяется имя целевой области, в которую будут перемещены таблица и ее содержимое. Имена областей, содержащие пробелы, должны быть заключены в кавычки.

index-area
эта опция дополнительная, и указывает на имя области, в которую должны быть перемещены индексы. Если она указана, индексы будут перемещены в нее. В противном случае, они останутся в своей текущей позиции. Область индексов может быть отличной от области перемещения таблицы. Имена областей, содержащих пробелы, должны быть заключены в кавычки.

Примечание:

- Если вы не укажите параметр index-area, индексы, связанные с перемещаемой таблицей, не будут перемещены.
- Перемещение записей таблицы из одной области в другую приводит к аннулированию всех ROWID и индексов таблицы. Следовательно, индексы перестраиваются не зависимо от того, перемещаете вы их или нет. Вы можете перемещать индексы в область данных отличную от области перемещения таблицы. Если вы хотите переместить только индексы, не перемещая таблицу, используйте PROUTIL IDXMOVE.

Перемещение индексов и таблиц с помощью TABLEMOVE более эффективно, чем отдельное перемещение индексов утилитой IDXMOVE. Перемещение индексов отдельно от таблицы, использует впустую большее количество дискового пространства и требует дважды перестраивать индексы, что также значительно увеличивает время работы процедуры.

PORUTIL TABLEMOVE работает в следующих фазах:
- Фаза 1: записи перемещаются в новую область и строится новый первичный ключ.
- Фаза2: Все вторичный индексы перестраиваются.

Если вы не укажите параметра index-area, индексы будут перестроены в текущей их области. Если укажите, все индексы будут перемещены в новую область и перестроены в ней.
- Фаза 3: все записи в старой области удаляются.
- Фаза 4: все старые индексы удаляются и записи о индексах и таблице в системной таблице _StorageObject обновляются.
- Хотя PROUTIL TABLEMOVE работает в фазах, перемещение таблицы и ее индексов происходит в одной транзакции. Для обеспечения восстановления в случае сбоя, каждая перемещаемая и удаляемая запись логируется. В результате, при работе утилиты, область BI Recovery Area вырастает во много раз больше чем размер перемещаемой таблицы. Следовательно, перед началом работы процедуры, убедитесь, что у вас достаточно свободного дискового пространства, чтобы хватило для роста BI файла, который может вырасти более чем в три раза от размера перемещаемой таблицы и индексов.
- Если таблица перемещается в online, не рекомендуется использовать ее на время перемещения. Утилита приобретает замок EXCLUSIVE по отношению к перемещаемой таблице. Приложение, которое читает таблицу в режиме NO-LOCK, может по прежнему ее использовать, но вероятность получения некорректных данных высока, поскольку в это время утилитой выполняется большое количество действий по изменению индексов. Старайтесь использовать утилиту, когда система относительно менее загружена, или пользователями не используется перемещаемая таблица.
- Во время работы утилиты, не допускается любой другое административное вмешательство относительно перемещаемой таблицы.
- Существует вероятность, что утилита перед началом работы будет вынуждена ожидать разблокировки таблицы пользователями, чтобы приобрести эксклюзивную блокировку.
- Работу утилиты можно наблюдать в системной таблице _UserSTatus.




Классификатор PROUTIL TRUNCATE AREA

TRUNCATE AREA удаляет все данные из таблиц, включая индексы, в указанной области хранения.

Синтаксис:

proutil db-name -C truncate area area-name
                 [-userid username [-password passwd ] ]

Параметры:

db-name
определяется база данных, содержащая прикладную область хранения, которую необходимо усечь.

area-name
определяется имя области хранения, которую нужно усечь. Если область будет указана, PROUTIL усечет только ее, даже если она содержит объекты, если нет, PROUTIL усечет все области не содержащие хранимые объекты.

-userid username
Указывается ID привилегированного пользователя, имеющего доступ к защищенным данным аудита.

-password passwd
Пароль привилегированного пользователя.

PROUTIL TRUNCATE AREA сбрасывает верхнюю точку хранения (high-watermark) в области, возвращая ее в начальное состояние. Этот сброс освобождает все свободное пространство в области, делая его доступным для повторного использования. Любые таблицы и индексы в области хранения, инициируются первоначальными значениями. Перед сбросом выполняется усечение BI файла (truncate bi).

Примечание:

- Этот классификатор очень важен при удалении прикладной области хранения и экстентов базы данных.
- Удаление содержимого области хранения также способствует быстрой перезагрузки данных. Выполнение PROUTIL TRANCATE AREA после выгрузки данных, позволит быстро очистить содержимое таблиц для последующей загрузки.
- TRUNCATE AREA требует дополнительного уровня безопасности, если в базе данных включен аудит. Только пользователь с правами Audit Archiver может выполнять утилиту относительно аудиторских областей хранения. Для этого обязательно необходимо указать параметры –userid и –password.
- Для работы утилиты, база данных должна находиться в offline, а after-imaging должен быть отключен.
- Если область хранения не содержит объекты хранения, утилита просто сбросит верхнюю точку хранения (high-watermark) для области. Если область содержит таблицы и индексы, вам понадобится подтвердить ваше намерение усечь область.
- Индексы, расположенные в иных областях хранения и принадлежащие таблицам из усекаемой области хранения, будут помечены как неактивные.
- Пустые корневые индексные блоки для индексов из усекаемой области будут обновлены.
- PROUTIL TRUNCATE AREA пересоздает любые шаблонные записи в новой области.





Классификатор PROUTIL TRUNCATE BI

TRUNCATE BI выполняет три функции:
1.    Использует информацию из before-image (BI) файла, чтобы привести в соответствие базу данных и after-image (AI) файлы. Ожидая, чтобы проверить что информация была успешно записана на диск, после чего усекает BI файл до его первоначальной длины.
2.    Устанавливает размер BI кластера используя параметр Before-image Cluster Size (-bi).
3.    Устанавливает размер блока BI используя параметр Before-image Block Size (-biblocksize).

Синтаксис:

proutil db-name -C truncate bi { [ -G n ] | -bi size | -biblocksize size }

Параметры:

db-name
определяется используемая база данных.

-G n
Определяет количество секунд, которое ожидает утилита прежде чем сбросить данные в базу и усечь BI файл. Период по умолчанию – 60 секунд. Указывать меньший период имеет смысл только в целях тестирования и практики.

Внимание: не уменьшайте это значение, поскольку сбой в системе может повредить базу данных, если BI файл будет усечен прежде чем записи будут сброшены в базу данных и AI файлы из КЭШа операционной системы.

-bi size
Определяет размер кластера в килобайтах. Число должно быть кратным 16, в пределах от 16 до 262 128 (16K – 256MB). Значение размера кластера по умолчанию равно 524K. Если будет использовано значение не кратное 16, PROUTIL округлит его до ближайшего кратному 16.

-biblocksize size
Определяет размер BI блока в каждом буфере, в килобайтах. Правильные значения – 1, 2, 4, 8 и 16. Значение по умолчанию – 8K. Нулевое значение, говорит PROUTIL о необходимости использования значения по умолчанию. Размер BI блока не может быть меньше размер блока базы данных.

Примечание:

- Параметр Before-image Block Size (-biblocksize) изменяет BI блок так, чтобы менеджер базы данных читал и записывал блоки как один блок.
- Используйте PROSTRCT STATISTICS для определения размера блока базы данных.
- Если  вы изменяете размеры BI блока или кластера, предварительно сформируйте резервную копию базы данных. Если будет необходимо восстановление, то размеры блоков и кластера будут таким же как перед формированием копии.
- PROUTIL читает BI блоки согласно размеру первого прочтенного блока. Например, если первый блок BI равен 8K, PROUTIL будет читать и записывать каждый блок на границе 8K.
- Для улучшения производительность, используйте PROUTIL BIGROW для увеличения количества доступных BI кластеров для базы данных до ее старта.





Классификатор PROUTIL UPDATESCHEMA

UPDATESCHEMA загружает в указанную базу данных самую новую метасхему для текущей версии.

Синтаксис:

proutil db-name -C updateschema

Параметры:

db-name
определяется имя обновляемой базы данных.

Примечание:

- PROUTIL UPDATESCHEMA обновляет существующую базу данных, преобразованную из предшествующей версии, загружая новую метасхему для текущей версии. При этом добавляются новые таблицы, поля и индексы.
- Запуск PROUTIL UPDATESCHEMA для базы данных текущей версии, сообщит о том, что ваша база данных уже имеет новую метасхему.




Классификатор PROUTIL UPDATEVST

UPDATEVST загружает в базу данных обновленные или новые виртуальные таблицы (VST).

Синтаксис:

proutil db-name -C updatevst

Параметры:

db-name
указывается используемая база данных.

Примечание:

- PROUTIL с классификатором UPDATEVST удаляет все существующие VST, после чего создает новые VST с текущей информацией.





Классификатор PROUTIL WBREAK-COMPILER

WBREAK-COMPILER компилирует word-break таблицу.

Синтаксис:

proutil -C wbreak-compiler src-file rule-num

Параметры:

src-file
идентифицирует исходную word-break таблицу для компиляции.

rule-num
определяет целочисленное значение между 1 и 255, однозначно идентифицирующее word-break таблицу. Утилита формирует файл proword. rule-num.

Примечание:

- Для получения более подробной информации о работе PROUTIL WBREAK-COMPILER обратитесь к технической документации OpenEdge Development: ABL Handbook.
- Чтобы ссылаться на вашу скомпилированную word-break таблицу (proword.rule-num), переместите полученный файл в установочный каталог OpenEdge, и установите переменную окружения PROWD, указывающую на файл. Например:

PROWD34=proword.34; export PROWD34

- Для применения word-break правил к базе данных, используйте классификатор WORD-RULES утилиты PROUTIL.





Утилита RFUTIL


RFUTIL выполняет различные операции восстановления, в зависимости от указанных классификаторов.

Синтаксис:

rfutil db-name -C qualifier

Параметры:

db-name
определяет используемую базу данных.


Определяет конкретную утилиту или функцию при использовании rfutil.

qualifier
определяет классификатор, который вы хотите использовать. Список доступных классификаторов указан в таблице, приведенной ниже.

Примечание: RFUTIL так же работает с параметрами интернационализации, такими как –cpinternal или –cpstream.

 Классификатор Описание
 AIARCHIVER DISABLE  Выключение AI File Management Utility
 AIARCHIVER ENABLE  Включение AI File Management Utility
 AIARCHIVER END  Останов демона AI File Management Utility
 AIARCHIVER SETDIR  Изменение списка каталогов размещения AI File Management Utility
 AIARCHIVER SETINTERVAL  Изменение значения интервала архивации для демона AI File Management
 AIARCHIVE EXTENT  Архивация определенного AI экстента, когда не запущен демон AI File Management
 AIMAGE AIOFF  Отключение after-imaging во время эксплуатации
 AIMAGE BEGIN  Включение after-imaging для базы данных.
 AIMAGE END  Отключение after-imaging для базы данных.
 AIMAGE EXTENT EMPTY  Пометка AI экстента как empty и информирование менеджера базы данных о том, что AI экстент был вручную скопирован и теперь доступнее для повторного использования
 AIMAGE EXTENT FULL  Отображает полный путь самого старшего заполненного файла.
 AIMAGE EXTENT LIST  Отображает информацию об экстентах.
 AIMAGE EXTRACT  Выгрузка активных блоков из AI экстента и запись их в файл.
 AIMAGE NEW  Переключение на следующий AI экстент
 AIMAGE QUERY  Запрос статуса AI экстента.
 AIMAGE SCAN  Сканирование AI файла и вывод информации о нем
 AIMAGE TRUNCATE  Усечение всех ai экстентов переменой длины, и при необходимости установка размера AI блока c помощью параметра After-image Block Size (-aiblocksize).
 MARK BACKEDUP  Пометка файла базы данных, говорящей выполненной полной резервной копии.
 ROLL FORWARD  Восстановление базы данных путем последовательного наката AI файлов
 ROLL FORWARD RETRY  Повторная попытка наката AI экстента. Эта операция находит транзакцию на которой произошло прерывание, и повторяет попытку наката с этого места.
 SEQUENCE  Обновление AI номера секвенций в базе данных.


Примечание: вы не можете использовать RFUTIL относительно базы данных в однопользовательском режиме.

Дале будет детально описан каждый классификатор RFUTIL.





Классификатор RFUTIL AIARCHIVER DISABLE

Отключение AI File Management, используемого для автоматического управления AI файлами. Используйте классификатор только если after-imaging включен, и включен AI File Management.

Синтаксис:

rfutil db-name -C aiarchiver disable

Параметры:

db-name
определяет используемую базу данных.

Примечание:

- After-imaging не отключается этой командой, только AI File Management Utility.
- Если база данных в online и AI File Management запущен, демон сначала будет остановлен, а потом произойдет выключение AI File Management.





Классификатор RFUTIL AIARCHIVER ENABLE

Включение AI File Management для автоматического управления AI файлами. Классификатор действует только если включен After-imaging.

Синтаксис:

rfutil db-name -C aiarchiver enable

Параметры:

db-name
определяет используемую базу данных.

Примечание:

- AIARCHIVER ENABLE влияет на:
    Брокер базы данных автоматически запустит демона AI File Management, когда он стартует.
    Будет создан файл AI Archive log (database-name.archival.log), в том же каталоге, где расположены файлы базы данных (.db).
- База данных должна находиться в offline в момент выполнения команды.
- Более ранним версиям OpenEdge будет не доступно непосредственное подключение к базе данных с включенным AI File Management. Но пользователи все еще могут подключаться через сетевые соединения.

Операции демона AI File Management могут контролироваться через другие AIARCHIVER классификаторы утилиты RFUTIL, PROSERVE и PROBKUP.





Классификатор RFUTIL AIARCHIVER END

Останов процесса демона AI File Management, если он запущен.

Синтаксис:

rfutil db-name -C aiarchiver end

Параметры:

db-name
     определяет используемую базу данных.

Примечание:

Использование этой команды останавливает демон AI File Management без останова сервера базы данных.  Но команда не останавливает After-image процесс. AI экстенты продолжат заполняться как обычно при нормальной работе базы данных.





Классификатор RFUTIL AIARCHIVER SETDIR

Изменение списка каталогов, используемых демоном AI File Management для архивации.

Синтаксис:

rfutil db-name -C aiarchiver setdir dir-list [-aiarcdircreate ]

Параметры:

db-name
определяет используемую базу данных.

dir-list
определяет разделенные запятой каталоги, используемые для размещения архивов AI экстентов. Директории должны существовать, в противном случае используйте параметр –aiarcdircreate. Указание списка каталогов, заменяет предыдущие список, и имена каталогов не должны содержать пробелы и точки. Общее количество символов в dir-list не должно превышать 512 символов.

-aiarcdircreate
Указывает демону, что необходимо создать каталоги из списка dir-list, если они не существуют.

Примечание:

Можно использовать эту команду для базы данных, находящейся в online, при запущенном демоне AI File Management Utility.




Классификатор RFUTIL AIARCHIVER SETINTERVAL

Изменение интервал архивации используемого демоном AI File Management.

Синтаксис:

rfutil db-name -C aiarchiver setinterval n

Параметры:

db-name
определяет используемую базу данных.

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

Когда значение n установлено между 120 и 86 400, демон работает во временном режиме, и n указывает период времени в секундах, которые ожидает демон между принудительными переключениями экстентов.

Примечание:

Можно использовать эту команду для базы данных, находящейся в online, при запущенном демоне AI File Management Utility.





Классификатор RFUTIL AIARCHIVE EXTENT

Ручное архивирование указанного AI экстента.

Синтаксис:

rfutil db-name -C aiarchive extent source-extent target

Параметры:

db-name
определяет используемую базу данных.

source-extent
указывается AI экстент для архивации. Требуется полный путь.

target
указывается итоговый файл архивного экстента. Файл не должен существовать. Если он уже существует, то AIARCHIVE EXTENT

Примечание:

- Эта команда может работать как в online, так и в offline.
- Этой команде не требуется включенный AI File Management.
- Если база данных в online и AI File Management включен, процесс демона не сможет работать когда эта команда выполняется.
- Если AI File Management включен, архивирование экстента будет зафиксировано в лог файле (database-name.archival.log). Если нет, то экстент будет заархивирован, но об этом ни где не будет упомянуто.
- Эта команда неявно очищает архивируемый AI экстент, помечая его как EMPTY.





Классификатор RFUTIL AIMAGE AIOFF

AIMAGE AIOFF выключает after-imaging для базы данных, находящейся в многопользовательском режиме.

Синтаксис:

rfutil db-name -C aimage aioff

Параметры:

db-name
определяет используемую базу данных.

Вам не нужно останавливать базу данных для использования AIMAGE AIOFF. Команда используется если:

- Необходимо выполнить плановые работы. Отключение after-imaging при перемещении таблиц и перестройки индексов помогает сократить время и используемое дисковое пространство.
- Требуется предотвратить сбой работы базы данных из-за недостаточного количества оставшегося свободного дискового пространства. Вместо переключения AI экстентов, вы можете отключить after-imaging.

Внимание: Если вы отключите after-imaging, и через некоторое время в базе данных произойдет сбой, вы не сможете выполнить roll forward.

Примечание:

- AIMAGE OFF не может быть выполнен если в база данных является Source Database OE Replication и сервер репликации запущен.
- Отключение after-imaging приведет к отключению AI Management и репликации, если они активны.
- Если база данных в online, включить after-imaging можно с помощью PROBKUP.
- Если база данных в offline, включение after-imaging возможно с помощью утилиты RFUTIL с классификатором AIMAGE BEGIN.





Классификатор RFUTIL AIMAGE BEGIN

AIMAGE BEGIN - включение after-imaging для базы данных.

Синтаксис:

rfutil db-name -C aimage begin

Параметры:

db-name
    определяет используемую базу данных.

Примечание:

- Создайте AI области для хранения примечаний after-image.
- AIMAGE BEGIN помечает базу данных как активированную для работы after-imaging.
- AIMAGE BEGIN не сможет отработать, если существующие AI области не получится усечь.
- AIMAGE BEGIN не сможет отработать, если перед его запуском не была выполнена полная резервная копия, или с момента копирования в базу данных были внесены изменения.





Классификатор RFUTIL AIMAGE END

Отключение after-imaging для базы данных.

Синтаксис:

rfutil db-name -C aimage end

Параметры:

db-name
    определяет используемую базу данных.

Примечание:

- AIMAGE END выдаст ошибку, если after-imaging не включен.
- Когда вы используете RFUTIL AIMAGE END, RFUTIL помечает все AI области как EMPTY. Это означает, что вы не сможете получить доступ к любой информации, которая не была заархивирована.
- Отключение after-imaging с помощью AIMAGE END, отключит AI Management и репликацию, если они активны.
- Для информации о восстановлении after-imaging:
    Используйте утилиту PROBKUP для включения after-imaging в online.
    Используйте RFUTIL AIMAGE BEGIN для включения after-imaging в offline.





Классификатор RFUTIL AIMAGE EXTENT EMPTY

AIMAGE EXTENT EMPTY помечает AI экстенты как empty и информирует менеджера базы данных о том, что AI экстент скопирован и доступен для повторного использования.

Синтаксис:

rfutil db-name -C aimage extent empty [ extent-number | extent-path ]

Параметры:

db-name
указывается имя используемой базы данных.

extent-number
определяется номер экстента, который должен быть помечен как empty

extent-path
определяет пути к экстенту помечаемого как empty.

Примечание:

- Используйте RFUTIL AIMAGE EXTENT LIST и RFUTIL AIMAGE EXTENT FULL, для определения extent-number или extent-pathname.
- Если вы не укажите конкретный номер экстента, или его путь, RFUTIL пометит саамы старший заполненный экстент как empty.
- Если помечаемый экстент имеет переменный размер, RFUTIL усечет его.
- Если экстент помечен как LOCKED с помощью OE Replication, такой экстент не может быть использован для этой команды.
- Команда не может быть использована если для базы данных не включен AI File Management.




Классификатор RFUTIL AIMAGE EXTENT FULL

AIMAGE EXTENT FULL отображает путь к самому старшему заполненному файлу. Это следующий файл для копирования.

Синтаксис:

rfutil db-name -C aimage extent full

Параметры:

db-name

      указывается имя используемой базы данных.

Использовать RFUTIL AIMAGE EXTENT FULL можно в скриптах аналогичных следующему:

UNIX

last_full=’_rfutil mydb -C aimage extent full’
tar -cvf /dev/ai_archive $last_full
rfutil mydb -C aimage extent full $last_full




Классификатор RFUTIL AIMAGE EXTENT LIST

AIMAGE EXTENT LIST отображает статус AI экстентов базы данных.

Синтаксис:

rfutil db-name -C aimage extent list

Параметры:

db-name
указывается имя используемой базы данных.

Команда выдает следующую информацию:

- Extent Number – номер каждого файла.
- Extent Type – тип каждого файла. Имеется ввиду фиксированной или переменной длины.
- Extent Path – пути к каждому файлу.
- Extent Size – размер файла в 1 килобайтных блоках.
- Space Used – количество блоков, используемых каждым файлом.
- Extent Status – статус каждого файла. А именно, empty, full или busy.
- Start/Date Time – время начала записи AI примечаний. Это не применимо к файлам со статусом empty.

Примечание:

Статус файла может быть full, даже если в нем осталось доступное пространство. Это может произойти во время выполнения online резервной копии, потому что переключение файла произошло во время копирования, не зависимо от того, полон файл или нет. RFUTIL помечает файл как полный, потому что он должен быть заархивирован и помечен как пустой прежде, чем база данных сможет использовать его.





Классификатор RFUTIL AIMAGE EXTRACT

AIMAGE EXTRACT извлекает активные блоки из AI экстента и записывает их в выходной файл.

Синтаксис:

rfutil db-name -C aimage extract -a ai-extent -o output-file

Параметры:

db-name
указывается имя используемой базы данных.

-a ai-extent

Идентифицирует AI файл, содержащий блоки, которые будут извлечены. Экстент должен быть помечен как full или locked.

-o output-file
Определяет файл для выгрузки извлеченных блоков.

Примечание:

Извлечение блоков из AI экстентов полезно только для экстентов фиксированной длины. Для экстентов переменной длины, извлечение блоков экономит совершенно незначительное количество дискового пространства.





Классификатор RFUTIL AIMAGE NEW

AIMAGE NEW изменяет статус текущего AI экстента на full и изменяет статус следующего AI экстента на busy.

Синтаксис:

rfutil db-name -C aimage new

Параметры:

db-name
указывается имя используемой базы данных.

Примечание:

- AIMAGE NEW завершится с ошибкой если:
    Следующий экстент не со статусом empty.
    База данных не имеет AI экстентов.
- Вы можете использовать этот классификатор как в online, так и в offline.
- Используйте этот классификатор только когда включен after-imaging и вы только что сформировали резервную копию экстента.




Классификатор RFUTIL AIMAGE QUERY

AIMAGE QUERY выполняет запрос к AI файлу и выдает полученную информацию.

Синтаксис:

rfutil db-name -C aimage query query-option by search-option search-value

Параметры:

db-name
указывается имя используемой базы данных.

query-option
определяет информацию, которую вы хотите получить из AI файла. Возможные запросы, указаны в следующей таблице:

Запрос
Возвращаемое значение
 EXTNUM  Номер экстента
 STATUS  Статус экстента: FULL, LOCKED, BUSY, EMPTY
 TYPE  Тип экстента: Fixed Length или Variable Length
 SIZE  Размер экстента в одно-килобайтных блоках
 USED  Количество используемых блоков
 NAME  Полное имя экстента
 SEQUENCE  Порядковый номер
 STARTDATE  Дата и время начала записи в экстента
 ALL  Выдает всю вышеописанную информацию.

search-option
определяется способ идентификации AI экстента для запроса.

search-value
определяет критерии соответствия для search-option.

Возможные значения для search-option и search-value указаны в следующей таблице:

 search-option  search-value
 EXTNUM  Целочисленное значение. Берется из имени файла, dbname.an, где n и является значением EXTNUM
 NAME  Символьная строка. Имя файла экстента.
 SEQUENCE  Целочисленное значение. Порядковый номер экстента.


Примечание:

- AIMAGE QUERY возвращает минимально необходимую информацию.
- Классификатор предназначен для использования в автоматизированных процедурах after-imaging.




Классификатор RFUTIL AIMAGE SCAN

AIMAGE SCAN сканирует AI файлы и отображает информацию из них.

Синтаксис:

rfutil db-name -C aimage scan [ verbose ] -a ai-name

Параметры:

db-name
указывается имя используемой базы данных.

verbose
обеспечивает вас большей информацией из AI области, включая номер транзакции, дата и время начала и завершения транзакции, и ID пользователя, который инициировал транзакцию. Потренируйтесь в использовании этого параметра на небольших тестовых AI областях, прежде чем использовать на промышленной.

-a ai-name
Указывает на AI область указанной базы данных.

Примечание:

- AIMAGE SCAN завершится с ошибкой если вы не укажите параметр After-image area (-a) или он не сможет открыть указанную область.





Классификатор RFUTIL AIMAGE TRUNCATE

AIMAGE TRUNCATE усекает все AI экстенты переменной длины, и дополнительно может установить размер AI блока с помощью параметра After-image Block Size (-aiblocksize).

Синтаксис:

rfutil db-name -C aimage truncate -aiblocksize size

Параметры:

db-name
указывается имя используемой базы данных.

-aiblocksize size
Указывает размер AI блока для каждого буфера в килобайтах. Корректными значениями являются 1, 2, 4, 8 и 16. Размер блока не может быть меньше, чем размер блока базы данных.

Примечание:

- После выполнения команды о изменению размера AI бока, вы должны сформировать полную резервную копию до включения механизма after-imaging.
- Увеличение размер AI блока предполагает увеличение объемом чтения и записи. Это может снизить дисковую нагрузку для дисков, на которых расположены AI области. Если ваша система способна выдержать большое количество операций записи, эта опция может улучшить производительность. Большой размер AI блока может также улучшить процесса roll-forward восстановления.
- Когда вы выполняете команду, after-imaging и two-phase commit должны быть выключены, а база данных должна находиться в offline. В противном случае, RFUTIL вернет сообщение об ошибке.
- После изменения размера AI блока, RFUTIL будет использовать его для всех операций в базе данных.
- Используйте классификатор PROSTRCT STATISTICS для определения размера блока базы данных.
- Обычно, если вы измените размер AI блока, вы также должны изменить размер BI блока и размер кластера. В противном случае, BI может стать узким местом в работе вашей системы.




Классификатор RFUTIL MARK BACKEDUP

MARK BACKEDUP помечает файлы базы данных, как будто бы вы только что выполнили полную резервную копию.

Синтаксис:

rfutil db-name -C mark backedup

Параметры:

db-name
   указывается имя используемой базы данных.

Используйте этот классификатор, если вы копируете базу данных с помощью утилит операционной системы. Стандартные же утилиты резервирования и восстановления OpenEdge, автоматически устанавливают такие метки.




Классификатор RFUTIL ROLL FORWARD

ROLL FORWARD выполняет восстановление базы данных путем последовательного наката на неё всех заметок, хранимых в AI файлах.

Синтаксис:

rfutil db-name -C roll forward [ verbose ]
     [ endtime yyyy:mm:dd:hh:mm:ss | endtrans transaction-number]
     [ -B n ] [ -r ] -a ai-name

Параметры:

db-name
указывается имя используемой базы данных.

verbose
выдает информацию о каждой заметке в AI области.

-a ai-name
определяет AI область для указанной базы данных.

endtime
указывает о необходимости наката до определенного времени. Вы должны указать время завершения в виде строки цифра, а в качестве разделителя для даты и времени использовать двоеточие. Транзакции будут накаты только в том случае, если они завершаются до указанного времени. Например, накат до 17:00 18 Июля  2008 года, будет записан в этом параметре так – 2008:07:18:17:10:00. В данном случае, будут восстановлены все транзакции, которые были завершены до или во время указанного значения времени.

endtrans
определяет необходимость наката всех транзакций до, но не включая, указанного номера транзакции в параметре transaction-number. Например, если вы установить значение 1000, RFUTIL выполнит накат транзакции вплоть до 999. Если же вы хотите включить и 1000 номер транзакции, вы должны указать в параметре 1001.

-B n
указывает количество буферов для базы данных. В однопользовательском режиме по умолчанию равно 20.

-r
указывает о необходимости буферизованного ввода/вывода.

Если в системе произошел сбой во время работы утилиты, восстановите базу данных и повторите процесс наката.

ROLL FORWARD выводит на экран следующую информацию:

- Даты начала и завершения AI области приложенной к базе данных.
- Количество завершенных транзакций повторно использованных в базе данных.
- Количество транзакций, которые были активными в конце записи заметок AI области.

ROLL FORWARD завершится с ошибкой если:

- Вы не укажите параметр After-image Filename (-a)
- Он не сможет открыть AI область.
- Вы назовете не правильное имя AI области.
- База данных была открыта до наката AI экстентов.

Примечание:
- ROLL FORWARD всегда выключает after-imaging до начало выполнения операции. Если вы захотите продолжить использовать AI защиту после завершения операций наката (roll-forward), вы должны заново включить after-imaging.
- Накат AI файлов должен обязательно осуществляться в той же последовательности, в какой файлы были созданы.




Классификатор RFUTIL ROLL FORWARD RETRY

ROLL FORWARD RETRY повторное использование операции roll-forward для AI экстента.

Синтаксис:

rfutil db-name -C roll forward retry
       [ endtime yyyy:mm:dd:hh:mm:ss| endtrans transaction-number]
       [ -B n ] [ -r ] [ verbose ] -a ai-area

Параметры:

db-name
указывается имя используемой базы данных.

verbose
выдает информацию о каждой заметке в AI области.

-a ai-name
определяет AI область для указанной базы данных.

endtime
указывает о необходимости наката до определенного времени. Вы должны указать время завершения в виде строки цифра, а в качестве разделителя для даты и времени использовать двоеточие. Транзакции будут накаты только в том случае, если они завершаются до указанного времени. Например, накат до 17:00 18 Июля  2008 года, будет записан в этом параметре так – 2008:07:18:17:10:00. В данном случае, будут восстановлены все транзакции, которые были завершены до или во время указанного значения времени.

endtrans
определяет необходимость наката всех транзакций до, но не включая, указанного номера транзакции в параметре transaction-number. Например, если вы установить значение 1000, RFUTIL выполнит накат транзакции вплоть до 999. Если же вы хотите включить и 1000 номер транзакции, вы должны указать в параметре 1001.

-B n
указывает количество буферов для базы данных. В однопользовательском режиме по умолчанию равно 20.

-r
указывает о необходимости буферизованного ввода/вывода.

ROLL FORWARD RETRY улучшает поддержку базы данных  в режиме 24х7. Использование этого классификатора ограничивается действиями операции roll-forward, которые были прерваны в результате сбоя в системе. Он начинает процесс наката с того места, с которого тот был прерван. А именно он находит транзакцию, на которой произошло прерывание, и начинает накат с неё. Он так же восстанавливает транзакционный лог (TL). Все его действия регистрируются в журнале событий базы данных (.lg). Если снова произойдет сбой, вы можете опять повторить попытку.

Roll-forward столкнувшись с заметками в BI файле от two-phase commit, получает сигнал о включении транзакции в транзакционный лог. При этом, если база данных не будет содержать TL области, утилита прервется. Для выхода из этой ситуации, вы должны добавить TL области в базу данных  и повторить процесс наката с помощью ROLL FORWARD RETRY.





Классификатор RFUTIL SEQUENCE

RFUTIL SEQUENCE обновляет в базе данных порядковый номер AI.

Синтаксис:

rfutil db-name -C sequence

Параметр:

db-name
    имя используемой базы данных

Используется для модификации порядкового номера в указанной базе данных, чтобы соответствовать номеру AI экстента, который был активен в момент формирования резервной копии базы данных.

Внимание: RFUTIL SEQUENCE должен быть применен к базе данных до того как будете восстановлен (rolling forward) первый AI экстент.

RFUTIL SEQUENCE необходим только тогда, когда переключение AI экстентов произошло после формирования резервной копии, и прежде чем копия была сформирована.




Прочие утилиты администрирования баз данных


В этой части описываются прочие административные утилиты OpenEdge, которые приведены в алфавитном порядке как указано далее:

  • Утилита DBMAN
  • Утилита DBTOOL
  • Утилита DBUTIL с классификатором CMPDB
  • Утилита PROADSV
  • Утилита PROBKUP
  • Утилита PROCLUSTER
  • Утилита PROCOPY
  • Утилита PRODB
  • Утилита PRODEL
  • Утилита Progress Explorer
  • Утилита PROLOG
  • Утилита PROREST



Утилита DBMAN

Утилита DBMAN выполняет старт, останов и запросы к базе данных. Перед тем как ее использовать в командной строке, вы должны с помощью Progress Explorer Database Configuration Tool создать конфигурацию базы данных и сохранить ее в файл conmgr.properties.

Синтаксис:

dbman [ -host host-name -port port-number | service-name-user user-name ]
           -database db-name [ -config config-name -start | -stop | -query ]

Параметры:

-database db-name
Определяет имя базы данных для старта. Оно должно соответствовать имени из файла conmgr.properties.

-config config-name
Определяет имя конфигурации с которой вы хотите запустить базу данных.

-start
Старт базы данных db-name указанной в конфигурации из config-name.

-stop
Останов базы данных db-name.

-query
Осуществление запроса статуса базы данных db-name к Connection Manager.

-host host-name
Определяет хост машины на которой запущен Admin Server. По умолчанию используется localhost. Параметр необходим, если Admin Server запущен на удаленной машине.

-port port-number|service-name
Идентифицирует порт, который «слушает» Admin Server. По умолчанию, используется порт 20931. Параметр необходим, если Admin Server запущен на удаленной машине.

-user user-name
Указывается имя пользователя, для подключения к Admin Server. При этом запрашивает пароль этого пользователя.

Примечание:

- Когда вы указываете имя пользователя с помощью параметра –user, Windows поддерживает три различных формата:
    Имя пользователя в виде простой текстовой строки, типа «valeriy», подразумевает локального пользователя, чья учетная запись существует на локальной машине сервера, который является той же машиной, на которой работает Admin Server.
    Имя пользователя определенное как локальный пользователь, являющийся учетной записью на машине с запущенным Admin Server, и которая является доменом, должна быть указана так: «\\valeriy».
    Имя пользователя, указанное в домене Windows. Общий формат – Domain\\User, где User является учетной записью в пределах домена, а Domain, это любой действующий Windows сервер, на котором запущен Admin Server.
- Не редактируйте файл конфигурации conmgr.properties в ручную. Всегда делайте это с помощью Progress Explorer Database Configuration Tool.
- DBMAN поддерживает работу с параметрами интернационализации, такими как –cpinternal или –cpstream.
- Файл конфигурации conmgr.properties загружает в базу конфигурацию и параметры группы серверов. Например:

#
# Connection Manager Properties File
#
%% Properties File
%% version 1.1
%% Oct 31, 2005 1:59:37 PM
#
# The following are optional configuration properties and their default
# values. The legacy option, if applicable, is listed after the second
# comment. Property values set at this level become the default values
# for all configuration subgroups.
#
[configuration]
#        afterimagebuffers=5                # -aibufs
#        afterimageprocess=false                # n/a
#        afterimagestall=true                # -aistall
#        asynchronouspagewriters=1                # n/a
#        beforeimagebufferedwrites=false        # -r
#        beforeimagebuffers=5                # -bibufs
#        beforeimageclusterage=60                # -G
#        beforeimagedelaywrites=3                # -Mf
#        beforeimageprocess=true                # n/a
#        blocksindatabasebuffers=0                # -B (calculated as 8*(-n))
#        casetablename=basic                # -cpcase
#        collationtable=basic                        # -cpcoll
#        conversionmap=convmap.cp                # -convmap
#        crashprotection=true                # -i
#        databasecodepage=basic                # -cpdb
#        directio=false                        # -directio
#        hashtableentries=0                        # -hash (calculated as (-B)/4)
#        internalcodepage=iso8859-1                # -cpinternal
#        locktableentries=10000                # -L
#        logcharacterset=iso8859-1                # -cplog
#        maxservers=4                        # -Mn
#        maxusers=20                        # -n
#        nap=1                                # -nap
#        napmax=1                        # -napmax
#        pagewritermaxbuffers=25                # -pwwmax
#        pagewriterqueuedelay=100                # -pwqdelay
#        pagewriterqueuemin=1                # -pwqmin
#        pagewriterscan=1                        # -pwscan
#        pagewriterscandelay=1                # -pwsdelay
#        semaphoresets=1                        # -semsets
#        sharedmemoryoverflowsize=0        # -Mxs
#        spinlockretries=0                        # -spin
#        sqlyearoffset=1950                        # -yy
#        watchdogprocess=true                # n/a
#
# The following are optional database properties and their default values.
# Property values set at this level become the default values for all
# database subgroups.
#
[database]
#        autostart=false                # autostart the defaultconfiguration?
#        databasename=demo        # absolute or relative path + database name
# The following are optional server group properties and their default
# values. The legacy option, if applicable, is listed after the second
# comment. Property values set at this level become the default values
# for all servergroup subgroups.
#


[servergroup]
#        host=localhost                # -H
#        initialservers=0                # n/a
#        maxclientsperserver=0        # -Ma (calculated value)
#        maxdynamicport=5000        # -maxport (5000 for NT; 2000 for UNIX)
#        messagebuffersize=350        # -Mm (4gl only)
#        minclientsperserver=1        # -Mi
#        mindynamicport=3000        # -minport (3000 for NT; 1025 for UNIX)
#        networkclientsupport=true        # false for self-service
#        numberofservers=0        # -Mpb
#        port=0                        # -S ; Must be non-zero
#                                # when networkclientsupport=true
#        prosqltrc=nnnnnnnnnnn        # turn on various levels of SQL tracing
#        reportinginterval=1                # -rpint (4gl only)
#         serverexe=<4gl server location>        # _mprosrv (4gl only)
#        type=both                        # n/a
[configuration.sports2000.defaultconfiguration]database=sports2000
displayname=defaultConfiguration
servergroups=sports2000.defaultconfiguration.defaultservergroup
[database.sports2000]
autostart=true
configurations=sports2000.defaultconfiguration
databasename=d:\\work\\database\\101a\\AuditEnabled\\sports2000
defaultconfiguration=sports2000.defaultconfiguration
displayname=sports2000
[environment]
[servergroup.sports2000.defaultconfiguration.defaultservergroup]
configuration=sports2000.defaultconfiguration
displayname=defaultServerGroup
port=14000




Утилита DBTOOL

DBTOOL это инструментальное средство, которое идентифицирует возможные проблема с записями базы данных и исправляет нарушения в SQL Width.

Синтаксис:

dbtool db-name

Параметры:

db-name
имя базы данных для сканирования.

Когда вы запустите утилиту DBTOOL, на экране будет отображено следующее меню:

                                     DATABASE TOOLS MENU - 10.1b
                                     -----------------------------------------------
                      1. SQL Width & Date Scan w/Report Option
                      2. SQL Width Scan w/Fix Option
                      3. Record Validation
                      4. Record Version Validation
                      5. Read database block(s)
                      6. Record fixup
                      7. Schema Validation
                      9. Enable/Disable File Logging
                      Q. Quit
                      Choice:

Опции меню имеют следующее назначение:

- SQL Width & Date Scan w/Report Option – эта опция сообщает о следующих значениях SQL:
    _Field._Width
    year_value < 0
    year_value >9999

В полученном сообщении, три звездочки (***) будут указывать на наличие ошибки SQL Width или даты.
- SQL Width Scan w/Fix Option – сканирование на наличие нарушений ширины по указанному проценту от текущей максимальной ширины, и увеличение SQL Width в случае необходимости. У вас будет запрошено число, являющееся процентом выше текущей максимально величины, чтобы выполнить распределение для роста записей.

Например, если текущая ширина  полей равна 100, и вы указываете 10 процентов для роста, DBTOOL проверит SQL Width для полей, и если они меньше чем 110, увеличит их до 110. Если SQL Width больше чем текущая максимальная ширина плюс процент роста, то SQL Width изменен не будет.

- Record Validation – опция сравнивает физически хранимые записи в schema definition, и выдает несоответствия.
- Record Version Validation – опция выполняет проверку записей до и после обновления версии схемы записей. Первая проверка сравнивает запись в текущей схеме с заголовком записи. После завершения проверки, если если таблица имеет более новое определение схемы чем запись, схема записи будет изменена, после чего физическая запись будет сравнена в новым определением.
- Read database block(s) – опция проверяет информацию заголовки блока базы данных.
- Record fixup – опция сканирует записи для определения возможных повреждений.
- Schema Validation – опция проверяет на наличие несоответствий в схеме базы данных. В настоящее время она идентифицирует ошибки в схеме записей с word – индексами. Если ошибки обнаружены, будет сообщен номер индекса и даны рекомендации о необходимости его перестройки.
- Enable/Disable File Logging – опция переключает потоки вывода утилиты в файл dbtool.out. DBTOOL создает файл в вашем текущем каталоге.

Для опций меню с первого по шестой, Вам нужно знать, запущен ли сервер вашей базы данных или нет. Потому что вам будет предложено подключиться к базе данных, так как показано далее.

1.    Выберите интересующую вас опцию меню. Нажмите Enter, появится следующее сообщение:

<connect>:(0=single-user 1=self-service >1=#threads)?

2.    Введите нужный тип подключения (0, 1 или #threads).

Если брокер базы данных не запущен, вы должны выбрать ноль (0). Если брокер запущен, вы можете запустить отчет используя один и более потоков. Если вы введет не соответствующий тип соединения, DBTOOL выдаст вам следующую ошибку:

dsmUserConnect failed rc = -1

После ввода правильного типа подключения, вам будут заданы вопросы, которые будут завесить от выбранного вами меню.

3.    Продолжите работу, отвечая на эти вопросы. Общие из них следующие:
- Table – ввод номера таблицы по следующему запросу:

<table>: (Table number or all)?

- Area – ввод номер области по следующему запросу:

<area>: (Area number or all)?

- Display – введите уровень избыточности. Этот уровень определяет количество отображаемой информации на экране. При выборе нуля (0), DBTOOL выдаст на экран минимум данных. Запрос уровня происходит следующим образом:

<display>: (verbose level 0-3)?

Примечание:

- DBTOOL является многопоточной утилитой. Тип соединения, указанный вами при запуске утилиты, определяет количество запускаемых потоков. Поскольку каждый поток использует отдельное подключение, они должны быть учтены при определении параметра запуска базы данных –n. Для определения количества потоков, при которых DBTOOL будет работать адекватно, используйте формулу 1,5 * (количество CPU).
- DBTOOL способен выполнять вывод данных  в .stdout. Для перенаправления вывода в файл, выполните следующую команду:

dbtool db-name 2 > filename.out

Если же вы решите перенаправить вывод в файл после запуска DBTOOL, выберите для этого опцию Enable/Disable File Logging, которая будет формировать в текущем рабочем каталоге файл dbtool.out.

- DBTOOL не исправляет ошибки даты, он только их идентифицирует. Чтобы исправить такие ошибки, используйте Data Dictionary или Data Administration toll для изменения полей, содержащих некорректный значения даты.





Утилита DBUTIL с классификатором CMPDB

DBUTIL CMPDB позволяет сравнивать две базы данных.

Синтаксис:

dbutil cmpdb db-name1 db-name2 [-t|-l|-l2]

Параметры:

db-name1
имя первой базы данных для сравнения.

db-name2
имя второй базы данных для сравнения.

-t
Точное сравнение. Сверка всех полей, включая резервные счетчики и мастер блоки полей.

-l
Свободное сравнение. Не выводится информация о дате последнего изменения мастер блока и обновления резервных счетчиков.

-l2
Вторичное свободное сравнение. Не выводится информация о различии в полях мастер блока по инкрементальному копированию.

Примечание:

- CMPDB не отдельная выполняемая программа. Она должна использоваться совместно с DBUTIL.





Утилита PROADSV

PROADSV запускает, останавливает или выполняет запросы к текущей инсталляции AdminServer на Unix.

Синтаксис:

proadsv { -start | -stop | -query }
        [ -port port-number ] [ -adminport port-number ]
        [ -cluster ] [ -hostname host-name ]
        [ -help ]

Параметры:

-start
Запуск AdminServer.

-stop
Останов AdminServer.

-query
Отображает статус AdminServer.

-port port-number
Определяет номер порта, к которому будут обращаться другие утилиты, например DBMAN. По умолчанию устанавливается порт с номером 20931.

-adminport port-number
Определяет порт связи между серверной группой и AdminServer. По умолчанию равен 7832.

-cluster
Указывает о запуске AdminServer кластерной среде.

-hostname host-name
Определяет, что AdminServer должен связать системный реестр RMI с хостом из host-name. В кластерной среде используйте кластерный псевдоним (alias) в качестве значения host-name. В случае с failover, использование кластерного псевдонима гарантирует готовность системного реестра RMI для работы с AdminServer.

-help
Отображает помощь по командной строке.

Примечание:

- В Windows AdminServer запускается как сервис. AdminServer настраивается для автоматического запуска. Вы можете изменить «прослушиваемые» порты добавляя –port port-number или –adminport port-number в следующие ключи регистра:

HKEY_LOCAL_MACHINE\\SOFTWARE\\PSC\\AdminService\\version\\StartupCmd

или

HKEY_LOCAL_MACHINE\\SOFTWARE\\PSC\\AdminService\\version\\ShutdownCmd

Для изменения значения по умолчанию, добавьте –port или –adminport и номер порта в конец значения. Если вы добавить оба параметра, убедитесь, что не использовали одинаковые номера портов. Убедитесь, что между параметрами и номерами портов имеется пробел. Пример:

....AdminServer -port 9999 -adminport 7832

- Для запуска более чем одного AdminServer в одной системе, укажите уникальные номера портов для каждого из них. В ином случае, этого может привести к ошибкам между подключениями AdmiServer и серверными группами.
- AdminServer устанавливается везде где установлены: OpenEdge database, ODBC DataServer или ORACLE DataServer, AppServer, NameServer, WebSpeed® Transaction Server, или WebSpeed Messenger. Он должен работать для выполнения таких инструментальных средств как Progress Explorer или командные конфигурационные утилиты, такие как DBMAN.
- PROADSV также поддерживает параметры интернационализации.





Утилита PROBKUP

PROBKUP является встроенным средством резервного копирования OpenEdge RDBMS. Область копирования включает по мимо самой базы данных, еще и файлы before-image, экстенты transaction log, и как дополнительная опция, имеетмся возможность включение after-imaging в online.

Синтаксис:

probkup [ online ] db-name [ incremental ] device-name
        [ enableai ] [ enableaiarchiver -aiarcdir dirlist
        [-aiarcinterval n] [-aiarcdircreate]]
        [ -estimate | -vs n | -bf n | -verbose | -scan
            | -io i | -com | -red i| -norecover
        ] ...

Параметры:

online
выполнение резервного копирования в online.

db-name
имя базы данных для копирования.

incremental
выполнение инкрементальной резервной копии.

device-name
указывает на имя файла или устройство для сохранения резервной копий базы данных.

enableai
указывает утилите, что необходимо включить after-imaging после выполнения online резервной копии. Для включения механизма, копирование должно быть полным и  выполняться в online.

enableaiarchiver -aiarcdir dirlist
указывает PROBKUP, что необходимо включить AI File Management Utility как часть процесса резервного копирования в online. Вы должны указать список разделенных запятой каталогов, в которые будут сохраняться after-image файлы, dirlist. Имена каталогов не должны содержать пробелы. В Windows, если вы указываете более чем один каталог, то список dirlist должен быть заключен в кавычки. Каталоги должны быть предварительно созданы, в противном случае, вам также нужно определить –aiarcdircreate, чтобы указать утилите , о необходимости создания каталогов в случае  их отсутствия.

-aiarcdircreate
указывает утилите , о необходимости создания каталогов из –aiarcdir, в случае  их отсутствия.

-aiarcinterval n
Включение это параметра, указывает о необходимости работы AI File Management в временном режиме. Опустите этот параметр для работы в режиме быстрого реагирования, в этом случае экстенты не будут переключаться пока они не будут заполнены полностью, статус full. n указывает на пройденное время в секундах, между принудительными переключениями AI экстентов. Минимальное время – 2 минуты, а максимум – 24 часа.

-estimate
Указывает о необходимости оценки только дискового пространства перед выполнением копирования. Для получения более точной оценки необходимого пространства, используйте параметр –scan совместно с параметрами Incremental и Compression.

Используйте этот параметр (-estimate) только для offline копирования. PROBKUP не формирует копию, если параметр указан.

-vs n
Указывает размер каждого тома копии базы данных, в блоках. Перед формированием каждого следующего тома, вам будет выдано сообщении о необходимости подготовки следующего устройства или указания файла. После записи тома, будет выдано сообщение о необходимости удаления устройства.

Если вы используете параметр Volume Size, то его значение должно быть больше значения параметра Blocking Factor.

Если вы не используете параметр –vs, PROBKUP не ограничивает размер тома, и будет записывать его, пока процедура не завершится, или не кончится доступное пространство на устройстве. Когда устройство будет заполнено, PROBKUP запросит следующее устройство.

-bf n
Указывает коэффициент блокирования (Blocking Factor) выходных данных на резервное устройство. Коэффициент блокирования, указывает сколько блоков данных должно быть буферизовано перед отправкой их на резервный носитель. Первичное использование этого параметра, предполагает улучшение скорости передачи данных на резервное устройство. По умолчанию,  коэффициент блокирования равен 34. Максимальное значение равно 1024.

-verbose
Указывает утилите о необходимости отображения на экран процесса резервного копирования. Если параметр указан, PROBKUP отображает каждые 10 секунд сообщение в следующем формате: “Backed up n blocks in hh:mm:ss”. Если вы не укажите его, то на экран будет выдано только сообщение о завершении резервного копирования.

-scan
Указывает утилите о необходимости сканирования базы данных и отображения на экране количество копируемых блоков и размере необходимого пространства для формирования резервной копии. Параметр –scan нельзя использовать для online копирования.

Для offline копирования, если вы указываете параметр –scan совместно с параметром –com, PROBKUP просканирует базу данных и вычислит размер резервного носителя с учетом сжатия данных.

-io i
Определяет показатель инкрементального перекрытия (incremental overlap factor). Этот показатель определяет избыточность инкрементальных копий. Значение показателя равное одному (1), указывает о допущении потери одной предыдущей инкрементальной копии, показатель два (2), допускает потерю двух предыдущих инкрементальных копий. По умолчанию, показатель равен нулю (0). Т.е. совершенно не допускается потеря резервных копий.

-com
Указывает о необходимости сжатия данных перед их сохранением на резервный носитель. Не используемая часть индексных блоков и блоков записей, сжимается в 3 байтную строку. Свободные блоки, сжимаются до длины их заголовка, 16 байт.

-red i
Устанавливает значение избыточности для добавления в копию для коррекции ошибок. Значение i это положительное целочисленное значение, указывающее на количество блоков для каждого блока коррекции. PROBKUP создает блок коррекции ошибок для каждых i блоков, и записывает его на резервный носитель. Блоки коррекции ошибок используются для восстановления поврежденной резервной копии.

Чем меньше показатель избыточности, тем больше будет создано блоков коррекции ошибок. Если вы укажите значение показателя равным единице (1), это будет означать о необходимости создания дубликата каждого блока данных, т.е. один к одному. Поскольку, для формирования такой резервной копии, понадобится больше времени и резервного носителя, рекомендуется использовать этот параметр только в случае, если резервный носитель нельзя считать надежным. Значение по умолчанию установлено в ноль (0), что говорит об отсутствии избыточности.

-norecover
Не выполнять crash recovery перед формированием резервной копии, но копировать BI файл.

Примечание:

- Когда будет восстанавливаться резервная копия, целевая база данных должна содержать туже физическую структуру, как и база с которой была сформирована копия. Например, база должна иметь то же количество областей, размер блока и т.п.
- Минимальный размер тома копии – 34K.
- Вы не можете выполнить online копирование если:
    Система запущена в однопользовательском режиме.
    База данных запущена с параметром No Shared Memory (-noshm).
    База данных запущена с параметром No Crash Protection (-i).
- Если включен after-imaging, то PROBKUP перед выполнением online копии переключит AI файлы, чтобы установить отправную точку для выполнения roll-forward восстановления. Прежде чем начать выполнение online копирования, проверьте, что следующий AI экстент пустой (empty). Иначе, если он окажется не пустым, работа PROBKUP будет прервана.
- Если вы запустите PROBKUP в одно время с другим процессом, использующим резервный носитель, вы получите ошибку нарушения доступа (sharing violation error)
- Если используется параметр Compression, вы можете уменьшить размер вашей копии от 10 до 40 процентов, в зависимости от копируемой базы данных.
- Если BI файл не был усечен (truncate) перед выполнением копирования, менеджер базы запустит механизм восстановления (recovery database).
- Включение After-image Management, требует включения After-Imaging. Их можно включить одновременно, или по отдельности, первым выполнив включение after-imaging.
- Включение After-image Management указывает брокеру о необходимости запуска демона AI Management.
- PROBKUP поддерживает работу с параметрами интернационализации, такими как –cpinternal или –cpstream.





Утилита PROCLUSTER

PROCLUSTER это дружественный кластерный интерфейс, работающий в командной строке. С помощью PROCLUSTER можно:

- Включить базу данных в failover.
- Отключить кластерную базу данных.
- Запустить и остановить кластерную базу данных.
- Запрашивать статус кластерной базы данных.

Синтаксис:

procluster db-name
  [enable [-pf params-file] [AI] [BI] [APW=n] [WDOG]
  | disable | start | stop | terminate | looksalive | isalaive ]

Параметры:

db-name
указывается полный путь к базе данных.

enable
приспосабливает базу данных для работы в составе failover cluster. Перед этим, база данных должна быть создана и расположена на общем диске. База данных не должна использоваться в момент включения как ресурс кластера.

Когда вы добавляете базу в кластер командой PROCLUSTER, кластер выполняет следующее:
- Проверяет структуру базы данных  и создает регистрационный файл.
- Сохраняет данные о регистрации в журнал событий базы данных (.lg).
- Выполняет регистрацию в кластере.

Включение базы данных OpenEdge в ресурс кластера, создает следующий файл - <dbname>Resources.cluster. Это текстовый файл, содержащий имена ресурсов, зависящих от ресурса базы данных. Если для базы не были определены вспомогательные процессы, такие как: AIW, APW, BIW, WDOG, то .cluster файл будет пустым. В противном случае, их имена будут содержаться в этом файле, как зарегистрированные кластерным менеджером. Не изменяйте и не удаляйте это файл в ручную. Кластер, управляет этим файлов, и удалит его сам, когда база данных будет исключена из кластера.

Когда PROCLUSTER выполнит включение базы данных в кластер, будет выдано следующее сообщение:

The cluster REGISTER command was successful. (10532)

-pf params-file
Определяет файл, содержащий различные параметры, используемые базой данных для запуска.

      Файл параметров должен быть:
- назван db-name.pf.
- находиться в том же каталоге, что и база данных (.db).
- содержать параметр –cluster protected.

AI
Указывает PROCLUSTER о включенном after-imaging, и что AIW должны быть определены как ресурс базы данных. After-imaging должен быть предварительно включен.

BI
Указывает PROCLUSTER, что BIW должен быть включен в ресурс базы данных.

APW=n
Указывает PROCLUSTER, что необходимо включить в кластерный ресурс базы данных n – ое количество APW.

WDOG
Указывает PROCLUSTER, что необходимо включить в кластерный ресурс базы данных Watchdog.

disable
удаление ресурса базы данных, если она предварительно была включена в failover. Для указанного имени базы данных, так же отключаются дополнительные ресурсы, определенные на стадии включения.

Когда вы удаляете ресурс базы данных с помощью PROCLUSTER, кластер выполняет следующее:
- останавливает базу данных, если она запущена.
- Удаляет ресурс из кластерного менеджера, как только он будет в состоянии offline.
- Удаляет кластерную группу, если ресурс был последним в ее составе.

start
запуск кластерной базы данных. База данных предварительно должна быть включена в ресурс кластера. Эта команда не может использоваться, если не будет найден файл параметров db-name.pf.

stop
остановка кластерной базы данных. База данных должна быть кластерным ресурсом. Когда вы останавливаете базу данных с помощью PROCLUSTER, кластер делает следующее:
- останавливает базу данных.
- Извещает кластер о том, что ресурс был остановлен без fail over.

terminate
вынуждает зарегистрированную и защищенную кластером базу данных останавливаться. База должна являться кластерным ресурсом.

looksalive
определяет является ли ресурс looks operational, запрашивая кластерный кэш менеджера, т.е. ресурс найден или активен в системе. База данных должна быть ресурсом кластера. Параметр возвращает статус в виде текста «Looks Alive»:

Resource: db-name State: Looks Alive

Этот статус будет возвращен, только если база данных включена в ресурс и запущена, все остальные состояния будут возвращены в виде следующего текста:

Resource: db-name State: Not Alive

isalive
определяет что ресурс является actual operational, по запросу статуса указанной базы данных.

Если база данных вернула положительное значение, будет выдан следующий текст:

Resource: db-name State: Is Alive

Все остальные состояния возвратят следующее:

Resource: db-name State: Is Alive

Примечание:

- PROCLUSTER ENABLE зарегистрирует базу данных в качестве кластерного ресурса, даже если во время регистрации имели место различные ошибки. Для их исправления необходимо сначала исключить базу данных из кластера, командой PROSLUSTER DISABLE, и после устранения причин ошибок, заново выполнить PROCLUSTER ENABLE





Утилита PROCOPY

PROCOPY выполняет копирование существующей базы данных.

Синтаксис:

procopy source-db-name target-db-name [-newinstance ] [-silent]

Параметры:

source-db-name
указывается база данных для копирования. Нельзя выполнить копирование, если сервер базы данных запущен.

target-db-name
указывается структурный файл или новая база данных. Если вы укажите каталог без имени файла, PROCOPY возвратит ошибку.

Значение, которое вы определяете, может состоять из любой комбинации символов и чисел, начинающее с символа. Не используйте ключевые слова ABL или специальные символы, на подобие запятых или точек с запятой. Максимальная длина target-db-name зависит от текущей операционной системы. Для определения ограничения, обратитесь к документации вашей операционной системы.

-newinstance
указывает о необходимости создания нового GUID для целевой базы данных.

-silent
подавляет выходные сообщения.

PROCOPY копирует исходную базу данных в целевую базу. Если целевая база данных существует, она должна минимально содержать такие же типы и количеств областей хранения (storage area) и такое же количество их экстентов, как в исходной базе данных. Тем не менее, количество экстентов не обязательно должно совпадать с исходной базой данных. PROCOPY будет расширять существующие экстенты в целевой базе данных для размещения возможного увеличения размера.

Если целевая база данных не существует, PROCOPY создаст ее используя существующий структурный файл (.st) в каталоге целевой базы данных. Если структурный файл отсутствует, PROCOPY создаст базу данных на основе структурного файла исходной базы данных, и разместит экстенты в том же каталоге, где расположена целевая база данных (.db), даже если исходная база данных размещена во многочисленных каталогах.

Примечание:
- Если вы не указываете расширение .db для базы данных, PROCOPY автоматически добавит его.
- Целевая база данных должна содержать туже физическую структуру, что и исходная. Например, она должна иметь то же количество областей хранения, записей, блоков, размер блоков и размер кластера.
- PROCOPY поддерживает работу с параметрами интернационализации, такими как –cpstream и cpinternal.
- База данных версии меньшей чем 10.1A, не поддерживают схему для работы с GUID. При копировании таких баз, поле GUID не будет добавлено в базы данных. Таким образом, параметр –newinstance будет проигнорирован. Для определения, что ваша схема актуальна используйте PROUTIL UPDATESCHEMA.
- Базы данных, содержащиеся в установочном каталоге, содержат поля для GUID базы, но эти поля имеют неопределенное значение (Unknown value) (?), а не корректные значения GUID. Когда PROCOPY используется для копирования этих баз, поле GUID проставляется им автоматически.





Утилита PRODB

PRODB создает базы данных OpenEdge.

Синтаксис:

prodb [ new-db-name ]
      [ empty | sports | isports | sports2000 | old-db-name | demo ]
      [ -newinstance ]

Параметры:

new-db-name
указывается имя создаваемой базы данных. Если вы укажите каталог без имени файла, PRODB возвратит ошибку.

Указанное значение может содержать как символы, так и числа, при этом начинаться оно должно с символа. Не используйте ключевые слова ABL или специальные символы, на подобие запятых или точек с запятой. Максимальная длина new-db-name зависит от текущей операционной системы.

empty
указывает, что новая база данных будет копией empty базы данных расположенной в установочном каталоге OpenEdge. PRODB известно, где расположена empty база данных, поэтому не нужно указывать полный путь к ней.

К тому же вы можете указывать различные empty базы данных, различающиеся по размеру блока базы:
- empty (по умолчанию)
- empty1 (размер блока 1К)
- empty2 (размер блока 2К)
- empty4 (размер блока 4К)
- empty8 (размер блока 8К)

Чтобы создавать empty базы данных, вы все равно должны указать путь к каталогу, в котором установлен OpenEdge, либо использовать переменную окружающей среды DLC. Например, используйте следующую команду:

prodb new-db-name $DLC/empty2

sports
указывает, что база данных будет копией с базы Sports.

isports
указывает, что новая база данных будет копией международной (international) базы данных Sports.

sports2000
указывает, что новая база данных будет копией базы данных Sports2000.

old-db-name
определяет имя базы данных, которую вы копируете.

demo
определяет, что новая база данных, это копия демонстрационной базы данных.

-newinstance
Определяет новый GUID для создаваемой базы данных.

PRODB создает новую базу данных из указанной исходной. PRODB создает новую базу данных используя структуру исходной базы данных и размещает все экстенты в текущем рабочем каталоге. Вы можете использовать PRODB для создания копии любой демонстрационной или empty базы данных.

Примечание:

- Вы также можете создать новую базу данных с помощью Data Dictionary.
- Когда вы используете PRODB и даете копии новое имя, вы не сможете запустить на ней оригинальные r-код файлы. Это потому, что PRODB сохраняет имя базы данных в r-коде. Для запуска r-кода на этой базе данных, используйте параметр запуска Logical Database Name (-ld) и используйте оригинальное имя базы данных.
- Новая база данных будет содержать туже физическую структуру что и исходная. Например, количество областей хранения, записей, блоков и их размеров.
- База данных версии меньшей чем 10.1A, не поддерживают схему для работы с GUID. При копировании таких баз, поле GUID не будет добавлено в базы данных. Таким образом, параметр –newinstance будет проигнорирован. Для определения, что ваша схема актуальна используйте PROUTIL UPDATESCHEMA.
- Базы данных, содержащиеся в установочном каталоге, содержат поля для GUID базы, но эти поля имеют неопределенное значение (Unknown value) (?), а не корректные значения GUID. Когда PRODB используется для копирования этих баз, поле GUID проставляется им автоматически.
- PRODB поддерживает работу с параметрами интернационализации, такими как –cpstream и cpinternal.
- Когда вы используете параметры интернационализации, то указывайте целевую и исходную базы данных  прежде чем эти параметры.
- PRODB также поддерживает файлы параметров (.pf).





Утилита PRODEL

PRODEL удаляет базу данных OpenEdge.

Синтаксис:

prodel db-name

Параметры:

db-name
указывает удаляемую базу данных.

Примечание:

- Когда вы удаляете базу данных, PRODEL отображает сообщение, уведомляя вас о том, что происходит удаление базы данных, файлов событий, BI и AI областей.
- Когда вы удаляете базу, PRODEL удаляет все связанные с ней области, которые были созданы на основе структурного файла.
- Если AI области существуют в базе данных, будет выдано предупреждение. Скопируйте AI области перед удалением.
- PRODEL поддерживает работу с параметрами интернационализации, такими как –cpstream и cpinternal.
- PRODEL открывает файлы базы данных перед их удалением.
- Во время удаления базы данных, не происходит удаление структурного файла (.st). Поскольку структурный файл остается, вы всегда можете восстановить структуру базы после удаления.





Утилита Progress Explorer

Progress Explorer является частью структуры администрирования системы, которая обеспечивает удобный интерфейс для управления всеми продуктами OpenEdge, установленными в вашей системе. Он обеспечивает инструментальные средствами конфигурации посредством графического интерфейса пользователя (GUI). Например, вы можете использовать его для выполнения задач на локальном или удаленном компьютере, таких как:

- Подключение к AdminServer.
- Старт и останов базы данных OpenEdge.
- Конфигурирование свойств базы данных через Property Editor.

Для получения подробных инструкций по работе с Progress Explorer, обратитесь к Progress Explorer online help.

Для запуска Progress Explorer из меню Start, выберите Programs -> OpenEdge -> Progress Explorer Tool.

Примечание:

- Конфигурация базы данных, созданная с помощью Progress Explorer, сохраняется в файле conmgr.properties. Ни когда не изменяйте этот файл вручную.
- Progress Explorer включен в Microsoft Management Console (MMC), в систему инструментальных средств администрирования сети. Для получения дополнительной информации относительно MMC, смотрите MMC online help.





Утилита PROLOG

PROLOG усечение журнала событий (.lg) базы данных.

Синтаксис:

prolog db-name [ -online ]

Параметры:

db-name
определяет базу данных, журнал которой необходимо усечь. Не указывайте расширение .db.

-online
Указывает об усечении журнала в online.

Примечание:

- Если вы хотите сохранить журнал событий, используйте утилиты операционной системы для копирования журнала, до использования PROLOG.
- PROLOG поддерживает работу с параметрами интернационализации, такие как –cpinternal и –cpstream.





Утилита PROREST

PROREST проверяет целостность копии базы данных, и выполняет восстановления базы из полной или инкрементальной копии.

Синтаксис:

prorest db-name device-name { -vp | -vf | -list }

Параметры:

db-name
указывает базу данных, которую вы хотите восстановить из резервной копии.

device-name
определяет путь к каталогу, с устройством или файлом, содержащими резервную копию. Если device-name определяет блочное или символьное специальное устройство, PROREST рассчитывает, что оно имеет сменные носители, такие как ленты или дискеты.

-vp
Указывает, что при восстановлении необходимо рассчитывать и сравнивать CRC (cyclic redundancy checks) блоков копии с CRC в их заголовках. Для восстановления поврежденных блоков, вы должны использовать показатель избыточности при формировании резервной копии.

-vf
Определяет, что утилиты восстановления только выполняет сравнение резервной копии по блочно, блок с блоком.

-list
Обеспечивает описание всех областей хранения, содержащихся в пределах резервной копии. Используйте этот параметр для создания структурного файла восстанавливаемой базы данных.

Примечание:

- Когда выполняется восстановление, целевая база данных должна содержать туже физическую структуру что и структуру, содержащуюся в резервной копии. (количество областей хранения, RPB, blocksize).
- PROREST восстанавливает экстенты журнала транзакций (transaction log – TL).
- Перед началом восстановления, необходимо проверить, что резервная копия не содержит поврежденных блоков. Вы может для этого использовать PROREST с параметрами Partial Verify или Full Verify, как для полный, так и для инкрементальных резервных копий.
- При использовании параметром Partial Verify и Full Verify восстановления базы данных не происходит. Для восстановления базы данных, необходимо повторно использовать PROREST, но без этих параметров.
- Параметр Partial Verify можно использовать как в online, так и в offline.
- Параметр Full Verify рекомендуется использовать сразу после формирования полной offline резервной копии, чтобы сразу исключить факт ее повреждения.
- PROREST поддерживает работу с параметрами интернационализации, такими как –cpinternal и –cpstream.





SQL утилиты


Эта часть посвящена утилитам администрирования, используемых SQL. Здесь будут описаны следующие утилиты:

  • SQLDUMP
  • SQLLOAD
  • SQLSCHEMA




Утилита SQLDUMP

SQLDUMP это утилита командной строки, которая выгружает данные из SQL таблиц в один и более файлов.

Синтаксис:

sqldump -u user_name [ -a password ] [ -C code_page_name ]
             -t [ owner_name.]table_name1 [ [,owner_name.]table_name2,... ]
              db_name

Параметры:

-u user_name
Определяет ID пользователя, который с помощью SQLDUMP подключается к базе данных. Если вы опустите параметры user_name и password, SQLDUMP самостоятельно запросит у вас эти значения. Если вы опустите только user_name, а оставить password, SQLDUMP использует в качестве user_name значение из переменной среды USER.

-a password
Определяет пароль, используемый для аутентификации базой данных.

-C code_page_name
Символьная строка, которая определяет имя кодовой страницы для выгрузки. Если будет указана некорректная кодовая страница, то во время выполнения утилитой будет выдано сообщение об ошибке. Если кодовая страница не указана вообще, то по умолчанию будет использована внутренняя кодовая страница клиента, которая:
- Является значением переменной среды клиента – SQL_CLIENT CHARSET, если конечно же она установлена.
- Иначе, будет установлена кодовая страница языка клиента.

Например, вы можете использовать параметр –C, для клиента Windows с кодовой страницей MS1250, а выгрузку производить используя кодовую страницу ISO8859-2 (чтобы позже можно было использовать ее в UNIX). Хотя вы можете выполнить это используя переменную среды SQL_CLIENT_CHARSET, проще это сделать с помощью параметра –C.

-t owner_name.table_name
Определяет список одной или более таблиц для выгрузки в файл. Этот параметр обязательный. Образец сопоставления owner_name и table_name, может использовать знак процента (%) для одного и более количества символов, и символ подчеркивания (_) для одного символа. Сопоставление образцов, использует стандарт, определенный на подобие предикатов SQL. Вы можете выполнять выгрузку одной таблицы, набора таблиц или всех таблиц. Если вы опускаете необязательный параметр owner_name, SQLDUMP использует вместо него имя указанное параметром –u.

db_name
определяет базу данных, таблицы которой вы хотите выгрузить.

За один вызов SQLDUMP вы можете выгружать данные одной базы данных. Опция db-name не имеет ни какого предшествующего флага. Это параметр необходим, и должен быть определен как последний. Имя базы данных определяется следующим образом: progress:T:localhost:demosv:jo.

SQLDUMP выгружает данные в различные файлы только из SQL таблиц. Для их загрузки в другую базу данных, вы можете воспользоваться утилитой SQLLOAD. SQLDUMP не работает с ABL таблицами.

SQLDUMP пишет пользовательские данные в порядке ASCII записей с форматом переменной длины. Порядок колонок в файле, идентичен порядку колонок в таблицах. В файл выгрузки, утилита записывает как формат так и заголовок содержимого таблицы. Вы можете выполнят выгрузку множества таблиц за один раз, определяя названия таблиц через запятую. При этом нельзя оставлять пробелы между названиями таблиц и разделяющими их запятыми.

Данные одной таблицы всегда выгружаются в отдельный файл выгрузки. И каждый файл выгрузки связан с одной таблицей базы данных. Например, если вы выгружаете 200 SQL таблиц, SQLDUMP создаст 200 файлов выгрузки. SQLDUMP создает файл с именем, состоящим из owner_name и table_name, а также с расширением .dsql. Если файл с сформированным именем уже будет существовать, он будет перезаписан и заменен. Выгружаемые файлы формируются в текущем рабочем каталоге.

Формат записей в файле выгрузки аналогичен ABL формату для .d файлов:

- Преобразование всех значений в символьное представление.
- Отделение CHARACTER значение кавычками.
- Может содержать любые символы, за исключением NULL значений, включая запятые, перевод строки, и другие управляющие символы.
- Использует двойные кавычки, для избежание вставки двойных кавычек.
- Разделяет NUMERIC и другие не символьные данные используя пробел.
- Обрабатывает данные TIMESTAMP, как символьные данные.
- Имеет ограничение в 2Кб для значения одного столбца.
- Имеет ограничение в 32Кб для одной записи в файле выгрузки.

Любая ошибка, это фатальная ошибка, поэтому SQLDUMP сразу останавливает процесс выгрузки, чтобы целостность базу данных не была поставлен под угрозу. SQLDUMP сообщает об ошибках с помощью стандартного вывода сообщений на экран.

После успешного завершения, SQLDUMP выводит итоги работы на экран. Для каждой обработанной таблицы, SQLDUMP сообщает следующее:

- Имя таблицы
- Имя файла выгрузки
- Количество выгруженных записей.
- Количество выгруженных байт
- Время в секундах, понадобившееся для обработки.

Пример:

Этот пример указывает утилите SQLDUMP о необходимости выгрузки  двух таблиц в два различных файла. user_name и password для подключения к базе данных – tucker и sulky. Учетная запись tucker должна иметь соответствующие полномочия в виде доступа к таблицам customers и products в базе данных salesdb и owner_name  - martin:

sqldump -u tucker -a sulky -t martin.customers,martin.products
progress:T:thunder:4077:salesdb

Следующий пример, демонстрирует выгрузку с помощью SQLDUMP всех таблиц из salesdb начинающихся на со строк: cust, invent, sales. И имеющих любого владельца, которые позволяют пользователю tucker получить к ним доступ.

sqldump -u tucker -a sulky -t%.cust%,%.invent%,%.sales%
progress:T:thunder:4077:salesdb

А следующий пример, показывает как выгрузить с помощью SQLDUMP данные всех таблиц с любыми владельцами из базы данных salesdb:

sqldump -u tucker -a sulky -t %.% progress:T:thunder:4077:salesdb

Примечание:

- db_name всегда должен быть последним в списке параметров.
- Перед выполнением SQLDUMP на сервер базы данных, сервер должен быть настроен для работы с SQL подключениями и соответственно запущен.
- Каждый файл выгрузки содержит информацию о наборе символов в секции идентификатора каждого файла. Например:

A^B^CProgress sqlschema v1.0 Quote fmt
A^B^CTimestamp 1999-10-19 19:06:49:0000
A^B^CDatabase dumpdb.db
A^B^CProgress Character Set: iso8859-1
A^B^CJava Charcter Set: Unicode UTF-8
A^B^CDate Format: MM/DD/YYYY

Набор символов, записанные в файл выгрузки, это набор клиентских символов. Заданный по умолчанию набор символов для всех не JDBC клиентов, взят из локальной операционной системы. JDBC клиенты, использует наборы символов UNICODE  - UTF-8.

Для использования иного набора символов, воспользуйтесь переменной окружения SQL_CLIENT_CHARSET. Вы можете использовать любой набор символов поддерживаемый OpenEdge. Имя набора символов не чувствительно к регистру.
- SQLDUMP не поддерживает следующие символы в именах схемы:
    Двойные кавычки (“)
    Косую черту (/)
    Обратную косую черту (\\)
- SQLDUMP поддерживает имена схемы, содержащие специальные символы, такие как пробел, дефис (-) или решетка (#). Эти имена должны быть использованы как разграниченные идентификаторы. Следовательно, при использовании таких имен в командной строке UNIX, следуйте следующим правилам:
    Используйте двойные кавычки, для разделения идентификаторов.
    Чтобы командная строка не распознавала кавычки, используйте обратную косую черту (\\), чтобы экранировать их.
    Используйте двойные кавычки, чтобы работать с любыми названиями имен, с наличием пробелов, запятых и специальных символов командной строки.

Например, для выгрузки таблицы Yearly Profits, используйте следующую Unix команду:

sqldump -t \"\\\"Yearly Profits\\\"\" -u xxx -a yyy db_name

- По умолчанию, SQLDUMP использует promsgs сообщения, используя кодовую страницу, соответствующую code_page_name. Т.е. если вы выполняете выгрузку русскоязычной базы данных, и устанавливаете русскую кодовую страницу, отображаемые сообщения на экране будут использовать российскую кодовую страницу.






Утилита SQLLOAD

SQLLOAD это утилита командной строки, которая выполняет загрузку данных в SQL базу данных.

Синтаксис:

sqlload -u user_name [ -a password ] [ -C code_page_name ]
           -t [ owner_name.]table_name1 [ [,owner_name.]table_name2, ... ]
           [ -l log_file_name ] [ -b badfile_name ] [ -e max_errors ]
           [ -s skipcount ] [ -m maxrows ] [ -F comma | quote ]
            db_name

Параметры:

-u user_name
Определяет ID пользователя, который с помощью SQLLOAD подключается к базе данных. Если вы опустите параметры user_name и password, SQLLOAD самостоятельно запросит у вас эти значения. Если вы опустите только user_name, а оставить password, SQLLOAD использует в качестве user_name значение из переменной среды USER.

-a password
Определяет пароль, используемый для аутентификации базой данных.

-C code_page_name
Символьная строка, которая определяет имя кодовой страницы для выгрузки. Если будет указана некорректная кодовая страница, то во время выполнения утилитой будет выдано сообщение об ошибке. Если кодовая страница не указана вообще, то по умолчанию будет использована внутренняя кодовая страница клиента, которая:
- Является значением переменной среды клиента – SQL_CLIENT CHARSET, если конечно же она установлена.
- Иначе, будет установлена кодовая страница языка клиента.

Например, вы можете использовать параметр –C, для клиента Windows с кодовой страницей MS1250, а выгрузку производить используя кодовую страницу ISO8859-2 (чтобы позже можно было использовать ее в UNIX). Хотя вы можете выполнить это используя переменную среды SQL_CLIENT_CHARSET, проще это сделать с помощью параметра –C.

-t owner_name.table_name
Определяет список одной или более таблиц для загрузки в базу данных. Этот параметр обязательный. Образец сопоставления owner_name и table_name, может использовать знак процента (%) для одного и более количества символов, и символ подчеркивания (_) для одного символа. Сопоставление образцов, использует стандарт, определенный на подобие предикатов SQL. Вы можете выполнять загрузку одной таблицы, набора таблиц или всех таблиц. Если вы опускаете необязательный параметр owner_name, SQLDUMP использует вместо него имя указанное параметром –u. Утилита требует, чтобы имя файла было сформировано следующим образом: owner_name.table_name.dsql.

-l log_file_name
Указывает файл, в кторый SQLLOAD будет записывать сообщения об ошибках и статистику.

-b badfile_name
Определяет файл, в который SQLLOAD записывает не загруженные строки.

-e max_errors
Определяет максимальное количество допускаемых ошибок во время работы SQLLOAD, прежде чем процесс будет прерван. По умолчанию – 50.

-m maxrows
Указывает SQLLOAD, о необходимости прекращения загрузки по достижении указанного количества строк.

-n
Указывает SQLLOAD о необходимости проверки синтаксических ошибок до загрузки строк.

-F comma | quote
Указывает, о загрузки данных разделенных либо запятой, либо выделенных кавычками. По умолчанию используются кавычки.

db_name
определяет имя базы данных, в которую будет производиться загрузка. Этот параметр обязательный, и всегда должен быть указан последним. Имя базы данных определяется следующим образом: progress:T:localhost:demosv:jo.

SQLLOAD загружает пользовательские данные из форматированного файла в SQL базу данных. Обычно, файлы для загрузки создаются утилитой SQLDUMP. Утилита SQLLOAD так же может обрабатывать исходные файлы, созданные другими приложениями или утилитами, при условии, что формат файл будет соответствовать требованиям SQLLOAD. Расширение файла, доступного для обработки SQLLOAD, должно быть .dsql. Формат формата файла описан в разделе SQLDUMP.

Утилита SQLLOAD читает прикладные данные из форматированных текстовых файлов различной длины и записывает их в указанную базу данных. Порядок столбцов в файле должен быть аналогичен порядку столбцов в таблице базы данных. SQLLOAD считывает формат и содержимое заголовка записи из загружаемого файла. Вы можете выполнять загрузку многочисленных таблиц, за один раз, указав таблицы разделенные запятыми. Для каждой таблицы используется один файл загрузки. И каждый файл загрузки связан с одной таблицей базу данных. Например, если вы укажите 200 таблиц в строке SQLLOAD, вы загрузите 200 файлов в базу данных.

Формат записи во входящем файле аналогичен обычному текстовому ABL файлу выгрузки (.d). Максимальная длина записи равна 32K.

Каждое чтение записи использует блокировку share-lock. Поэтому вы должны обеспечить сервер SQL достаточно большой таблицей блокировок, из расчета. одна блокировка на одну запись. По умолчанию, размер таблицы блокировок равен 10 000.

SQLOAD записывает любые ошибки в стандартный выходной файл, и может остановить процесс загрузки, в случае, если ошибка поставит под угрозу целостность базы данных.

Пример:

В следующем примере показана загрузка данных  с помощью SQLLOAD из двух файлов в базу данных salesdb. Имена этих фалов: tucker.customer.dsql и tucker.products.dsql:

sqlload -u tucker -a sulky -t tucker.customers,tucker.products
progress:T:thunder:4077:salesdb

Следующий пример выполняет загрузку из всех файлов. Удовлетворяющих указанным критериям, в соответсвующие таблицы базы данных salesdb:

sqlload -u tucker -a sulky -t %.cust%,%.invent%,%.sales%
progress:T:thunder:4077:salesdb

Примечание:

- db_name всегда должен быть последним параметром.
- Перед выполнением SQLDUMP на сервер базы данных, сервер должен быть настроен для работы с SQL подключениями и соответственно запущен.
- Набор символов, используемый SQLLOAD, должен соответствовать набору символов указанному в каждом загружаемом файле. Иначе, загрузка будет прервана. Вы можете использовать переменную среды SQL_CLIENT CHARSET для определения набора символов.

Каждый загружаемый файл, который создан с помощью SQLDUMP, содержит информацию о наборе символов, используемом в этом файле. Набор символов, записанные в файл выгрузки, это набор клиентских символов. Заданный по умолчанию набор символов для всех не JDBC клиентов, взят из локальной операционной системы. JDBC клиенты, использует наборы символов UNICODE  - UTF-8.

Для использования иного набора символов, воспользуйтесь переменной окружения SQL_CLIENT_CHARSET. Вы можете использовать любой набор символов поддерживаемый OpenEdge. Имя набора символов не чувствительно к регистру.
- Во время выполнения, SQLLOAD сообщит об ошибке, если обнаружит не соответствие между кодовой страницей загружаемого файла и кодовой страницей клиента, запустившего SQLLOAD.
- По умолчанию, SQLLOAD использует promsgs сообщения, используя кодовую страницу, соответствующую code_page_name. Т.е. если вы выполняете выгрузку русскоязычной базы данных, и устанавливаете русскую кодовую страницу, отображаемые сообщения на экране будут использовать российскую кодовую страницу.
- SQLLOAD не поддерживает следующие символы в именах схемы:
    Двойные кавычки (“)
    Косую черту (/)
    Обратную косую черту (\\)

- SQLLOAD поддерживает имена схемы, содержащие специальные символы, такие как пробел, дефис (-) или решетка (#). Эти имена должны быть использованы как разграниченные идентификаторы. Следовательно, при использовании таких имен в командной строке UNIX, следуйте следующим правилам:
    Используйте двойные кавычки, для разделения идентификаторов.
    Чтобы командная строка не распознавала кавычки, используйте обратную косую черту (\\), чтобы экранировать их.
    Используйте двойные кавычки, чтобы работать с любыми названиями имен, с наличием пробелов, запятых и специальных символов командной строки.

Например, для выгрузки таблицы Yearly Profits, используйте следующую Unix команду:

sqldump -t \"\\\"Yearly Profits\\\"\" -u xxx -a yyy db_name





Утилита SQLSCHEMA

SQLSCHEMA это утилита командной строки, которая записывает выборочно компоненты схемы SQL базы данных в файл.

Синтаксис:

sqlschema -u user_name [ -a password ]
            [ -t [ owner_name.]table_name1 [,owner_name.]table_name2, ... ]
            [ -p [ owner_name.]procedure_name, ... ]
            [ -T [ owner_name.]trigger_name, ... ]
            [ -g [ owner_name.]table_name, ... ]
            [ -s [ owner_name.]tablename, ... ]
            [ -o output_file_name ]
            db_name

Параметры:

-u user_name
Определяет ID пользователя, который использует SQLSCHEMA для подключения к базе данных. Если вы опустите параметры user_name и password, утилиты запросит у вас их. Если опустите только user_name и при этом укажите password, SQLSCHEMA использует значение определенное в переменной среде USER.

-a password
Определяет пароль, используемый для аутентификации в базе данных.

-t owner_name.table_name
Список из одной или более таблиц, описания которых вы хотите выгрузить. Маска owner_name, может использовать знак процента (%) для одного и более количества символов, и символ подчеркивания (_) для одного символа. Сопоставление образцов, использует стандарт, определенный на подобие предикатов SQL. Вы можете выполнять загрузку одной таблицы, набора таблиц или всех таблиц. Если вы опускаете необязательный параметр owner_name, SQLSCHEMA использует вместо него имя указанное параметром –u.

-p owner_name.procedure_name
Список из одной или более процедур, которые вы хотите выгрузить. Утилита поддерживает работу по маске. Смотри описание owner_name.table_name, для примера использования маски. Вы можете указать маску как для одной процедуры, списка процедур или всех имеющихся процедур. Если вы опускаете необязательный параметр owner_name, SQLSCHEMA использует вместо него имя указанное параметром –u.

-T owner_name.trigger_name
Список из одного или более птригеров, которые вы хотите выгрузить. Смотри описание owner_name.table_name, для примера использования маски. Вы можете указать маску как для одного триггера, списка триггеров или всех имеющихся триггеров. Если вы опускаете необязательный параметр owner_name, SQLSCHEMA использует вместо него имя указанное параметром –u.

-g owner_name.table_name
Список из одной или более таблиц, чьи привилегии зафиксированы как grant statements. Вы можете записать привилегии grant statements как для таблиц, так и для столбцов. Для этого параметра утилита также поддерживает работу по маске.

-s owner_name.table_name
Определяет список из одной или более таблиц, чьи связи синонимов закреплены как create synonym statements. Параметр поддерживает работу по маске.

-o output_file_name.dfsql
Определяет выходной файл, куда SQLSCHEMA будет записывать описания. Расширение имени файла должно быть .dfsql. Если параметр опущен, утилита выведет описания на экран.

db_name
определяет базу данных, из которой SQLSCHEMA будет брать компоненты описания. За один раз, SQLSCHEMA работает только с одной базой данных. Этот параметр обязательный, и всегда должен быть указан последним. Имя базы данных определяется следующим образом: progress:T:localhost:demosv:jo

Вы можете с помощью этой утилиты выгружать: описания таблиц, включая их ограничения; view; хранимые процедуры, включая связанные привилегии; триггеры. Для загрузки информации о схеме в базу данных, используйте инструментальное средство SQL Explorer.

Утилита SQLSCHEMA не работает с описаниями ABL таблиц. Табличные описания включают имя области базы данных с таблицей, полученной путем сканирования областей и объектов. Когда утилита записывает описание таблицы, она автоматически не записывает связанные с ней триггеры, синонимы и привилегии. Для этого они должны быть явно определены в командной строке. Данные операции требуют соответствующих привилегий при обращении к каждому компоненты.

Пример:

Следующий пример демонстрирует, как SQLSCHEMA выполняет запись описания таблиц и информации о триггерах. Вывод будет осуществлен на экран, так как не определен параметр output_file_name. Поскольку имя пользователя и пароль не указаны, SQLSCHEMA запросит у нас эти значения:

sqlschema -t tucker.customers,tucker.products -T
tucker.customers,tucker.products progress:T:thunder:4077:salesdb

А в следующем примере, SQLSCHEMA запишет описание таблиц в файл с именем salesdbschema.dfsql:

sqlschema -u tucker -a sulky -t %.cust%,%.invent%,%.sales% -o
salesdbschema.dfsql progress:T:thunder:4077:salesdb

Примечание:

- Перед выполнением SQLSCHEMA на сервер базы данных, сервер должен быть настроен для работы с SQL подключениями и соответственно запущен.
- Каждый файл, созданный утилитой, записывает информацию о наборе символов, содержащихся в файле. Когда вы используете SQLSCHEMA для выгрузки информации о схеме из базы данных, она будет записана в Unicode UTF-8.








Главная |  Статьи |  Книги |  Гостевая |  Ссылки |  От автора |  Download ProKb


������ ᠩ� pr Online ProKB Blogger Welcome to Russian Progress Users Group at Facebook Welcome to Russian Progress Users Group at LinkedIn
© 2009 - 2011 Все права на материалы, находящиеся на сайте www.openedge.ru, охраняются в соответствии с законодательством РФ, в том числе, об авторском праве и смежных правах.
При любом использовании материалов сайта ссылка на источник обязательна.