|
|
Основы баз данных OpenEdge
Основы баз данных OpenEdge
Способы создания баз данных
Создание баз с помощью PROSTRCT CREATE
Создание структурного файла
Пути к экстентам области и соглашения о их именовании
Правила по созданию областей хранения и их экстентов
Пример структурного файла
Пример структурного файла с экстентами больших размеров
Создание структуры базы данных
Добавление схемы в пустую базу данных
Создание баз с помощью утилиты PRODB
Копирование баз данных
Удаление баз данных
Ограничения баз данных OpenEdge
Размер блоков базы
Максимальное количество записей в блоке
Количество и размеры областей хранения
Ограничения таблиц и индексов
Количества и размеры сиквенсов
Максимальный размер области Primary Recovery (BI)
Максимальный размер базы данных
Количество соединений с базой
Количество одновременных транзакций в базе
Ограничения имен баз данных
File Handles
Коллективная память (Schared memory)
Типы данных и их значения
Старт и останов баз данных OpenEdge
Open Edge Explorer Framework
Запуск сервера или брокера
Международные наборы символов
Операционный набор символов
Набор символов для лога базы данных
Сетевая адресация с помощью –H и –S
Запуск многочисленных брокеров, использующих одинаковый протокол
Доступ к серверу через firewall
Запуск брокера базы данных с использованием SSL
Запуск и останов фоновых процессов
Запуск и останов APW
Запуск и останов BIW
Запуск и останов AIW
Останов сервера или брокера
Команда PROSHUT
Утилита PROMON
Защита данных
Поддержка и мониторинг базы данных
Команды запуска и останова
Параметры запуска баз данных
Утилиты OpenEdge RDBMS
Виртуальные системные таблиц (VST)
Способы создания баз данных
Существует несколько способов для создания базы данных Progress OpenEdge. Для этого вы можете воспользоваться такими утилитами Progress, как PROSTRCT CREATE, PRODB, PROCOPY или PROREST, а так же с помощью пользовательских интерфейсов Data Dictionary и Data Administration.
Далее я постараюсь описать каждый из указанных методов в отдельности.
Создание баз с помощью PROSTRCT CREATE
Для создания базы данных, с помощью утилиты PROSTRCT CREATE, необходимо чтобы у вас имелся структурный файл (.st), который должен содержать описание областей хранения (Storage Area) и их экстентов (Extents). Когда такой файл будет создан, необходимо запустись команду, дождаться завершения её работы, и после чего скопировать схему empty базы данных во вновь созданную структуру.
Создание структурного файла
Структурный файл – это текстовый файл, содержащий описание структуры базы данных. Он содержит всю информацию, необходимую утилите PROSTRCT CREATE , для создания контрольной области (Control Area) и прочих экстентов базы данных. Для его создания можно использовать любой текстовый редактор. Имя файла должно состоять из имени базы данных, определяемого вами, и расширения “.st”.
Структурный файл может содержать одну или более строк текста с описанием каждой области базы данных. Каждая строка, это набор признаков, которые описывают следующие характеристики области хранения:
- Тип области хранения
- Имя области
- Номер области
- Опцию RPB (Records per Block)
- Опцию количества блоков на кластер (для областей хранения Type II)
- Полный путь к экстенту области
- Тип экстента
- Размер экстента
Следующий синтаксис показывает, как эти 8 признаков комбинируются, чтобы формировать строку в структурном файле:
line = comment | CR | type path [sizeinfo]
comment = * | : | #
CR = blank line
type = a | b | d | t [areainfo]
areainfo = “areaname”[:areanum][,recsPerBlock][;blksPerCluster]
areaname = string
areanum = numeric value
recsPerBlock = numeric value
blksPerCluster = 1 | 8 | 64 | 512
path = string
sizeinfo = extentType size
extentType = f | v
size = numeric value > 32
Таблица 1-1 описывает каждое значение этих 8 признаков в структурном файле.
Таблица 1-1 Признаки ST файла
Признак |
Описание
|
type |
Показывает тип области хранения. Может принимать следующие значения:
a – After-image area
b – Before-image area
d – Schema and application data area
t – Transaction log area |
areaname |
Наименование области хранения |
areanum |
Номер области хранения |
recsPerBlock |
Количество записей на один блок базы данных. Возможные, принимаемые значение – 1,2,4,8,16,32,64,128 и 256 |
blcksPerCluster |
Количество блоков базы данных в кластере. Возможные значения – 1, 8, 64 и 512. |
path |
Абсолютный или относительный путь к каждому экстенту области |
extentType |
Показывает, какой тип у экстента области – фиксированный (f) или переменный (v). Если значение признака не определено, экстент считается переменным по размеру. |
size |
Размер экстента в килобайтах. Это значение должно быть кратным 16 по отношению к размеру блока базы данных. |
Пути к экстентам области и соглашения о их именовании
Утилита PROSTRCT CREATE сконструирована так, чтобы работать с минимум предоставленной ей информацией. Достаточно, чтобы были определены тип области и место нахождения её экстентов. Имена файлов, так же как и их расширения, могут быть опущены. Единственное ограничение для путей файлов, которое может возникнуть, это возможные ограничения вашей операционной системы.
PROSTRCT CREATE генерирует имена и расширения для всех файлов базы данных согласно следующим обозначениям:
- Контрольная область (.db) (Control Area) и файл лога базы данных (.lg) размещаются в директории определенной параметром командной строки dbname.
- Если указаны относительные пути, включая символ точки (.), то они будут расширены до абсолютных. Относительный путь начинается с вашей рабочей директории.
- Для файлов Before-image имя файла будет состоять из имени базы данных и расширения .bn, где n это порядковый номер файла, начиная с 1.
- Для файлов After-image имя файла будет состоять из имени базы данных и расширения .an, где n это порядковый номер файла, начиная с 1.
- Как и для предыдущих двух областей, для файлов Schema Area имя файла также будет состоять из имени базы данных и расширения .dn, где n это порядковый номер файла, начиная с 1.
- Для Transaction log имя файла будет состоять из имени базы данных и расширения .tn, где n это порядковый номер файла, начиная с 1.
- Для областей данных имя файла будет сформировано из имени базы данных, нижнего подчеркивания и номера области, например, customer_7.d1. Номер области, это уникальный идентификатор, который отличает область от других областей. Файлы областей данных также имеют расширение .dn.
Правила по созданию областей хранения и их экстентов
При создании областей хранения и их экстентов необходимо придерживаться следующих минимальных правил. А именно. Минимум информации, которая может содержаться в st – файле, это один экстент для области Schema Area и один экстент для области Primary Recovery Area (BI). Эта информация должна быть определена для любой области хранения как и путь к её экстентам. Например:
# Primary Recovery Area
b .
# Schema Area
d .
Если не будет указан путь к экстенту области Primary Recovery – PROSTRCT CREATE сгенерирует ошибку. Нельзя использовать имена зарезервированных областей в качестве имен для областей хранения данных.
Вы можете определять размер экстента области хранения фиксированным или переменным. Когда создается экстент фиксированного размера (или еще говорят фиксированной длины), то его блоки предварительно размещаются и форматируются под базу данных. Для его создания нужно в st - файле установить ему соответствующий признак – “f”. При использовании этого признака, обязательно укажите признак размера файла в килобайтах. Этот размер должен быть кратным числу (16 * database - blocksize). Если будет определен не кратный размер, PROSTRCT CREATE отобразит предупреждающее сообщение и автоматически округлит значение до ближайшего кратного числа. Минимально допустимый размер экстента, это 32K, максимальный – ограничен размерами вашей файловой системы и физическим объемом, содержимого файла. Таблица 1-2 показывает, как размер экстента изменяется по отношению к размеру блока базы данных.
Таблица 1-2 Расчет размера экстента
Размер блока базы |
Формула |
Размер файла
|
1 |
2*(16 * 1)
3*(16 * 1)
|
32K
48K
|
2 |
1*(16 * 2)
2*(16 * 2)
3*(16 * 2)
|
32K
64K
96K
|
4 |
1*(16 * 4)
2*(16 * 4)
3*(16 * 4)
|
64K
128K
192K
|
8 |
1*(16 * 8)
2*(16 * 8)
3*(16 * 8)
|
128K
256K
384K
|
Экстенты переменного размера (далее я буду их называть экстенты переменной длины) обычно используется на случай, если все экстенты фиксированной длины заполнятся. Для оластей .db и .bi можно определить по одному экстенту переменной длины, и это должен быть последний экстент в области. Для области AI ограничений на количество экстентов переменной длины не существует. При определении типа экстента в st – файле, вы также можете указать его максимальный размер до которого он может вырасти, указав опцию “v”. Начальное значение такого экстента равно 32K или равно размеру кластера области. Максимальный размер может быть сколько угодно большим. Размер кластера можно вычислить, перемножив размер блока на количество блоков в кластере.
Пример структурного файла
В следующем примере представлен st-файл, с именем sports2000.st, который содержит : одну область Primary Recovery; одну область Schema Area; три After-image экстента фиксированного размера; один экстент области Transaction Log так же фиксированного размера; и наконец, шесть областей, имеющих по два экстента: один фиксированной длинны, другой – переменной. Эти области названы следующим образом: Employee, Inventory, Cust_Data, Cust_Index, Order и Misc. Заметьте, что Cust_Data, Cust_Index, и Order содержат в описании размер кластера, это значит, что они имеют тип Type II. Пока не определено количество блоков на кластер – область считается Type I. Номера областей не определены. Области перечислены последовательно начиная с 7-ки.
Sample Structure Description File: sports2000.st
#
# The following defines the Primary Recovery Area consisting of one
# variable length extent. It resides in the /usr2/bi directory:
#
b /usr2/bi
#
# The following defines the Schema Area consisting of one variable length #
extent, residing in the current working directory:
#
d “Schema Area” .
#
# The following defines three fixed length After Image Areas each equal to
# 1 MB in size:
#
a /usr3/ai f 1024
a /usr3/ai f 1024
a !”/usr3/ai data” f 1024
#
# The following defines a Transaction Log Area equal to 4 MB in size and
# residing in the current working directory. This storage area is used
# for 2 phase commit:
#
t . f 4096
#
# The following defines six Application Data Areas each with one fixed
# length extent equal to 1 MB in size and 1 variable length extent:
#
d “Employee”,32 /usr1/emp f 1024
d “Employee”,32 /usr1/emp
#
d “Inventory”,32 /usr1/inv f 1024
d “Inventory”,32 /usr1/inv
#
d “Cust_Data”,32;64 /usr1/cust f 1024
d “Cust_Data”,32;64 /usr1/cust
#
d “Cust_Index”,32;8 /usr1/cust f 1024
d “Cust_Index”,32;8 /usr1/cust
#
d “Order”,32;64 /usr1/ord f 1024
d “Order”,32;64 /usr1/ord
#
d “Misc”,32 !”/usr1/misc data” f 1024
d “Misc”,32 !”/usr1/misc data”
#
# Note that the directory pathname for the “Misc” application data area
# contains spaces, and to recognize that the pathname is specified with
# an ! (exclamation point) and “ “ (quotation marks).
Пример структурного файла с экстентами больших размеров
При создании новой базы, если в структурном файле определены области с фиксированными или переменными экстентами, и размер которых более 2GB, то этот процесс займет больше времени, из-за высокой нагрузки на файловую систему. Обратите внимание, работа с большими файлами возможна только с Enterprise лицензией.
# Sample Structure Description File: largedb.st
#
# largedb.st to create database largedb with large file processing enabled.
#
# A fixed length bi file of 1GB and a variable length bi file with a maximum
# size of 4GB.
#
b tests/largedb.b1 f 1048576
b tests/largedb.b2 v 4194304
#
# SCHEMA AREA with a fixed length file of 3GB and a variable length file with
# a maximum size of 3GB.
#
d “Schema Area”:6,64 tests/largedb.d1 f 3145728
d “Schema Area”:6,64 tests/largedb.d2 v 3145728
#
# TABLE AREA with a fixed length file of just over 2GB and a variable length
# file with a maximum size of 1TB.
#
d “Table Area”:7,64 tests/largedb_7.d1 f 2097280
d “Table Area”:7,64 tests/largedb_7.d2
#
# A fixed length ai file of 2GB and a variable length file with a maximum size
# of 1TB.
a tests/largedb.a1 f 2097152
a tests/largedb.a2
#
Создание структуры базы данных
Утилита PROSTRCT CREATE предназначена для формирования физической структуры состоящей из файлов базы данных. Синтаксис утилиты следующий:
prostrct create db-name [structure-description-file]
[-blocksize blocksize]
[-validate]
В синтаксическом блоке structure-description-file указывается имя структурного файла (.st). Если имя файла не будет указано, то PROSTRCT CREATE использует файл db-name.st. Размер блока базы указывается в килобайтах и представлен параметром blocksize, который может быть определен как 1024, 2048, 4096 или 8192. Если Вы определяете параметр –validate, PROSTRCT проверит содержимое указанного структурного файла, не создавая при этом самой базы данных. И так,
1. Сначала проверьте, что структурный файл описан правильно, для этого воспользуйтесь следующей командой:
prostrct create sports2000 sports2000.st -blocksize 4096 -validate
Если ошибок не будет обнаружено, утилита вернет сообщение аналогичное следующему:
The structure file format is valid. (12619)
Device: /usr1/dbs/, KBytes needed: 3488, KBytes available: 483876225
(12616)
There is sufficient free space to initialize the defined extents. (12618)
2. следующим шагом будем создание самой базы данных:
prostrct create sports2000 sports2000.st -blocksize 4096
Добавление схемы в пустую базу данных
При создании базы данных с помощью утилиты PROSTRCT CREATE и st – файла, результатом будет создание так называемой “пустой базы данных”. Пустая база данных не содержит метасхемы OpenEdge RDBMS. Она состоит только из файлов .db, .bi, .ai, .tl и файлов для хранения данных .dn , которые были описаны в st – файле. Вам необходимо добавить в “пустую базу данных” информацию о метасхеме. У OpenEdge RDBMS имеются так называемые empty базы, которые содержат метасхему под каждый размер блока базы данных.
Для того чтобы добавить метасхему, необходимо сделать следующее:
- запустите утилиту PROCOPY для копирования системных таблиц из empty базы в базу созданную утилитой PROCTRCT CREATE:
procopy OpenEdge-install-dir/emptyn db-name
Где emptyn – это исходная база данных, а db-name – целевая. n - указывает на размер блока базы данных, поддерживаемый empty – базой.
- Запустите утилиту PROSTRCT LIST , для проверки, что у вас была создана база данных с правильным расположением всех необходимых файлов:
prostrct list db-name
ВНИМАНИЕ! Если не определите специальный файл вывода, утилита перепишет созданный вами st – файл, находящийся в основной директории базы данных.
- Используйте Data Dictionary для загрузки пользовательских таблиц из df – файлов.
Примечание:
1. Empty база и вновь создаваемая база должны иметь одинаковы размер блока.
2. Не создавайте базы данных в установочной директории OpenEdge – базы, находящиеся в этой директории или в её поддиректориях, не могут быть запущены!
3. В структурном файле можно оставлять свои комментарии, используя пустые строки. Начало комментария должно начинаться либо с символа “#”, либо “:”, либо “*”.
4. Если вы не укажите номер области хранения, PROCTRCT CREATE сам проставит нумерацию. Тем не менее, если номер будет проставлен хотя бы для одной области, вам придется установить номера для всех областей, иначе утилитой будет выданы ошибка.
5. Признак RPB поддерживается только для областей с номерами от 7 до 32000. Для области Schema Area значение RPB зафиксировано как 32 для 1K, 2K и 4K размера блока базы данных. Для 8K блока это значение равно 64.
6. BPC (Block Per Cluster), если вы оставите значение этого признака пустым или установите в 1, то область данных будет Type I. Все остальные значения верны только для области с типом Type II.
Создание баз с помощью утилиты PRODB
Если целевая база данных не имеет своего st- файла, то утилита PRODB создаст базу по аналогии со структурным файлом исходной базы. PRODB создает новую базу данных на основании структурного файла исходной базы, размещая все экстенты в текущем рабочем каталоге. Вы можете использовать утилиту для создания любой демонстрационной, либо empty – базы данных.
Примечание: при использовании утилиты PRODB для создания копии базы данных, и при условии, что для новой базы структурный файл не определен, все экстенты будут размещены в каталоге, который был указан для новой базы.
Следующий пример иллюстрирует как создавать базы с помощью PRODB:
Для создания пустой базы данных с именем mysample из empty базы, введите следующую команду:
prodb mysample empty
Для создания базы данных mysports2000 из демонстрационной базы данных sports2000, необходимо выполнить:
prodb mysports2000 sports2000
Для создания копии базы данных с именем pastinfo из существующей базы currentinfo:
prodb pastinfo currentinfo
ВНИМАНИЕ! PRODB не копирует внешние триггеры связанные с копируемой базой данных.
При использовании PRODB для создания целевой базы данных, используются как относительные, так и абсолютные пути к файлам. Для примера, если при создании утилитой PRODB базы данных example1, используется относительный путь к копируемой базе данных sports2000, то новая база также будет создана с относительными путями. И наоборот, если для исходной базы будет использоваться абсолютный путь, то для целевой также будет определен абсолютный. Используйте PROSTRCT LIST для проверки – относительные или абсолютные пути были использованы.
prodb example1 sports2000
prostrct list example1
В следующих выходных данных PROSTRCT LIST показывается, что база была созданы с относительными путями.
Area Name: Control Area, Type 6, BlockSize 4096, Extents 1, Records/Block32, Cluster Size 1
Ext # 1, Type VARIABLE, Size 32 KByte, Name: ./example1.db
Area Name: Primary Recovery Area, Type 3, BlockSize 8192, Extents 1
Ext # 1, Type VARIABLE, Size 2176, Name: ./example1.b1
Area Name: Schema Area, Type 6, BlockSize 4096, Extents 1, Records/Block 32,
Cluster Size 1
Ext # 1, Type VARIABLE, Size 960 KByte, Name: ./example1.d1
Area Name: Info, Type 6, BlockSize 4096, Extents 1, Records/Block 32, Cluster
Size 1
Ext #1, Type VARIABLE, Size 192 KByte, Name: ./example1_7.d1
Area Name: Order, Type 6, BlockSize 1024, Extents 1, Records/Block 32, Cluster
Size 1
Ext # 1, Type FIXED , Size 1280, Name: ./example1_8.d1
Копирование баз данных
Для создания копий существующих баз данных предназначены утилиты PROCOPY и PRODB, которые копируют структуру базы данных вместе с ее содержимым.
Примечание: ни когда не используйте утилиты операционных систем для копирования баз данных OpenEdge!
Для копирования существующих баз лучше использовать утилиту PROCOPY. Пример:
procopy Sports2000 mysports2000
PROCOPY поддерживает области хранения. Следовательно, если целевая база данных существует, она должна поддерживать такой же тип, количество областей и такие же типы экстентов как и исходная база данных. Тем не менее, количество экстентов областей на целевой базе не всегда должны совпадать с количеством на исходной. PROCOPY попытается увеличить количество экстентов, в случае необходимости.
Если целевая база данных не существует, PROCOPY создаст ее, используя структурный файл, находящийся в каталоге целевой базы. Если же структурного файла нет, база будет создана на основании структурного файла исходной базы, но при этом все экстенты будут расположены в той же директории где и db-файл, это произойдет даже не смотря на то, что файлы исходной базы данных будут расположены в различных директориях.
При использовании утилиты PROCOPY, целевая база всегда создается с использованием абсолютных путей, независимо от соглашений о путях используемых в исходной. Например, если создается копия базы данных Sports2000 с использованием относительных путей, целевая база будет все равно создана с соглашением об абсолютных путях.
Запустите PROSTRCT LIST для проверки.
procopy sports2000 example1
prostrct list example1
В результате работы PROSTRCT LIST, будет выдана информация об экстентах с указанием абсолютных путей.
Area Name: Control Area, Type 6, BlockSize 4096, Extents 1, Records/Block32,
Cluster Size 1
Ext # 1, Type VARIABLE, Size 32 KByte, Name: /usr1/V10/example1.db
Area Name: Primary Recovery Area, Type 3, BlockSize 8192, Extents 1
Ext # 1, Type VARIABLE, Size 2176, Name: /usr1/V10/example1.b1
Area Name: Schema Area, Type 6, BlockSize 4096, Extents 1, Records/Block 32,
Cluster Size 1
Ext # 1, Type VARIABLE, Size 960 KByte, Name: /usr1/V10/example1.d1
Area Name: Info, Type 6, BlockSize 4096, Extents 1, Records/Block 32, Cluster
Size 1
Ext #1, Type VARIABLE, Size 192 KByte, Name: /usr1/V10/example1_7.d1
Area Name: Order, Type 6, BlockSize 1024, Extents 2, Records/Block 32, Cluster
Size 1
Ext # 1, Type FIXED , Size 1280, Name: /usr1/V10/example1_8.d1
Ext # 2, Type VARIABLE, Size 0, Name: /usr1/V10/example1_8.d2
Удаление баз данных
Для удаления баз данных используется утилита PRODEL.
Пример:
prodel mysports2000
Когда вы удаляете базу, PRODEL отобразит сообщение с указанием всех файлов начинающихся с имени db-name (имя удаляемой базы данных). В зависимости от вашей операционной системы, PRODEL выведет соответствующее сообщении для подтверждения удаления.
Примечание: PRODEL не удаляет структурный файл базы данных, чтобы информация о ее структуре была сохранена, но он удаляет файл лога базы данных, поэтому если лог базы для вас все еще представляет интерес – предварительно сохраните его отдельно от базы данных.
Ограничения баз данных OpenEdge
Эта глава содержит описания существующих ограничений, о которых вам необходимо знать при выборе конфигурации базы данных и поддержке разрабатываемых под нее приложений. Данные материал основан на версии Progress OpenEdge V10.1C и поэтому, возможно, что к моменту, когда вы будете читать его, версия вашего продукта будет более свежей. Обычно этой части изменения касаются редко, но для большей надежности, лучше будет всё таки убедиться в этом, обратившись к документации именно вашего продукта.
Размер блоков базы
OpenEdge RDBMS поддерживает следующие размер блоков базы данных:
1024 байта (1K)
2048 байт (2K)
4096 байт (4K)
8192 байта (8K)
По умолчанию, размер блока равен 4K для Windows и Linux, и 8K для Unix.
Максимальное количество записей в блоке
Вы можете определить максимальное количество записей в блоке для каждой области данных. Когда вы описываете область, вы можете определить 1, 2, 4, 8, 16, 32, 64, 128 или 256 записей на один блок базы.
Если количество записей на блок не будет явно указано при описании области данных, будет выставлено значение по умолчанию:
- 64, если размер блока базы 8K
- 32, для других размеров блока
Вы не можете изменить количество записей на блок у существующих областей данных, без перезагрузки данных. Количество записей на блок определяются только для областей данных.
Количество и размеры областей хранения
Базы данных OpenEdge поддерживают до 32 000 областей хранения. Из них до 31 994 – области хранения данных. Области хранения отличаются по их именам. В таблице 2-1 приведено описание типов областей.
Таблица 2-1 : Типы областей хранения
Зарезервированное имя области
|
Содержимое |
Расширения файлов
|
Control |
Physical Database Structure |
.db |
Primary Recovery |
Recovery Log Data |
.bn |
Transaction Log |
Two-phase Commit
Transaction Log |
.tn |
After Image |
After-image Log Data |
.an |
Schema |
Schema Data |
.dn |
- |
Application Data |
.dn |
Максимальный размер области хранения зафиксирован на одном петабайте, при условии, что разрешена работа с файлами большого размера. Максимальное разрешенное количество экстентов области – 1024, а максимальный размер каждого файла – 1 терабайт, на основании этого можно вычислить максимальный размер одной области.
Maximum area size = maximum-number-of-extents-per-area * maximum-extent-size
= 1024 * 1TB
= 210 * 240
= 250 bytes
= 1PB
Максимальное количество записей в области рассчитывается следующим образом:
Maximum records per area = Maximum area size * records-per-block / block size
Таблица 2-2 отображает максимальное количество записей на область, основанное на этом вычислении.
Таблица 2-2 : Максимальное количество записей на область
Размер блока базы данных
|
Записей на блок (RPB)
|
Записей на область
|
Примерное максимальное кол. записей за область в М*
|
8192 bytes
(8K)
|
1
2
4
8
16
32
64 (по умолчанию)
128
256
|
237
238
239
240
241
242
243
244
245
|
137,439 M
274,878 M
549,756 M
1,099,512 M
2,199,024 M
4,398,048 M
8,796,096 M
17,592,192 M
35,184,384 M
|
4096 bytes
(4K)
|
1
2
4
8
16
32 (по умолчанию)
64
128
256
|
238
239
240
241
242
243
244
245
246
|
274,878 M
549,756 M
1,099,512 M
2,199,024 M
4,398,048 M
8,796,096 M
17,592,192 M
35,184,384 M
70,368,768 M
|
2048 bytes
(2K)
|
1
2
4
8
16
32 (по умолчанию)
64
128
256
|
239
240
241
242
243
244
245
246
247
|
549,756 M
1,099,512 M
2,199,024 M
4,398,048 M
8,796,096 M
17,592,192 M
35,184,384 M
70,368,768 M
140,737,536 M
|
1024 bytes
(1K)
|
1
2
4
8
16
32 (по умолчанию)
64
128
256
|
240
241
242
243
244
245
246
247
248
|
1,099,512 M
2,199,024 M
4,398,048 M
8,796,096 M
17,592,192 M
35,184,384 M
70,368,768 M
140,737,536 M
281,475,072 M
|
*1. 1 M = 1 миллион или 1,000,000
Ограничения таблиц и индексов
Нельзя разделить таблицу или индекс по разным областям хранения. Каждая таблица или каждый индекс может быть определен только для одной области данных. Следовательно, размер таблицы или индекса ограничен размером области хранения, в котором они находятся. Существуют следующие ограничения:
- Максимально поддерживается 32 767 таблиц, не зависимо от размер блока базы.
- В таблицах существует ограничение на количество полей: для SQL это 500, для ABL – 1000.
- Максимальное количество поддерживаемых индексов – 32 767, также не зависимо от размера блока.
- Индексы могут содержать максимум 16 полей на один индекс
- Размер индекса имеет следующее ограничение:
В версиях 10.1B и выше, а также для баз данных с размером блока 4K и 8K, переменная длина всех полей входящих в индекс не должна превышать 2000 символов.
Поскольку 2000 символов включают также хранение специальной информации, то фактически индексный ключ будет ограничен примерно 1970 символами
Базы данных с размерами блока 1K и 2K ограничены 200 символами на индекс.
Базы данных, конвертированные на 10.1B. Придерживаются ограничения 200 символов на индекс, при условии, что другое не определено. Для увеличения необходимо запустить утилиту PROUTIL ENABLELARGEKEYS
Количества и размеры сиквенсов
Количество уникальных сиквенсов, поддерживаемых базой данных, зависит от размера блока базы. Таблица 2-3 показывает количество сиквенсов по отношению к размеру блока базы данных.
Таблица 2-3 Максимальное количество сиквенсов
Размер блока базы данных
|
Максимальное количество сиквенсов |
1024 байта (1K) |
250 |
2048 байт (2K) |
500 |
4096 байт (4K) |
1000 |
8192 байт (8K) |
2000 |
Базы данных, созданные в OpenEdge 10.1B и более поздними версиями, имеют 64-битные сиквенсы. Для баз данных, конвертированных с предыдущих версий, можно также активировать 64-битные сиквенсы, используя утилиту PROUTIL ENABLESEQ64.
Максимальный размер области Primary Recovery (BI)
Только операционная система или размер экстента могут наложить ограничения на размер области Primary Recovery (BI). Максимально возможный размер BI области – 32 TB. Таблица 2-4 показывает изменение размер BI области по отношению к размеру блока базы.
Таблица 2-5 Максимальный размер области BI
Размер блока
|
Максимальный размер BI
|
16 384 байта (16K) |
32 TB |
8192 байта (8K) |
16 TB |
4096 байта (4K) |
8 TB |
2048 байта (2K) |
4TB |
1024 байта (1K) |
2TB |
Максимальный размер базы данных
Максимальный размер баз данных OpenEdge 10.1B и последующих версий зависит от количества областей хранения и максимального размера областей.
Максимальное количество поддерживаемых областей – 32 000. Первые шесть областей зарезервированы, остается 31 994. Если они полностью задействованы, размер базы можно вычислить так:
max database size = # of areas * maximum area size
= 31,994 * 1 petabyte
= ~32,000 petabytes
В предшествующих версиях, максимальный размер базы был ограничен 2-х миллиардным ограничением на колонки, который был вызван максимальным количеством адресации с 32-битным ROWID. В новых версиях ROWID для областей хранения TYPE II это 64 – битовые значения. Количество колонок адресуемое 64-битным ROWID для одной таблицы теперь расширено; максимальное количество колонок теперь зависит от максимального размера области, в которой находится таблица. Такое увеличение поддерживается только для областей TYPE II.
Количество соединений с базой
Таблица 2-5 Максимальное количество соединений
Режим работы базы
|
Ограничение |
Однопользовательский режим (Single-user) |
1 |
Многопользовательский режим (Multi-user) |
Максимальное количество зависит от сервера и ОС, и может достигать 10000, при условии если нет ограничений семафоров, ограничений по количеству процессов, либо по производительности машины. |
Количество одновременных транзакций в базе
Таблица 2-6 Количество транзакций
Режим работы базы |
Ограничение
|
Однопользовательский режим (Single-user) |
1 |
Многопользовательский режим (Multi-user) |
Одна на пользователя (количество возможных пользователей 10 000) |
Ограничения имен баз данных
Таблица 2-7 Ограничения имени
Тип имени
|
Ограничение
|
Имя базы данных |
11 символов, за исключением пути к файлу. Нельзя использовать расширение файла. |
Пути к файлам |
До 255 символов, включая имя базы данных |
Имя базы данных может состоять из любых комбинаций символов Английского алфавита, от A – Z до a – z. Нельзя включать в имя зарезервированные слова ABL или SQL, или следующие специальные символы:
\ “ ‘ * ; | ? [ ] ( ) ! { } < > @ + = : ~
File Handles
OpenEdge RDBMS использует file handles (на UNIX, это определение эквивалентно количеству открытых файлов) при чтении, записи и связи между файлами. Большинство операционных систем ограничивают количество file handles, которые процесс пользователя может использовать.
Для определения количества file handles используйте следующую формулу:
H = Static Handles + (# of .dn files) + (# of .bn files) + (# of .an files)
Элементы вышеуказанного уравнения означают следующее:
- H – количество используемых OpenEdge RDBMS file handles
- Static Handles – количество handles, размещенных для любой базы OpenEdge. Номер статического file handles определят какой процесс выполняется – процесс клиента или процесс сервера:
Client - требует девять file handles (PROMSGS + LG + DB + LBI + SRT+ STDIN STDOUT + 2). File handles используют входные и выходные устройства (STDIN и STDOUT) имеющиеся в операционной системы.
Server – требует пять file handles (PROMSGS + LG + DB + 2)
- # of .dn files – количество DB файлов определенных в базе
- # of .bn files – количество определенных BI – файлов
- # of .an files – количество определенных AI файлов
Дополнительные file handles используются следующим образом:
- Если вы работаете под UNIX, который использует сокеты для межпроцессовой связи, добавьте по одному file handles для каждого пользователя.
- Программные приложения используют file handles при чтении и записи файла, а также при компиляции. Максимальное количество file handles поддерживаемое AVM (ABL Virtual Machine) – 256.
Коллективная память (Schared memory)
OpenEdge RDBMS использует разделяемую память (shared memory) чтобы хранить буферный пул базы данных, блокировки и управляющую информацию, включая таблицу блокировок, ai буферы и bi буферы. Этот параметр определен параметром запуска базы “-B”.Максимальное значение параметра для 32-битных систем – 125 000 000, и 1 000 000 000 для 64 – битных, но на практике не всегда можно установить это значение.
Максимальное количество коллективной памяти, которое может быть выделено, зависит от операционной системы, и не может превышать следующих значений:
- Приблизительно 4GB для 32 – битных систем
- 8 TB для 64 – битных
Максимальный размер сегмента коллективной памяти:
- ~ 4 GB – на 32 – битных
- ~ 32 GB – на 64 – битных системах
Максимальное количество сегментов памяти:
- 32 на 32 битных системах
- 256 на 64 битных.
Фактически, максимальные значения ограничены системными ресурсами.
Типы данных и их значения
В таблице 2-8 отображены типы данных и их значения для OpenEdge SQL.
Таблица 2-8 Типы данных SQL
Тип данных
|
Значения
|
BIGINT |
–9,223,372,036,854,775,808 - 9,223,372,036,854,775,80 |
BINARY |
2000 байт |
BIT |
0 \ 1 |
CHAR |
2000 символов |
DATE |
Года: 1 – 9999; Месяцы: 1 – 12; День: от 1 до последнего дня в месяце |
DECIMAL |
Определяется с точки зрения цифр до и после запятой. Количество цифр после запятой не может быть больше цифр до запятой. До запятой количество цифр ограничено 50, после запятой – 10. |
DOUBLE PRECISION |
2.2250738585072014E–308 до
1.7976931348623157E+308 |
FLOAT |
2.2250738585072014E–308 до
1.7976931348623157E+308 |
INTEGER |
–2,147,483,648 до 2,147,483,647 |
NUMERIC |
Определяется с точки зрения цифр до и после запятой. Количество цифр после запятой не может быть больше цифр до запятой. До запятой количество цифр ограничено 50, после запятой – 10. |
REAL |
1.175494351E–38F до 3.402823466E+38F |
SMALLINT |
–32,768 до 32,767 |
TIME |
00:00:00 - 23:59:59 |
TIMESTAMP |
Комбинация типов DATE и TIME |
TINYINT |
–128 - 127 |
VARBINARY |
31 995 байт |
VARCHAR |
31 995 |
В таблице 2-9 отображены типы данных и их значения для ABL
Таблица 2-9 Типы данных ABL
Тип данных
|
Значения
|
BLOB |
1GB |
CHARACTER |
Ограничен размером записи. (Если поле больше 32 килобайт, необходимо писать собственные процедуры dump/reload, т.к. встроенные процедуры не поддерживают работу с полями больше 32 килобайт) |
CLOB |
1GB |
DATE |
От 1/1/32768 до н.э. до 12/31/32767 н.э. |
DATE-TIME |
Тот же предел что и для DATE и TIME |
DATE-TIME-TZ |
Тот же предел что и для DATE-TIME. На временную зону (TZ) – от –14:00 до +14:00 |
DECIMAL |
50 знаков до запятой, и от 1 до 10 знаков после |
INTEGER |
–2,147,483,648 - 2,147,483,647 |
INT64 |
–9,223,372,036,854,775,808 - 9,223,372,036,854,775,807 |
LOGICAL |
TRUE/FALSE, YES/NO. |
Примечание: Столбцы, создаваемые с использованием OpenEdge SQL, и имеющие тип данных не поддерживаемый в среде ABL, не могут быть доступны приложениям ABL. Столбцы, созданные с использованием OpenEdge ABL – доступны как OpenEdge SQL, так и различными утилитами.
Таблица 2-10 показывает связь между типами данных поддерживаемых ABL и SQL.
Типы данных ABL
|
Типы данных SQL |
CHARACTER |
VARCHAR |
DATE |
DATE |
DECIMAL |
DECIMAL или NUMERIC |
INTEGER |
INTEGER |
INT64 |
BIGINT |
LOGICAL |
BIT |
RAW |
VARBINARY |
RECID |
INTEGER |
DATE-TIME |
TIMESTAMP |
Старт и останов баз данных OpenEdge
Open Edge Explorer Framework
Open Edge Framework – обеспечивает удобный интерфейс для управления продуктами Open Edge RDBMS, установленными в вашей сети. Он состоит из следующих элементов:
- Admin Server – Обеспечивает безопасный административный доступ к продуктам сервера OpenEdge
- Progress Explorer – графический интерфейс пользователя, обеспечивающий легкое управление серверами OpenEdge
- Конфигурационные утилиты командной строки – версия Progress Explorer для символьного режима
Admin Server
Admin Server устанавливается в любой системе, на которой установлен сервер OpenEdge. Он обеспечивает доступ к каждому компоненту установленного продукта OpenEdge. Может быть запущен с использованием Progress Explorer или из командной строки, с помощью утилит.
В Windows системах Admin Server запускается автоматически в виде сервиса. В Unix-подобных системах, он запускается и останавливается из командной строки с помощью утилит (PROADSV). Для более подробной информации по Admin Server обратитесь к документации OpenEdge Getting Started: Installation and Configuration.
Progress Explorer
Progress Explorer это графическая утилита администрирования работающая на Windows платформах. Для его использования, необходимо с начала запустить Progress Explorer и подключиться к запущенному Admin Server. Он отобразит все продукты, к которым Admin Server предоставляет административный доступ.
Вы можете выбрать любой отображаемый продукт, для его управления или изменения конфигурации.
Например, можно сделать следующее:
- Подключиться к Admin Server
- Запустить, остановить или запросить статус базы данных OpenEdge и объединить сервера в группы.
Для получения большей информации по работе Progress Explorer можно воспользоваться помощью, щелкнув иконку Help, находящейся в приложении.
Для запуска Progress Explorer выберите Programs> OpenEdge> Progress Explorer Tool, в меню Windows Start.
Управление конфигурацией баз данных
Конфигурация базы данных, создаваемой с помощью Progress Explorer, сохраняется в файл conmgr.properties. Это описание базы данных, конфигураций и свойств группы серверов. При старте базы, определенный процесс интерпретирует информацию, находящуюся в файле свойств и запускает или останавливает соответствующий сервер базы данных.
Файл conmgr.properties находится в каталоге “properties”, инсталляционного каталога Open Edge.
Предупреждение: Ни когда не редактируйте файл conmgr.properties в ручную. Для этого лучше использовать Progress Explorer.
Утилиты командной строки
Конфигурационные утилиты командной строки позволяют вам стартовать, останавливать и настраивать установленные компоненты OpenEdge RDBMS. Эти утилиты содержат часть возможностей Progress Explorer Framework:
- DBMAN – Запуск, останов и запрос текущей конфигурации базы данных OpenEdge
- PROADSV – Запуск и останов Admin Server`а под Unix. Более подробную информацию по которому смотри OpenEdge Getting Started: Installation and Configuration.
Использование утилиты DBMAN
После того, как с помощью Progress Explorer будет создан файл конфигурации базы данных, можно использовать утилиту DBMAN для старта, останова или для запроса к базе данных. Синтаксис следующий:
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
Указывает на host машины, на которой запущен Admin Server. По умолчанию равен localhost. Используется в случае, когда Admin Server запущен на удаленной машине.
-port port-number|service-name
Указывается порт, который «слушает» Admin Server. Используется в случае, когда Admin Server запущен на удаленной машине. По умолчанию устанавливается порт с номером 20931.
-user user-name
Если Admin Server, запущен на удаленной машине, вы можете использовать этот параметр для указания пользователя, под которым будет производиться подключение. При использовании, возможен запрос пароля.
Запуск сервера или брокера
Сервер базы данных координирует все запросы к базе, поступающие от пользователей. Основной сервер базы данных называется брокер (broker). Брокер управляет общими ресурсами и при необходимости, может запускать дополнительные сервера.
Для запуска процесса сервера можно использовать как Progress Explorer так и команду запуска PROSERVE:
proserve -db db-name | -servergroup server-group-name [ parameters ]
Где,
-db db-name
Определяет базу данных, которую необходимо запустить
-servergroup server-group-name
Определяет логически сгруппированные сервера для запуска. Server-group-name должен соответствовать тому, что определено в файле конфигурации conmgr.properties. Эти группы создаются с помощью Progress Explorer Database Configuration Tools, и сохраняются в conmgr.properties.
parameters
набор параметров запуска брокера или сервера.
За более подробной информацией по команде PROSERVE обращайся к главе “Параметры запуска базы данных”.
Международные наборы символов
Международные базы данных содержат один набор символов (таблица кодировки), определенный для всех данных. Информация об этом наборе хранится в базе данных.
Кроме того, сервер базы данных имеет свой операционный набор символов. Операционный набор символов используется для каждого символьного действия, например, в операциях сравнения. Внутреннюю кодовую страницу (Internal Code Page), можно установить с помощью параметра запуска “-cpinternal”, в качестве операционного набора символов. Если параметр “-cpinternal” не установлен, то по умолчанию выставляется в качестве операционного набора таблица символов iso8859-1.
Операционный набор символов
Используйте Progress Explorer для определения набора символов в конфигурационном файле.
Для установки операционного набора символов из командной строки, используйте утилиту PROSERVE. Например,
proserve db-name -cpinternal character-set-name
Набор символов для лога базы данных
Для определения выходного набора символов, записываемого в лог базы данных, в Progress Explorer необходимо посмотреть LogCharacterSet в свойствах конфигурации базы данных.
В противном случае, можно использовать параметр старта базы Log Character Set (-cplog) для утилиты PROSERVE. Например,
proserve db-name -cplog character-set-name
За более подробной информацией о наборах символов и их конвертацией, смотрите главу “Утилита PROUTIL”.
Сетевая адресация с помощью –H и –S
В любой сетевой среде для установки имени брокера или сервера базы OpenEdge, можно использовать параметр старта базы Service Name (-S). Так же с помощью этого параметра удаленному клиенту можно указать адрес базы данных как для ее запуска, так и для установки соединения с ней. В зависимости от типа вашей сети, также можно указать дополнительный критерии для удаленного клиента. С точки зрения OpenEdge, основная адресация происходит по протоколу TCP (Transmission Control Protocol).
TCP требует от дистанционного клиента явного указания адреса компьютера, на котором работает сервер базы данных. В сети TCP вы должны использовать параметр запуска –H(Host Name) для указания адреса. Имя хоста должно быть указанно в файле хостов протокола TCP/IP.
Используйте Host Name (-H) для установки имени хоста. Например,
-H host-name
Устанавливается host name для удаленного сервера базы данных
-H localhost
localhost – это зарезервированное слово, которое указывает на то, что клиент может связываться с серверами базы данных, находящихся только на клиентском компьютере.
Запуск многочисленных брокеров, использующих одинаковый протокол
Вы можете запускать множество брокеров используя один протокол. Параметр запуска –Mm и новый параметр, Maximum Servers per Broker (-Mpb), определяют количество серверов, которые брокер может запустит. Кроме того, с помощью Progress Explorer можно объединять эти сервера в группы и управлять ими.
Следующие команды запускают два брокера, использующих протокол TCP, и имеющие возможность запускать множество серверов:
proserve db-name -S service-name -H host-name -Mn n -Mpb n
proserve db-name -S service-name -H host-name -Mpb n -m3
Где,
db-name
имя базы данных, которую необходимо запустить. Если база данных находится не в текущей директории, необходимо указать полный путь к ней.
-S service-name
Имя сервиса базы данных для сервера или брокера. Должно быть определено в протоколе TCP. Для unix-систем это файл services в каталоге /etc/.
-H host-name
Имя машины на которой сервер будет запущен.
-Mn n
Определяется максимальное количество серверов для удаленных клиентов, которые процесс брокера может запустить.
-Mpb n
Определяет количество серверов, которые логин-брокер может обслуживать. Относится к брокеру запуска.
-m3
Запуск второго логин-брокера.
Например, следующие команды запускают два логин-брокера, которые могут стартовать по 4 сервера каждый:
proserve db -S demosv1 -H myhost -Mn 9 -Mpb 4
proserve db -S demosv2 -H myhost -Mpb 4 -m3
Это пример демонстрирует, что величина параметра –Mn должна быть достаточно большой, чтобы обеспечить каждому дополнительному брокеру необходимое количество серверов, определенное параметром -Mpb. Если же, у брокеров не определен параметр –Mpb, то по умолчанию он принимает значение равное параметру -Mn.
Также, вы должны включать параметр –m3 в каждый дополнительный брокер. Если параметр –Mpb смог установить количество обрабатываемых серверов, то параметр –m3 запускает дополнительный брокер.
Если вы запускаете множество брокеров, то так же необходимо запустить процесс WATCHDOG (PROWDOG). PROWDOG позволяет перезапускать дополнительных «мертвых» брокеров не прибегая к останову базы данных.
За более подробной информацией о процессе PROWDOG, обращайтесь в раздел “Команда PROWDOG”.
Доступ к серверу через firewall
OpenEdge RDBMS позволяют использовать параметры запуска Minimum Dynamic Server Port (-minport) и Maximum Dynamic Server Port (-maxport), которые поддерживают возможности доступа клиента к серверу базы данных через firewall. Данный способ работает только когда доступ к серверу ограничен. Установка этого ограничения происходит при определении интервала портов доступа с помощью указанных параметров.
Например, запустим два следующих брокера:
proserve db -S demosv1 -H myhost -minport 4000 -maxport 4040
proserve db -S demosv2 -H myhost -minport 4041 -maxport 4080 -m3
Клиенту, устанавливающему соединение с помощью первого брокера (demosv1), будет предоставлен интервал портов от 4000 до 4040. Т.е. ему буду доступны 41 порт.
По умолчанию, значение –minport установлено в 1025 для любых ОС (Операционных Систем). Порты с номерами меньшими 1025 зарезервированы для протоколов TCP и UDP. Для –maxport, по умолчанию установлено значение 2000. Помните, что многие операционные системы, для использования клиентами, выделяют интервалы портов от 32768 до 65535. Поэтому использование портов из этого диапазона может привести к не желательным результатам.
Запуск брокера базы данных с использованием SSL
OpenEdge поддерживает SSL(Secure Sockets Layer) соединения с сервером базы данных. SSL соединение обеспечивает аутентификацию и секретность данных, передаваемых между сервером базы данных и клиентом, согласно стандарта PKI (Public Key Infrastructure).
Для старта сервера базы данных с использованием SSL, необходимо иметь в наличии Private Key, который переписывается в цифровой сертификат сервера, и который используется для подтверждения своей идентификации SSL – клиенту.
Правильный цифровой сертификат, подтверждается сервером и содержит Public Key, соответствующий Private Key сервера.
Примечание: SSL сильно отражается на производительности системы в целом, и зависит от типа клиента, сервера, сетевых ресурсов и действующей нагрузке на сервер.
Используя следующие команды, можно запустить брокера, который создает SSL сервер и обеспечивает соединения SSL-клиентов:
proserve db-name -S service-name [-H host-name] -ssl
[-keyalias key-alias-name]
[-keyaliaspasswd password]
[-nosessioncache][-sessiontimeout n]
Где,
db-name
имя базы данных, которую необходимо запустить. Если база данных находится не в текущей директории, необходимо указать полный путь к ней.
-S service-name
Имя сервиса базы данных для сервера или брокера. Должно быть определено в протоколе TCP. Для unix-систем это файл services в каталоге /etc/.
-H host-name
Имя машины на которой сервер будет запущен.
-ssl
Определяется, что вся база данных, включая соединения SQL клиентов, использует SSL.
-keyalias key-alias-name
Определяет имя SSL псевдонима для private key и цифрового сертификата, в хранилище ключей. По умолчанию принимается default_server.
-keyaliaspasswd password
Определяет пароль для SSL псевдонима, для получения доступа к private key и цифровому сертификату сервера в хранилище ключей. По умолчанию значение пароля кодируется. Если вы используете значение пароля, отличное от установленного по умолчанию, вам необходимо его закодировать. Для этого можно использовать утилиту genpassword, расположенную в каталоге “bin” установочного каталога Progress.
-nosessioncache
Отключает кэширование SSL сессии. Кэширование сессии позволяет клиенту многократно устанавливать соединения пока время кэширования не истечет. По умолчанию, кэширование включено.
-sessiontimeout n
Определяет, в секундах, период времени при котором SSL сеанс будет кэширован. По умолчанию равен 180 секундам.
Запуск и останов фоновых процессов
Фоновые процессы значительно могут улучшить производительность системы. Эти процессы доступны только для Enterprise версии. Запуск таких процессов осуществляется в ручную.
Существует три типа фоновых процессов: APW (asynchronous page writers), BIW (before-image writers) и after-image writers (AIWs).
Запуск и останов APW
Для одной базы данных может быть запущено от одного до девяти APW. Количество APW сильно зависит от работающего приложения и среды ОС. Можно начать с запуска двух процессов и понаблюдать за производительностью с помощью PROMON. Приложениям, выполняющим малое количество изменений, требуется и меньше APW. Для большей информации по APW, а также по использованию PROMON для их мониторинга, см. главу “ Использование APW для улучшения производительности”
Примечание: если не выполняется изменений, то APW не нужны.
Для запуска APW используйте Progress Explorer или введите команду :
proapw db-name
Каждый APW процесс подключается к базе данных, а следовательно использует ресурсы выделенные под обычных пользователей. Поэтому, необходимо учитывать их при определении количества пользователей для параметра “–n” (Number of Users). Но тем не менее, APW на считаются при лицензировании.
Остановить процесс APW возможно с помощью команды PROSHUT.
За более подробной информацией по командам PROAPW и PROSHUT можно обратиться к главе “Параметры запуска баз данных”
Запуск и останов BIW
Для одной базы запускается только один процесс BIW. Запуск и останов процесса можно так же делать в любое время не прибегая к останову базы данных.
Запустить процесс можно либо из Progress Explorer, либо из командной строки:
probiw db-name
Как и APW, BIW подключается к базе данных, и необходимо учитывать его при расчета параметра старта базы данных – “-n”. Также он не учитывается при лицензировании.
Остановить процесс BIW возможно с помощью команды PROSHUT.
Запуск и останов AIW
Для одной базы запускается только один процесс AIW. Запуск и останов процесса можно так же делать в любое время не прибегая к останову базы данных.
Запустить процесс можно либо из Progress Explorer, либо из командной строки:
proaiw db-name
Для запуска AIW необходимо активировать ai (After-imaging). Для получения большей информации обратитесь к главе “After-imaging.”
AIW подключается к базе данных, и необходимо учитывать его при расчета параметра старта базы данных – “-n”. Также он не учитывается при лицензировании.
Остановить процесс AIW возможно с помощью команды PROSHUT.
Останов сервера или брокера
Перед выключением компьютера или перед формированием резервной копии необходимо остановить базу данных. Прежде чем остановить сервер базы данных все пользователи, работающие с приложениями должны выйти из своих сессий. Если необходимо, можно отключить всех пользователей из команды PROSHUT
Остановить базу данных можно с помощью Progress Explorer, или с помощью утилит DBMAN или PROMON, или с помощью команды PROSHUT.
Чтобы остановить базу данных вы должны быть либо пользователем, запустившим её, либо иметь привилегии администратора (root).
Примечание: Не используйте команды операционной система для останова баз данных.
Команда PROSHUT
Для останова базы с помощью команды PROSHUT используйте следующее:
proshut db-name [ -b | -by | -bn | -H host-name | -S service-name
-F | -Gw
db-name
Останавливаемая база данных
-b
Указывает что останов будет выполнен в потоковом (batch) режиме. Когда ни одного пользователя не подключено, останов произойдет автоматически. Если же подключены один или больше пользователей, PROSHUT запросит ввод “yes” для безусловного останова и отключения пользователей; или “no”, чтобы произвести останов только если нет подключенных пользователей. Этот параметр может комбинироваться, например, -by или –bn.
-by
Указывает на безусловное отключение пользователей и останов базы данных
-bn
Указывает на останов базы данных только если нет активных пользователей
-H host-name
Указывает на адрес (host) компьютера, на котором запущена база данных.
-S service-name
Указывает на сервис базы данных или брокерского процесса. TCP сеть требует наличия параметра “–S”
-F
Аварийный останов базы данных, используется только в Unix системах. Для использования этого параметра необходимо запустить команду PROSHUT на том же компьютере на котором запущена база данных.
Внимание: использование параметра “-by” совместно с “-F” может вызвать непредвиденные последствия для базы данных.
-Gw
Используется для DataServers и определяет брокера DataServer для останова.
Если введена команда PROSHUT с параметрами “-by, -bn” или “-F”, появится следующее меню:
1 Disconnect a User
2 Unconditional Shutdown
3 Emergency Shutdown (Kill All)
x Exit
Таблица 3-1 отображает назначение меню команды
Таблица 3-1 Меню PROSHUT
Меню |
Назначение
|
1 |
Запрашивает номер пользователя для отключения от базы |
2 |
Отключает всех пользователей и останавливает базу данных. Если существует множество серверов базы данных- PROSHUT останавливает и их. Для останова специфического процесса сервера – используйте подходящие команды операционной системы. |
3 |
Запрашивает подтверждение выбора. Если выбор отменен, останов базы отменяется, если же – подтвержден, PROSHUT ожидает пять секунд перед началом каких либо действий и отображает сообщение:
Emergency shutdown initiated...
PROSHUT помечает базу данных как остановленную аварийно и посылает сигналы всем ее процессам о необходимости отключения от неё. По истечении 10 секунд PROSHUT «убивает» все оставшиеся процессы и удаляет сегменты коллективной памяти и семафоры. База данных будет находится в состоянии со статусом поврежеднной. После перезапуска базы данных будет выполнено нормальное восстановление базы и ее транзакций.
Эта опция доступна только на той же машине, где запущена база данных.
|
Х |
Отмена останова без выполнения каких-либо действий |
Если необходимо остановить базу данных не прибегая к меню PROSHUT, используйте один из параметров, перечисленных в таблице 3-2.
Таблица 3-2 Параметры PROSHUT
Параметр |
Назначение
|
Kill Users (-by) |
Безусловный останов; “убить” всех пользователей |
Proceed If No Users (-bn) |
Останов если нет активных пользователей |
Когда останов базы происходит с компьютера, отличного от того на котором запущена база данных, в сети TCP/IP, используйте параметры “-S” (service name) и “-H” (host name). Host name это имя компьютера, на котором запущена база данных. Service name, это имя сервера базы данных или процесса брокера, в Unix системах определяется в файле /etc/services. Для примера, следующая команда останавливает базу данных sports, находящуюся на удаленной машине под Unix:
proshut sports -H host-name -S sports-broker -by
Утилита PROMON
PROMON можно использовать как для останова баз данных, так и для отключения пользователей.
Для этого:
1. Введите следующую команду
promon db-name
Когда она будет выполнена, появится основное меню монитора базы данных:
OpenEdge MONITOR Release 10
Database: /usr/WRK_DBS/101B/docsample
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:
2. выберите меню 8 Shut Down Database. На экране появится следующее:
Enter your selection: 8
Usr PID Time of login Userid tty Limbo?
1 6358 Dec 14 15:10:52 sue /dev/ttyp0 no
4 7007 Dec 14 15:25:09 mary /dev/ttyp5 no
1 Disconnect a User
2 Unconditional Shutdown
3 Emergency Shutdown (Kill All)
4 Exit
Enter choice>
3. Выберите необходимое действие.
|
|
|
|