Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Линтер методичка

.pdf
Скачиваний:
77
Добавлен:
21.05.2015
Размер:
1.38 Mб
Скачать

КУРС ПРАКТИЧЕСКИХ ЗАНЯТИЙ

ПО СУБД ЛИНТЕР

Воронеж

2003

E-mail: market@relex.ru

ЗАО НПП «РЕЛЭКС»

http://www.relex.ru

3!

Оглавление

Практическое занятие 1. Общие вопросы установки и администрирования СУБД ЛИНТЕР .. 5

Практическое занятие 1. Общие вопросы установки и администрирования СУБД ЛИНТЕР .. 9

Практическое занятие 1. Общие вопросы установки и администрирования СУБД ЛИНТЕР ..

6

 

Практическое занятие 2. Основные утилиты ..............................................................................

11

Практическое занятие 1. Общие вопросы установки и администрирования СУБД ЛИНТЕР .. 17

Практическое занятие 1. Общие вопросы установки и администрирования СУБД ЛИНТЕР ..

12

 

Практическое занятие 3. Загрузка и выгрузка данных ..............................................................

19

Практическое занятие 1. Общие вопросы установки и администрирования СУБД ЛИНТЕР .. 21

Практическое занятие 1. Общие вопросы установки и администрирования СУБД ЛИНТЕР .. 20

Практическое занятие 4. Создание, исполнение и отладка хранимых процедур и триггеров ...

25

Практическое занятие 1. Общие вопросы установки и администрирования СУБД ЛИНТЕР .. 27

Практическое занятие 1. Общие вопросы установки и администрирования СУБД ЛИНТЕР .. 30

Практическое занятие 5. Разграничение доступа в СУБД ЛИНТЕР. Дискреционный доступ .. 33

Практическое занятие 5. Разграничение доступа в СУБД ЛИНТЕР. Дискреционный доступ .. 35

Практическое занятие 5. Разграничение доступа в СУБД ЛИНТЕР. Дискреционный доступ ..

34

 

Практическое занятие 6. Резервное копирование и восстановление данных .........................

37

Практическое занятие 6. Резервное копирование и восстановление данных .........................

39

Практическое занятие 6. Резервное копирование и восстановление данных .........................

38

Практическое занятие 7. Разграничение доступа в СУБД ЛИНТЕР. Мандатный доступ ......

40

Практическое занятие 7. Разграничение доступа в СУБД ЛИНТЕР. Мандатный доступ ......

42

Практическое занятие 7. Разграничение доступа в СУБД ЛИНТЕР. Мандатный доступ ......

45

Практическое занятие 8. Пример создания защищенной базы данных ...................................

48

Практическое занятие 8. Пример создания защищенной базы данных ...................................

50

Практическое занятие 8. Пример создания защищенной базы данных ...................................

53

Практическое занятие 9. Знакомство с CALL-интерфейсом .....................................................

56

Практическое занятие 8. Пример создания защищенной базы данных .................................

@~

Практическое занятие 10. Углубленное изучение CALL-интерфейса .....................................

58

Практическое занятие 10. Углубленное изучение CALL-интерфейса .....................................

60

Практическое занятие 10. Углубленное изучение CALL-интерфейса .....................................

61

Практическое занятие 11. Основные приемы использования LinAPI ......................................

64

Практическое занятие 11. Основные приемы использования LinAPI ......................................

82

Практическое занятие 11. Основные приемы использования LinAPI ......................................

65

 

Практическое занятие 12. Пример разработки приложения для ЛИНТЕР с использованием

E-mail: market@relex.ru

ЗАО НПП «РЕЛЭКС»

http://www.relex.ru

Qt .....................................................................................................................................................

 

85

Практическое занятие 12. Пример разработки приложения для ЛИНТЕР с использованием

Qt .....................................................................................................................................................

89

Практическое занятие 12. Пример разработки приложения для ЛИНТЕР с использованием

Qt .....................................................................................................................................................

86

Практическое занятие 13. Использование прекомпилятора встроенного SQL .......................

92

Практическое занятие 13. Использование прекомпилятора встроенного SQL .......................

94

Практическое занятие 13. Использование прекомпилятора встроенного SQL .......................

95

Практическое занятие 14. Настройка сервера репликации в среде UNIX ..............................

97

Практическое занятие 13. Использование прекомпилятора встроенного SQL .......................

99

Практическое занятие 14. Настройка сервера репликации в среде UNIX ..............................

98

