ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.04.2021
Просмотров: 1846
Скачиваний: 3

!
6
Пр
акт
ич
еск
ое
зан
ят
ие
1
Об
щи
е
во
пр
ос
ы
уст
ано
вк
и
и
ад
ми
ни
стр
ир
ова
ни
я
СУ
БД
ЛИ
НТ
ЕР
!
!
E-
:
mar
ket
@re
lex.r
u
ЗАО
1.2.
Создание
базы
данных
Для
создания
базы
данных
используется
утилита
gendb.
Примечание
:
Далее
будем
предполагать
,
что
создавать
базу
требуется
в
директории
/home/linter.
Пусть
требуется
создать
базу
данных
с
именем
TEST
в
каталоге
/home/linter/db01,
и
назначить
администратора
с
именем
DBA
и
паролем
ABC123.
Для
этого
:
1.
Создадим
каталог
db01
в
каталоге
/home/linter
.
2.
Установим
значение
переменной
SY00:
set SY00=/home/linter/db01
.
3.
Запустим
утилиту
gendb
.
4.
Выполним
команду
создания
базы
данных
:
create database "TST" username "DBA" password "ABC123";
5.
Завершим
работу
команды
gendb
командой
exit
.
База
данных
готова
к
работе
.
Более
подробную
информацию
о
ключах
запуска
и
командах
утилиты
gendb
можно
получить
в
разделе
документации
«
Генерация
системной
базы
данных
и
настройка
ядра
».
1.3.
Запуск
ядра
Для
запуска
ядра
,
в
простейшем
случае
,
необходимо
выполнить
команду
linter
(
для
ОС
Windows NT
и
выше
– linternt.exe
).
Параметры
функционирования
ядра
,
как
то
местоположение
базы
данных
,
длина
очереди
запросов
,
длина
очереди
сортировок
,
имя
лог
-
файла
и
прочие
задаются
в
командной
строке
.
Рассмотрим
практические
задания
для
ОС
семейства
Unix.
Для
ОС
Windows
действия
выполняются
аналогично
.
Примечание
:
Студенты
выполняют
запуск
двух
ядер
.
Пусть
требуется
запустить
на
одной
машине
два
ядра
.
Для
этого
создадим
вторую
базу
данных
:
1.
Создадим
каталог
db02
в
катилоге
/home/linter
.
2.
Установим
значение
переменной
SY00:
set SY00=/home/linter/db02
.
3.
Запустим
утилиту
gendb
.
4.
Выполним
команду
создания
базы
данных
:
create database "TST2";
5.
Завершим
работу
команды
gendb
командой
exit
.
По
умолчанию
имя
АБД
будет
SYSTEM
и
его
пароль
MANAGER.
1.
Установим
значение
параметра
MBX:
export LINTER_MBX=1
2.
Запустим
ядро
на
первой
базе
:
linter /base=/home/linter/db01 /local
3.
Установим
значение
параметра
MBX:

!
!
Пр
акт
ич
еск
ое
зан
ят
ие
1
Об
щи
е
во
пр
ос
ы
уст
ано
вк
и
и
ад
ми
ни
стр
ир
ова
ни
я
СУ
БД
ЛИ
НТ
ЕР
!
7
E-
:
mar
ket
@re
lex.r
u
ЗАО
export LINTER_MBX=2
4.
Запустим
ядро
на
второй
базе
:
linter /base=/home/linter/db02 /local
Для
получения
более
подробной
информации
о
ключах
запуска
ядра
можно
получить
в
разделе
документации
«
Запуск
и
останов
СУБД
».
1.4.
Выполнение
SQL-
запросов
Для
выполнения
SQL-
запросов
предназначена
утилита
inl.
Примечание
:
Студенты
работают
с
inl.
Попробуем
соединиться
с
БД
и
выбрать
список
всех
объектов
,
хранящихся
в
системной
таблице
$$$SYSRL:
1.
Запускаем
утилиту
inl.
2.
Соединяемся
с
SQL-
сервером
(
ядром
) –
вводим
имя
пользователя
и
пароль
.
Примечание
:
При
соединении
с
локальным
ядром
(
когда
узел
не
указывается
),
а
на
данной
машине
запущено
два
ядра
,
соединение
происходит
с
ядром
, MBX
которого
совпадает
с
MBX
клиентского
приложения
.
3.
Подаем
на
выполнение
следующий
запрос
:
inl> select $$$S13 from $$$SYSRL;
При
этом
появится
результат
выборки
.
4.
Создадим
таблицу
T11
с
целочисленным
и
символьным
полем
:
inl> create table T11 (I int, S char(20));
5.
Вставим
в
нее
данные
:
inl> insert into T11 values (1, ‘first’);
inl> insert into T11 values (2, ‘second’);
6.
Проверим
содержимое
таблицы
:
inl> select * from T11;
При
этом
появится
результат
выборки
.
1.5.
Останов
ядра
Для
штатного
останова
ядра
необходимо
выполнить
команду
shut
,
и
передать
ей
в
командной
строке
имя
пользователя
с
правами
системного
администратора
,
его
пароль
и
имя
узла
,
на
котором
запущено
ядро
.
Завершим
работу
двух
ядер
,
которые
были
запущены
в
предыдущем
примере
:
1.
Ядро
,
которое
было
запущено
вторым
,
остановим
в
первую
очередь
,
поскольку
переменная
LINTER_MBX=2:
shut –u SYSTEM/MANAGER
2.
Установим
переменную
LINTER_MBX
в
1.
3.
Завершим
работу
первого
ядра
:
shut –u DBA/ABC123

