Блог СУБД SoQoL

Что было до

В опубликованных ранее материалах мы затрагивали темы объектов баз данных, команд манипулирования объектами и их данными и т.д. Однако, ни раз не сказали, что делать до этого? Нужно исправлять этот момент.

Итак, СУБД установлена, сервер запущен. Первый раз. Сервер реализует сервис управления базами данных SoQoL. Что делать дальше?

В текущей реализации SoQoL нет предустановленной базы данных.

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

Пример:
create database WORKERS;

- база данных создана и готова к работе;
- каталог базы данных, с файлами для хранения её данных, автоматически создан в текущем каталоге;
- каталог созданной базы данных имеет одноимённое с ней имя.

Всё! Теперь к базе данных можно подключаться под предустановленным администратором, создавать в ней пользователей, объекты, наполнять их данными.
Простой пример? Да. Хотите чуть посложнее? Пожалуйста!

Или почитаем документацию? ;-) Нет? Ну ладно :-)

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

create database WORKERS on 'D:\WORKERS_CITY';

Продолжим погружаться в детали?

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

Пример:
Допустим, необходимо создать базу данных для хранения архивных данных, которая будет редко использоваться. Подключение этой БД будет выполняться вручную при необходимости командой STARTUP DATABASE. Поэтому при создании БД отключаем ее автозапуск:

create database CITY with database.autostart='off';

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

Итак, база данных создана с «авторскими настройками»… некоторые опции при необходимости подкорректировали. А что дальше?

После успешного выполнения ALTER DATABASE новые значения всех опций, будут действительны после перезапуска базы данных. Но и здесь есть одно исключение из правил: новое значение опции автоматического сбора статистики будет действительно сразу после успешного выполнения команды и не нужно ничего перезапускать.

В какой-то момент база данных перестает быть актуальной. Её нужно либо отправить в архив, либо вообще удалить.

В этом случае базу данных сначала останавливаем командой SHUTDOWN DATABASE, а потом дерегистрируем в сервисе управления базами данных командой DETACH DATABASE. Только после этого архивируем или удаляем командой DROP DATABASE.

Для возвращения в работу дерегистрированную ранее БД нужно снова зарегистрировать командой ATTACH DATABASE, указав её имя и путь к каталогу. Ну а дальше запускаем и в бой.

Вышеозвученные команды может выполнить только администратор сервиса из подключения к сервису. А вот команду ALTER DATABASE помимо него может выполнить еще и администратор конкретной БД.

Кроме упомянутых команд в арсенале администратора сервиса есть ещё команда RESTART SERVICE – для перезапуска сервиса. Кстати, эта доработка была выполнена недавно по предложению одного из наших любимых пользователей.

Помимо «долговечных» настроек БД есть команда ALTER SESSION для изменения настроек, действующих в текущем соединении с базой данных. Например, таких:
- включение / отключение автокоммита;
- установка правила сравнения строковых данных по умолчанию.

Как думаете, нам с вами будет этого достаточно на первое время? Нет? ;-) Или чего-то не хватает?
Что думаете по поводу необходимости предустановленных БД? Поделитесь опытом.

P.S. Надеемся, что подключиться к сервису и БД вы смогли сами :-) Подробнее о деталях подключения расскажем позже в одной из следующих публикаций.

Обсудить в Telegram!