Практическое занятие 1 Общие вопросы установки и администрирования СУБД ЛИНТЕР

Практика 2 часа (Лекция 1)

На занятии будут рассмотрены установка пакета программ СУБД ЛИНТЕР, создание БД, настройка и запуск ядра, останов ядра, горячее резервирование, тестирование БД, настройка сетевого обмена между клиентами и сервером.

1.1. Установка СУБД ЛИНТЕР

В зависимости от типа операционной системы, существуют два принципиально разных способа установки. Для систем семейства Windows используется стандартный мастер установки, а в UNIX-системах сначала монтируется CD-диск, затем запускается интерактивная программа установки, имеющая текстовый интерфейс.

Вопросы, задаваемые пользователю программой установки в целом одинаковы. Сначала запрашивается согласие пользователя с лицензионным соглашением, затем спрашивается директория, куда следует установить СУБД, и происходит копирование файлов.

Далее идет настройка компонент. Для UNIX-систем могут быть настроены интерфейсы PHP3, PHP4, TCL, ODBC. В Windows-системах идут запросы на создание демонстрационной базы данных, настройка ODBC-интерфейса и предложение об авоматическом запуске ядра как сервиса при каждой загрузке.

Более подробную информацию можно получить из пользовательской документации, разделы «Быстрый старт на Unux-платформах» и «Быстрый старт на платформе Win32».

Примечание: Студенты выполняют установку пакета.

Для ОС Win32:

Запускаем на выполнение файл setup.exe.

Соглашаемся с лицензионным соглашением.

Устанавливаем флаг демо-версии.

Устанавливаем каталог для пакета.

Выбираем устанавливаемые компоненты.

Сбрасываем флаг «запускать ядро на демонстрационной базе».

Конфигурируем ODBC-драйвер.

Редактируем список серверов.

СУБД установлена.

Для ОС UNIX:

Запускаем на выполнение файл install.sh.

Соглашаемся с лицензионным соглашением.

Указываем каталог для пакета.

Ожидаем окончания процесса распаковки файлов.

Соглашаемся на старт конфигурации.

Выбираем компилятор.

Выбираем нужные интерфейсы.

Создаем новую базу данных.

Конфигурируем сетевой сервер.

Настраиваем ежедневное сохранение БД.

Запускаем ядро.

СУБД установлена.

!6

1.2. Создание базы данных

Пр

Для создания базы данных используется утилита gendb.

акт

 

 

Примечание: Далее будем предполагать, что создавать базу требуется в

ич

 

 

директории /home/linter.

еск

Пусть требуется создать базу данных с именем TEST в каталоге /home/linter/db01, и

ое

назначить администратора с именем DBA и паролем ABC123. Для этого:

зан

 

Создадим каталог db01 в каталоге /home/linter.

ят

1.

ие

2.

Установим значение переменной SY00: set SY00=/home/linter/db01.

1

Об

3.

Запустим утилиту gendb.

щи

4.

Выполним команду создания базы данных:

е

create database "TST" username "DBA" password "ABC123";

во

пр

5.

Завершим работу команды gendb командой exit.

ос

ы

База данных готова к работе. Более подробную информацию о ключах запуска и

уст

командах утилиты gendb можно получить в разделе документации «Генерация системной

ано

базы данных и настройка ядра».

вк

1.3. Запуск ядра

и и

ад

Для запуска ядра, в простейшем случае, необходимо выполнить команду linter (для

ми

 

ОС Windows NT и выше – linternt.exe ). Параметры функционирования ядра, как то

 

ни

 

 

местоположение базы данных, длина очереди запросов, длина очереди сортировок, имя

 

стр

 

 

лог-файла и прочие задаются в командной строке.

 

ир

Рассмотрим практические задания для ОС семейства Unix. Для ОС Windows

 

ова

 

 

 

действия выполняются аналогично.

 

ни

 

 

Примечание: Студенты выполняют запуск двух ядер.

 

я

Пусть требуется запустить на одной машине два ядра. Для этого создадим вторую

 

СУ

базу данных:

 

БД

 

Создадим каталог db02 в катилоге /home/linter.

 

ЛИ

1.

 

НТ

2.

Установим значение переменной SY00: set SY00=/home/linter/db02.

 

ЕР

 

 

Запустим утилиту gendb.

 

 

3.

 

 

4.

Выполним команду создания базы данных:

 

 

create database "TST2";

 

 

 

 

5.

Завершим работу команды gendb командой exit.

 

 

 

 

 

