38. Работа с утилитой InterBase Server Manager

 

38.1. Соединения *

38.1.1. Соединение с сервером *

38.1.2. Соединение с БД *

38.1.3. Выбор текущего сервера и БД *

38.1.4. Разрыв соединения *

38.2. Изменение конфигурации сервера *

38.3. Сбор статистики о БД *

38.3.1. Статистические данные непосредственно о БД *

38.3.2. Анализ БД *

38.4. Принудительная сборка мусора *

38.5. Создание резервной копии (сохранение) и восстановление БД *

38.5.1. Переход в однопользовательский режим соединения с БД *

38.5.2. Резервное копирование БД *

38.5.3. Восстановление БД из резервной копии *

38.6. Принудительная запись на диск *

38.7. Восстановление транзакций *

38.8. Регистрация новых пользователей *

38. Работа с утилитой InterBase Server Manager

Утилита InterBase Server Manager служит для .

38.1. Соединения

38.1.1. Соединение с сервером

Для соединения с сервером выберите элемент меню File \ Server Login, затем укажите имя сервера, протокол и введите имя пользователя и пароль (рис 38 1)

38.1.2. Соединение с БД

Для соединения с БД следует выбрать элемент меню File | Database Connect и указать имя БД (рис. 38.2).

 

38.1.3. Выбор текущего сервера и БД

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

38.1.4. Разрыв соединения

Для разрыва соединения с БД выберите элемент меню File \ Database Disconnect

