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

LINTER от 04.02.15

.pdf
Скачиваний:
44
Добавлен:
21.05.2015
Размер:
2.16 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. Пример разработки приложения для ЛИНТЕР с использованием

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

E-mail: market@relex.ru

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

http://www.relex.ru

4

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

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

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

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

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

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

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

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

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

Для ОС Win32:

 

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

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

 

 

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

 

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

 

 

Для ОС UNIX:

 

 

 

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

 

 

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

 

 

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

 

 

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

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

СУБД

 

 

установлена.

 

 

 

E-mail: market@relex.ru

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

http://www.relex.ru

Практическое занятие 1

 

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

5

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 действия выполняются аналогично.

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

Внимание! В случае работы нескольких студентов на одной машине они должны использовать различные значения LINTER_MBX при запуске ядер

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

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

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

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

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

create database "TST2";

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

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

1. Установим значение параметра MBX (Внимание! См. примечание к заданию 1.3):

E-mail: market@relex.ru

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

http://www.relex.ru

 

 

 

E-mail: market@relex.ru

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

http://www.relex.ru

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

export LINTER_MBX=1

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

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

3. Установим значение параметра MBX (Внимание! См. примечание к заданию 1.3):

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;

При этом появится результат выборки.

E-mail: market@relex.ru

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

http://www.relex.ru

 

 

 

(при запуске ядра делаем побольше пул ядра)

Практическое занятие 1

 

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

7

1.5. Останов ядра

Для штатного останова ядра необходимо выполнить команду shut, и передать ей в командной строке имя пользователя с правами системного администратора, его пароль и имя узла, на котором запущено ядро.

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

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

shut –u SYSTEM/MANAGER

2.Установим переменную LINTER_MBX в 1 (Внимание! См. примечание к заданию

1.3).

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

shut –u DBA/ABC123

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).

E-mail: market@relex.ru

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

http://www.relex.ru

 

 

 

E-mail: market@relex.ru

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

http://www.relex.ru

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

Примечания:

ВОС Windows утилиты имеют имена dbs_wnt.exe и dbc_wnt.exe

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

ВUNIX-подобных ОС утилиты имеют имена dbs_tcp и dbc_tcp соответственно.

Выполним настройку работы с двумя базами на одной машине. Для этого:

1.Запустим два ядра, как было указано в пункте «Запуск ядра»;

2.Запустим сетевой сервер для первого ядра командой (в случае соединения по протоколу LOCAL в данном действии нет необходимости, оно необходимо в случае соединения по протоколу TCPIP):

dbs_tcp -P 1060 -M 1

3.Запустим сетевой сервер для второго ядра командой (аналогично предыдущему пункту):

dbs_tcp -P 1061 -M 2

4.Отредактируем файл nodetab, добавив в него строки (Внимание! См. примечание к заданию 1.3):

DB001 LOCAL 1

DB002 LOCAL 2

Здесь LOCAL указывает то, что сервер находится на той же машине, что и клиент, а номер 1 или 2 указывает номер MBX.

5. Запустим сетевой клиент:

а) случай работы одного пользователя на машине

dbc_tcp

б) случай работы нескольких пользователей на одной машине

dbc_tcp /MBX <значение MBX> /N <путь к nodetab пользователя>

где <значение MBX> - уникальное значение для данной машины, <путь к nodetab пользователя> - путь к файлу nodetab конкретного пользователя на данной машине.

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

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

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

6.Установим переменную окружения NET_MBX (выполняется только для случая работы нескольких пользователей на одной машине):

set NET_MBX=<значение NET_MBX>

<значение NET_MBX> должно совпадать со <значением MBX> из пункта 5) б). 7. Запустим утилиту inl и сделаем соединение с первой базой:

inl –u DBA/ABC123 –n DB001

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

E-mail: market@relex.ru

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

http://www.relex.ru

 

 

 

Практическое занятие 1

 

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

9

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. Завершаем работу ядра.

E-mail: market@relex.ru

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

http://www.relex.ru

 

 

 

E-mail: market@relex.ru

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

http://www.relex.ru

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

Примечание: Сэмулируем сбой данных: в файл 3.01 на место какого-нибудь из символов 0xFF запишем, например, пробел (0x20).

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

testdb /home/linter/db01 –p 1000

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

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

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

Ошибки

базы

данных,

если

это

возможно,

будут

исправлены.

E-mail: market@relex.ru

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

http://www.relex.ru

 

 

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]