|
|
Утилиты 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.
|
|
|
|