!
8
Пр
акт
ич
еск
ое
зан
ят
ие
1
Об
щи
е
во
пр
ос
ы
уст
ано
вк
и
и
ад
ми
ни
стр
ир
ова
ни
я
СУ
БД
ЛИ
НТ
ЕР
!
!
E-
:
mar
ket
@re
lex.r
u
ЗАО
1.6.
Настройка
параметров
ядра
Настроим
размеры
очередей
базы
данных
.
При
остановленном
ядре
, c
конфигурируем
базу
для
работы
с
большим
количеством
запросов
на
вставку
,
предполагая
,
что
база
находится
в
каталоге
db02
относительно
текущего
,
в
базе
4000
таблиц
и
около
9000
столбцов
.
export SY00= /home/linter/db01
(
устанавливаем
SY00)
gendb
(
запускаем
gendb)
gendb> set TRUETYPECOMMIT OFF;
(
сбрасывем
полный
COMMIT)
gendb> set TABLES 5000;
(
очередь
таблиц
с
запасом
)
gendb> set COLUMNS 10000;
(
очередь
столбцов
с
запасом
)
gendb> set FILES 1000;
(
очередь
столбцов
с
запасом
)
gendb> exit;
linter /pool=3000 /spool=300
(
при
запуске
ядра
делаем
побольше
пул
ядра
)
Запустим
ядро
СУБД
с
увеличенным
размером
памяти
:
Пример
: linter /base= /home/linter/db01 /pool=3000 /
spool=600
Полное
описание
ключей
запуска
ядра
СУБД
ЛИНТЕР
находится
в
разделе
«
Запуск
и
останов
СУБД
»
пользовательской
документации
.
1.7.
Настройка
сетевого
обмена
между
клиентами
и
сервером
Для
организации
обмена
клиент
-
сервер
на
стороне
сервера
(
машины
,
где
находится
база
данных
и
запущенное
ядро
)
запускается
сетевой
сервер
(
утилита
dbs),
а
на
стороне
клиента
(
машины
с
клиентским
программным
обеспечением
)
сетевой
клиент
(
утилита
dbc).
Примечания
:
В
ОС
Windows
утилиты
имеют
имена
dbs_wnt.exe
и
dbc_wnt.exe
соответственно
.
В
UNIX-
подобных
ОС
утилиты
имеют
имена
dbs_tcp
и
dbc_tcp
соответственно
.
Выполним
настройку
работы
с
двумя
базами
на
одной
машине
.
Для
этого
:
1.
Запустим
два
ядра
,
как
было
указано
в
пункте
«
Запуск
ядра
»;
2.
Запустим
сетевой
сервер
для
первого
ядра
командой
:
dbs_tcp -P 1060 -M 1
3.
Запустим
сетевой
сервер
для
второго
ядра
командой
:
dbs_tcp -P 1061 -M 2
4.
Отредактируем
файл
nodetab,
добавив
в
него
строки
:
DB001 LOCAL 1
DB002 LOCAL 2
Здесь
LOCAL
указывает
то
,
что
сервер
находится
на
той
же
машине
,
что
и
клиент
,
а
номер
1
или
2
указывает
номер
MBX.
5.
Запустим
сетевой
клиент
:
dbc_tcp