Для разрыва соединения с сервером выберите элемент меню File [ Server Logout При этом будут разорваны все соединения с БД этого сервера

38.2. Изменение конфигурации сервера

Описываемые ниже изменения может производить только пользователь SYSDBA (системный администратор). Выберите элемент меню Tasks \ Server Config. В окне IB Settings можно изменить значения следующих параметров-

Database Cache - для каждой БД, с которой установлено соединение, задает размер буфера (кэша) в страницах. В этом кэше размещаются страницы БД. Увеличение размера кэша может существенно ускорить работу с БД, поскольку реально операции чтения/записи будут относиться не к физической БД на диске, а к кэшу в оперативной памяти. Перенос страниц из памяти в физическую БД проводится в фоновом режиме. Однако слишком большой размер кэша при наличии одновременно выполняющихся запросов ко многим БД может привести к нехватке памяти и замедлению работы. Чтобы определить реально необходимый размер кэша, следует умножить число страниц БД на объем страницы в килобайтах (эти параметры задаются при создании БД).

Client map size определяет размер буфера для каждого соединения с клиентом. По умолчанию равен 4 Кбайт, может изменяться в диапазоне 1...8 Кбайт. Потребность в изменении данного параметра может возникнуть при работе с BLOB-полями.

На странице OS Settings можно (только системному администратору, пользователь SYSDBA) устанавливать значения следующих параметров:

Process Working Set - определяет дополнительную память, резервируемую InterBase для своих нужд, совместно с буфером, размер которого задается параметром Database Cache; Minimum и Maximum определяют диапазон дополнительной памяти в страницах.

Process Priority Class определяет приоритет задач сервера по отношению к другим задачам, выполняющимся на данном компьютере. Установка в этом параметре значения High обоснована в следующих случаях:

при работе InterBase на выделенном для этого компьютере в условиях отсутствия других приложений;

при наличии большого числа пользователей, активно читающих и записывающих информацию в БД.

38.3. Сбор статистики о БД

38.3.1. Статистические данные непосредственно о БД

Для запуска процесса сбора статистики выберите элемент меню Tasks | Database Statistics. В появившемся текстовом окне (рис. 38.4) будет выдан статистический отчет.

Секция Database header page information содержит сведения из заголовочной страницы БД.

Flags - указывает флаг БД. Некоторые значения:

1 - БД является "зеркальной" копией основной БД;

2 - разрешен режим принудительной записи (forced writes), когда запись данньк производится в физической БД; при отмене этого режима запись производится в буфер, а потом в фоновом режиме (обычно при переполнении буфера) переносится на диск; при сбое системы данные из буфера могут быть потеряны, что чревато непредсказуемыми последствиями.

Checksum - Контрольная сумма заголовка БД. Уникальное значение, которое вычисляется по всем данным в заголовке БД. Используется для анализа правильности данных в заголовке БД.

Generation - счетчик, который увеличивается на 1 при каждом обновлении данных в заголовке БД.

Page size - размер страницы БД в байтах.

ODS version - версия структуры БД на диске.

Oldest transaction - номер старейшей незавершенной транзакции (см. также Next transaction). Незавершенной считается транзакция, если она активна, отменена (rolled back) или зависла (in limbo, то есть во время ее действия и до применения к ней подтверждения или отката произошел сбой, и после него невозможно сказать, завершена транзакция или нет; такое возможно для транзакций, охватывающих БД, которые расположены на различных серверах).

Oldest active - старейшая активная транзакция.

Next transaction - номер, который будет присвоен следующей транзакции. При выполнении условия Next transaction - Oldest transaction > Sweep interval производится автоматическая чистка мусора в БД. Sweep interval (no умолчанию 20 000) - число транзакций, через которое происходит автоматическая чистка мусора.

Sequence number - номер первой страницы БД.

Next attachment ID - номер следующего соединения с БД.

Number of cache buffers - размер буфера в страницах БД.

Next header page - номер следующей страницы заголовка БД.

Creation date - дата создания БД.

Attributes - атрибуты БД.

Секция Database file sequence описывает характеристики последовательности файлов, из которых состоит БД.

Секция Database log page information содержит информацию о страницах журнала БД (только для серверов NetWare).

38.3.2. Анализ БД

Выберите View | Database Analysis в окне Database Statistics. Вы получите информацию обо всех таблицах и индексах БД.

Информация о таблице БД

• Primary pointer page - номер начальной страницы таблицы БД.

• Index root page - номер начальной страницы для хранения индексов таблицы БД.

• Data pages - общее число страниц для хранения данных.

• Average fill - процент заполнения страниц для хранения данных.

Fill distribution - диаграмма заполнения страниц для хранения данных. Пример. Информация о таблице SPISKI: SPISKI (38)

Primary pointer page: 272, Index root page: 273 Data pages: 6, data page slots: 6, average fill: 65% Fill distribution:

0 - 19% = 0

20 - 39% = 0

40 - 59% = 1

60 - 79% = 5

80 - 99% = 0

Информация об индексе

Index - Имя индекса.

Depth - Число уровней в дереве индексных страниц (оптимальный показатель - не больше 3. При глубине индекса (depth) больше 3 сортировка с его использованием становится неэффективной. Leaf buckets - Число страниц нижнего уровня в дереве индексных страниц.

Nodes - Общее число страниц в дереве.

Average data length - Средняя длина каждого ключа в байтах.

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

Мах dup - Число строк индекса с максимальным числом дублированных значений индексных полей.

Fill distribution - Гистограмма, показывающая число индексных страниц, соответствующих определенному проценту заполнения. Пример:

Index RDB$FOREIGN11 (1)

Depth: 1, leaf buckets: 1, nodes: 39

Average data length: 5.00, total dup: 16, max dup: 6

Fill distribution:

0 - 19% = 0

20 - 39% = 0

40 - 59% = 1

60 - 79% = 0

80 - 99% = 0

38.4. Принудительная сборка мусора

Для принудительной сборки мусора выберите элемент меню Maintenance \ Sweep. Необходимость сборки мусора обусловливается следующим. При чтении транзакцией записи, все старые версии этой записи, не использующиеся активными транзакциями, удаляются. Это касается только записей, созданных подтвержденными транзакциями. Версии, созданные транзакциями, впоследствии откатившимися (rolled back), а также старые версии записей, закрепленные за активными транзакциями, остаются в БД. Это сильно увеличивает объем БД и понижает быстродействие работы с ней. Поэтому в целях оптимизации используют сборку мусора (garbage collection).

Пример.

Извлечения из статистики БД до и после сборки мусора:

До сборки мусора:

Oldest transaction 2549

Oldest active 13438

Next transaction 13441

После сборки мусора:

Oldest transaction 13441

Oldest active 13441

Next transaction 13442

Изменение значения sweep interwal, использующегося для включения автоматической сборки мусора, может быть произведено в элементе меню Maintenance | Database Properties (рис. 38.5). Однако следует помнить о том обстоятельстве, что автоматическая сборка мусора может быть неэффективной, если в момент ее осуществления имеется много активных транзакций вследствие интенсивной работа клиентов с БД: в этом случае, во-первых, много версий записей, занятых активными транзакциями, не войдет в число "собранных" записей; во-вторых, сборка мусора существенно замедлит выполнение активных транзакций. Поэтому рекомендуется собирать мусор либо вручную при минимальном числе пользователей, либо при восстановлении БД (когда подключений к БД быть вообще не должно). Просмотреть активных пользователей можно, выбрав элемент меню Maintenance \ Database Connections (рис. 38.6).

Active Database Connections

Database с:\proiect\monitor\db\MON.gdb

User Name

SYSDBA

38.5. Создание резервной копии (сохранение) и восстановление БД

Сохранение БД может иметь своей целью

38.5.1. Переход в однопользовательский режим соединения с БД

Создание резервной копии может производиться без отключения других пользователей Однако следует помнить, что в этом случае в резервной копии будут сохранены все данные, измененные на момент создания резервной копии Поэтому резервное копирование обычно осуществляют в момент отсутствия соединений с БД со стороны пользователей Это бывает обычно в вечерние, ночные или утренние часы. Существующие соединения пользователей могут быть принудительно разорваны Для этого нужно выбрать элемент меню Maintenance \ Database Shutdown и в диалоговом окне (рис. 38 7) установить параметры принудительного разъединения.

Deny new connections while waiting - все существующие соединения пользователей с БД должны завершить свои операции Если по истечении указанного ниже периода времени остались активные соединения с пользователями, БД не переводится в однопользовательский режим, необходимый для создания резервной копии.

Deny new transactions while waiting - существующие транзакции должны завершиться (Server Manager ожидает их завершения). Старт новых транзакций блокируется Если по истечении указанного ниже периода времени остались активные транзакции, БД не переводится в однопользовательский режим.

Force shutdown after the time-out period - активные транзакции могут выполняться в течение указанного ниже периода Если в конце данного периода остаются активные транзакции, они принудительно откатываются и затем все соединения с пользователями принудительно разрываются

38.5.2. Резервное копирование БД

Для создания резервной копии БД следует выбрать элемент меню Tasks | Backup и в диалоговом окне (рис 38 8) указать путь к БД, которая должна служить источником для создания резервной копии, а также путь и имя файла резервной копии В окне Options указываются необязательные параметры резервного копирования БД

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

Back Up Metadata Only - сохранять только метаданные, игнорируя страницы данных. Полезно в том случае, когда нужно создать заготовку пустой БД (например, при дистрибутировании разработанной программной системы).

Disable Garbage Collection - не производить сборку мусора при сохранении БД.

Ignore Transaction in Limbo - игнорировать при сохранении БД транзакции in limbo (транзакции, о которых нельзя сказать, завершились они или откатились; возникают при двухфазной фиксации транзакций для БД, расположенной на разных серверах, если операция подтверждена на одном сервере, а на другом в момент подтверждения транзакции произошел аппаратный сбой). Для восстановления транзакций in limbo перед созданием резервной копии следует выбрать элемент меню Maintenance \ Transaction Recovery.

Ignore Checksums - игнорировать неверные контрольные суммы заголовочных страниц БД, где хранится информация о БД, необходимая для соединения с нею; отключение данного режима (по умолчанию) предотвращает сохранение БД с разрушенной структурой.

Verbose Output - получение расширенного отчета (в отдельном окне) о ходе создания резервной копии БД.

38.5.3. Восстановление БД из резервной копии

Для того чтобы восстановить БД из ранее сделанной резервной копии, необходимо выбрать в меню режим меню Tasks | Restore и затем в диалоговом окне указать путь и название резервной копии и БД, которая будет восстановлена (рис 38 9) В правой части диалогового окна параметр Page Size устанавливает размер страницы восстанавливаемой БД Там же могут быть установлены следующие параметры-

Replace Existing Database - заменят существующую БД с тем же именем, если она расположена в том каталоге, куда должна помещаться восстанавливаемая БД

Commit After Each Table - подтверждать восстановление после каждой таблицы Это актуально в тех случаях, когда в резервной копии имеются разрушенные данные и следует восстанавливать не все из них.

Restore Without Shadow - при восстановлении БД не создавать теневой (зеркальной) копии БД, если для этой БД назначено автоматическое ведение теневой копии. Это может быть необходимо в случаях восстановления БД на сервере, который не поддерживает теневого копирования, восстанавливаемая БД сама является теневой копией БД

При этом в восстановленной БД будут уничтожены определения теневой БД, если восстановление БД, для которой ранее осуществлялось теневое копирование, осуществляется с включенным режимом Restore Without Shadow

Deactivate Indexes - отключить восстановление индексов InterBase строит индексы после того, как БД восстановлена. Если в БД, служившей источником для создания резервной копии, существуют дублированные значения столбцов, по которым построены уникальные или первичные индексы, попытка перестройки индексов для восстановленной БД вызовет ошибку В этом случае следует отключить восстановление индексов и затем, используя утилиту WISQL, устранить дублирование значений. После этого можно активизировать индексы (SQL-оператор ALTER INDEX)

Do Not Restore Validity Conditions - не восстанавливать определения ограничений ссылочной целостности. Это важно в том случае, когда резервная копия БД содержит устаревшие ограничения ссылочной целостности, которые должны быть заменены новыми

Verbose Output - получение расширенного отчета (в отдельном окне) о ходе восстановления БД из резервной копии

В том случае, когда восстанавливаемая БД должна располагаться в нескольких физических файлах, следует нажать кнопку Multi-File и в окне диалога (рис 38.10) в поле File Path указать имя каждого файла БД и его размер в страницах в поле Sire Затем следует нажать кнопку Save Тогда имя файла и его размер появятся в списке File List Изменить характеристики фай па из списка можно после нажатия кнопки Modify Для удаления файла из списка используйте кнопку Delete

38.6. Принудительная запись на диск

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

Режим накапливания изменений в буфере экономит время и улучшает быстродействие при работе с БД, поскольку достаточно медленное обращение к диску происходит реже Однако в случае сбоя данные из буфера теряются, не будучи записаны на диск, что способно серьезно нарушить целостность БД

Поэтому рекомендуется второй метод, метод немедленной (принудительной) записи на диск (forced writes) Этот режим установлен для сервера БД по умолчанию Отключить или повторно включить его можно в диалоговом окне установки свойств БД. Это окно вызывается при выборе элемента меню Maintenance \ Database Properties (отметка Enable Forced Writes)

38.7. Восстановление транзакций

В случае, если транзакция затрагивает БД, расположенные на разных серверах, подтверждение такой транзакции осуществляется в две фазы Все действия при этом выполняются автоматически и не требуют программирования При возникновении ошибки в ходе выполнения двухфазной фиксации транзакция считается потерянной и относительно нее сервер БД не может решить, закончилась она или откатилась

Для восстановления таких транзакций следует выбрать опцию меню Maintenance Transaction Recovery В диалоговом окне будут показаны в виде списка транзакции in limbo Они могут быть подтверждены или отменены Для каждой транзакции могут быть показаны все связанные с ней транзакции (путем выбора знака '+' слева от транзакции)

38.8. Регистрация новых пользователей

Регистрация новых пользователей может осуществляться администратором системы Для этого следует выбрать элемент меню Tas/:s | Us'er Security В появившемся окне будет указан список имен зарегистрированных на сервере пользователей (рис 38 11)

Рис 38.11 Регистрация пользователей

Добавление нового пользователя реализуется по нажатию кнопки Add User. В этом случае необходимо указать имя пользователя и пароль (рис.38.12). Они будут запрашиваться при доступе к БД.

Изменение реквизитов пользователя производится после нажатия кнопки Modify User, удаление - по нажатию кнопки Delete User.