По умолчанию имя АБД будет SYSTEM и его пароль MANAGER.

 

 

1.

Установим значение параметра MBX:

 

 

export LINTER_MBX=1

 

 

2.

Запустим ядро на первой базе:

 

E-

linter /base=/home/linter/db01 /local

 

mail

3.

Установим значение параметра MBX:

:

mar ket @re lex.r u

 

export LINTER_MBX=2

Пр

4. Запустим ядро на второй базе:

linter /base=/home/linter/db02 /local

акт

ич

Для получения более подробной информации о ключах запуска ядра можно

еск

 

получить в разделе документации «Запуск и останов СУБД».

ое

1.4. Выполнение SQL-запросов

зан

Для выполнения SQL-запросов предназначена утилита inl.

ят

Примечаниеие

: Студенты работают с inl.

1

Попробуем соединиться с БД и выбрать список всех объектов, хранящихся в

системной таблице $$$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, и передать ей в

командной строке имя пользователя с правами системного администратора, его пароль и

7!

имя узла, на котором запущено ядро.

Завершим работу двух ядер, которые были запущены в предыдущем примере:

1.Ядро, которое было запущено вторым, остановим в первую очередь, поскольку переменная LINTER_MBX=2:

shut –u SYSTEM/MANAGER

2.Установим переменную LINTER_MBX в 1.

3.Завершим работу первого ядра:

shut –u DBA/ABC123

E- mail

:

mar ket @re lex.r u

!8

1.6. Настройка параметров ядра

Пр

Настроим размеры очередей базы данных.

 

акт

 

При остановленном ядре, cконфигурируем базу для работы с большим количеством

ич

 

02 относительно

запросов на вставку, предполагая, что база находится в каталоге db

тесккущего, в базе 4000 таблиц и около 9000 столбцов.

 

заное

export SY00= /home/linter/db01 (устанавливаемSY00)

ят

gendb (запускаемgendb)

ие1

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. Запустим сетевой клиент:

E-

:

dbc_tcp

mail

 

mar

 

ket

 

@re

 

lex.r

 

u

 

Для этого:
1. Завершаем работу ядра.

 

 

 

Теперь утилиты, запускаемые на локальной машине, могут использовать узлы

 

 

 

DB001

и DB002, и работать с базами из каталогов /home/linter/db01 и /home/linter/db

02

 

соответственно.

 

 

 

 

 

 

 

Пр

6. Запустим утилиту inl и сделаем соединение с первой базой:

 

 

 

актич

 

 

 

inl –u DBA/ABC123 –n DB001

 

 

 

 

 

 

еск

7. Запустим утилиту inl и сделаем соединение со второй базой:

 

 

 

 

 

заное

inl –u SYSTEM/MANAGER –n DB002

 

 

 

 

 

 

ят

Работа с сервером в локальной сети полностью аналогична рассмотренной

 

ситуации. Для этого следует завести в файле nodetab

описание удаленного сервера базы

 

 

ие

 

 

 

 

 

 

данных и перезапустить сетевой клиент.

 

 

 

 

 

1

Если имя машины сервера, допустим, 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/

 

ядро на базе из /home/linter/db01, и архив следует сохранить в файле

 

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 сильно испорчена.

Чтобы не тратить время на тестирование и исправление ошибок в базе, а также

последующее тестирование всех функций клиентских приложений, разворачиваем из

!9

архива 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. Тестирование базы данных

Если был сбой питания сервера или жесткий диск с базой начал выходить из строя, или стали некорректно функционировать клиентские утилиты, то необходимо

протестировать базу данных.

E- mail

:

mar ket @re lex.r u

10!

Примечание: Сэмулируем сбой данных: в файл 3.01 на место какого-нибудь из

Пр

 

символов 0xFF запишем, например, пробел (0x20).

акт

2. Запускаем полное тестирование базы данных:

ескич

testdb /home/linter/db01 –p 1000

ое

Утилита выведет полный список ошибок и предложение об исправлении этих

ошибок.

зан

3. Запускаем тестирование базы данных с исправлением найденных ошибок:

ят

ие

testdb /home/linter/db01 –p 1000 -r

1

Ошибки базы данных, если это возможно, будут исправлены.

Об

щи

е

во

пр

ос

ы

уст

ано

вк

и и

ад

ми

ни

стр

ир

ова

ни

я

СУ

БД

ЛИ

НТ

ЕР

E- mail

:

mar ket @re lex.r u