!
!
Пр
акт
ич
еск
ое
зан
ят
ие
1
Об
щи
е
во
пр
ос
ы
уст
ано
вк
и
и
ад
ми
ни
стр
ир
ова
ни
я
СУ
БД
ЛИ
НТ
ЕР
!
9
E-
:
mar
ket
@re
lex.r
u
ЗАО
Теперь
утилиты
,
запускаемые
на
локальной
машине
,
могут
использовать
узлы
DB001
и
DB002,
и
работать
с
базами
из
каталогов
/home/linter/db01
и
/home/linter/db02
соответственно
.
6.
Запустим
утилиту
inl
и
сделаем
соединение
с
первой
базой
:
inl –u DBA/ABC123 –n DB001
7.
Запустим
утилиту
inl
и
сделаем
соединение
со
второй
базой
:
inl –u SYSTEM/MANAGER –n DB002
Работа
с
сервером
в
локальной
сети
полностью
аналогична
рассмотренной
ситуации
.
Для
этого
следует
завести
в
файле
nodetab
описание
удаленного
сервера
базы
данных
и
перезапустить
сетевой
клиент
.
Если
имя
машины
сервера
,
допустим
, dbsrv,
сеть
поддерживает
обмен
по
протоколу
TCP/IP,
адрес
сервера
12.123.122.33,
и
мы
хотим
соединиться
со
второй
базой
(
для
которой
сетевой
сервер
запущен
с
портом
1061)
то
запись
в
файле
nodetab
на
клиенте
будет
выглядеть
следующим
образом
:
dbserv TCPIP 12.122.123.33 1061 1 20 0
Теперь
на
машине
клиента
запускается
сетевой
клиент
,
и
клиентские
приложения
могут
обращаться
к
базе
данных
с
сервера
,
например
,
так
:
inl –u SYSTEM/MANAGER –n dbserv
1.8.
Создание
резервных
копий
базы
данных
Для
создания
резервной
копии
базы
используется
утилита
lhb,
которая
позволяет
создавать
резервные
копии
без
остановки
ядра
.
Пусть
требуется
создать
полный
архив
базы
данных
.
Предположим
,
что
запущено
ядро
на
базе
из
/home/linter/db01,
и
архив
следует
сохранить
в
файле
/home/linter/
db01_full.lhb.
Тогда
команда
на
сохранение
базы
будет
такой
:
lhb s –u DBA/ABC123 –f /home/linter/db01_full.lhb
Пусть
требуется
создать
архив
/home/linter/db01_sprav.lhb,
в
котором
будут
находиться
только
таблицы
пользователя
DBA:
lhb s –u DBA/ABC123 –f /home/linter/db01_dba.lhb –only DBA
Пусть
требуется
создать
архив
/home/linter/db01_doc.lhb,
в
котором
будут
находиться
только
таблицы
и
представления
с
префиксом
T:
lhb s –u DBA/ABC123 –f /home/linter/db01_t.lhb –ot T* -ov T*
Предположим
,
что
был
сбой
,
и
база
в
каталоге
/home/linter/db01
сильно
испорчена
.
Чтобы
не
тратить
время
на
тестирование
и
исправление
ошибок
в
базе
,
а
также
последующее
тестирование
всех
функций
клиентских
приложений
,
разворачиваем
из
архива
db01_full.lhb
базу
в
каталог
/home/linter/db01_temp.
lhb r –f /home/linter/db01_full.lhb –p /home/linter/db01_temp
Предположим
,
что
были
испорчены
часть
таблиц
пользователя
DBA.
Восстановим
все
таблицы
этого
пользователя
:
lhb r –u DBA/ABC123 –f /home/linter/db01_dba.lhb –only DBA
1.9.
Тестирование
базы
данных
Если
был
сбой
питания
сервера
или
жесткий
диск
с
базой
начал
выходить
из
строя
,
или
стали
некорректно
функционировать
клиентские
утилиты
,
то
необходимо
протестировать
базу
данных
.
Для
этого
:
1.
Завершаем
работу
ядра
.

!
10
Пр
акт
ич
еск
ое
зан
ят
ие
1
Об
щи
е
во
пр
ос
ы
уст
ано
вк
и
и
ад
ми
ни
стр
ир
ова
ни
я
СУ
БД
ЛИ
НТ
ЕР
!
!
E-
:
mar
ket
@re
lex.r
u
ЗАО
Примечание
:
Сэмулируем
сбой
данных
:
в
файл
3.01
на
место
какого
-
нибудь
из
символов
0xFF
запишем
,
например
,
пробел
(0x20).
2.
Запускаем
полное
тестирование
базы
данных
:
testdb /home/linter/db01 –p 1000
Утилита
выведет
полный
список
ошибок
и
предложение
об
исправлении
этих
ошибок
.
3.
Запускаем
тестирование
базы
данных
с
исправлением
найденных
ошибок
:
testdb /home/linter/db01 –p 1000 -r
Ошибки
базы
данных
,
если
это
возможно
,
будут
исправлены
.