« РСУБД Sybase ASA 9 – мощность, легкость и
надежность »
Рассылка № 2
Здравствуйте уважаемые коллеги. Я продолжаю выпуск рассылки
и поздравляю всех с наступлением зимы.
Содержание рассылки:
Новости
Sybase выложила ASA Developer Edition под Unix, Linux (kernel 2.4.18 для SMP или 2.4.2 на UN, glibc 2.1.x, 2.3.2-27.9,
ncurses 5.2) и Solaris(версии 7-9). С Linux
Sybase рекомендует версии: Red Hat (7.3, 8.0, 9.0, 2.1 AS), SuSE
(7.2, 7.3, 8.0, 8.1), Caldera (3.1), TurboLinux (8.0), Mandrake (8.0, 8.1).
Мои знакомые уже скачали эту
версию и в скором времени обещали поделится своими впечатлениями о работе ASA9 на Unix-системах и информацией о особенностях
инсталляции. Наиболее полезная информации будет включена в рассылку. Ну а в этом
выпуске рассылки мы рассмотрим инсталляцию ASA на Windows.
Инсталляция на Windows
Итак запускаем ASA9_DEV.EXE и в путь. Чтобы показать нам соответствующую лицензию, нас просят
выбрать географический регион, в котором конечно же России нет (искренне
надеюсь изменить эту ситуацию), так что выбираем первый попавшийся (например Europe,
Middle East, and Africa – General). Далее вводим серийный номер инсталляции (Sybase высылает
его по почте после регистрации загрузки ASA). Далее выбираем необходимые для работы компоненты. По
умолчанию компоненты, необходимые для разработчика, выбраны правильно, но можно дать следующие рекомендации:
- Если
Вы не работаете на C++,
то можно отключить пункт «C++ Development components»
- Если
Вы не планируете использовать для доступа к ASA 9.0 приложения, разработанные
под ASA 5.0, то
можно отключить пункт «5.0 Compatibility DLL»
- Если
Вы планируете разрабатывать клиентские приложения на Net Framework, то необходимо включить
пункт «ADO.NET Data Provider»
- Если
Вы не планируете разрабатывать базы данных под мобильные компьютеры, то
можно отключить пункты «UltraLite»
и «UltraLite Component Site»
- Если
Вы не планируете работать с репликациями, то можно отключить всю ветку
дерева пунктов «Synchronization».
Если планируете гетерогенные репликации, то необходимо включить в
инсталяцию механизма репликаций «MobiLink», если репликации проводятся только с серверами
ASA, то удобнее
будет использовать механизм репликаций «SQL Remote for ASA».
- Если
Вы планируете делать инсталляцию своего приложения через InstallShield и хотите в нее
включить ASA, то
не забудьте включить в инсталляции ASA пункт «InstallShield Deployment components».
После выбора инсталляция проходит
без проблем. Документация к ASA ставиться отдельно и ее инсталляция никаких сложностей не
предоставляет (документация скачивается отдельно с того же раздела, где и лежит
инсталяция Sybase ASA).
Если Вы скачали последний патч к ASA, то рекомендую его установить
следом за инсталляцией. Для обновления ASA нет необходимости качать все
выпущенные к нему патчи – достаточно скачать самый последний, в него войдут изменения
всех патчей. Патчи к ASA можно разделить на 2 категории:
- EFB
(Express Fix Bags)
– выходит по мере обнаружения и исправления ошибок. Меняет последнюю цифру
версии (например сейчас последний патч 1235 и соответствующе версия ASA 9.0.0.1235)
- Upgrate – выходит, как только команда разработчиков ASA решает,
что исправила основные критические места и символизирует собой более
стабильную и оптимизированную версию сервера. Меняет вторую цифру сервера
(например ASA 8.2)
и отныне сразу входит в инсталляцию продаваемых ASA
Как последний пункт к инсталяции
я бы порекомендовал переключить язык сообщений ASA на русский.
Для этого необходимо зайти с диска, куда была инсталлирована ASA, запустить программу «X:\Program Files\Sybase\SQL
Anywhere 9\win32\dblang.exe RU».
Принципы работы с Sybase Central
Sybase Central является
кроссплатформенным плагин-менеджером, написанным на Java и по принципам работы напоминает MMC (Microsoft Console Manager). Для ASA под
Sybase
Central предоставляются 2 плагина – Sybase Server Anywhere для
работы с базами данных ASA и MobiLink Synchronization для работы с механизмом репликаций MobiLink. В этой рассылке мы рассмотрим
плагин для работы с ASA.
Профили
Профили служат для подключения Sybase Central к
нужным плагинам. В данном случае профили нужны для подключения и
администрирования баз данных ASA.
Войти в профили можно нажав F9
(или меню Tools/Connection Profiles). В списке профилей
можно подсоединиться к профилю, назначить его стартовым (т.е. автоматически
подсоединяться к нему во время старта Central), а также добавить, изменить или удалить профиль. Войдем
в изменение и рассмотрим профиль «Adaptive Server Anywhere 9.0 Sample»:
Вкладка Identification
Имя и пароль пользователя по
умолчанию в ASA: dba и
sql. Если на
соединение создан DSN ODBC,
то его можно выбрать и автоматически установить в профиль его настройки.
Вкладка Database
Server Name:
Имя сервера, выбирается, если ASA запущен
на локальной как сервис или он находится на удаленной машине. Здесь можно
написать IP адрес или имя компьютера в сети с указанием порта СУБД
(например localhost:2638).
Если сервер находится в том же сегменте сети, то можно поставить просто имя
сервера СУБД, которое назначается ASA при старте (например MyServer), ASA определит
его IP
адрес автоматически. Так же для поиска доступных серверов можно нажать
кнопку Find.
Все
остальные опции используются в случае запуска локальной версии ASA.
Start Line:
Командная строка запуска сервера.
Используется, если Вы при старте ASA указать ему дополнительные опции
(опции и командную строку рассмотрим в рассылке чуть попозже).
Database
Name:
Как будет называться база данных
на сервере. Если ничего не ставить, то ASA возьмет имя БД по имени ее файла
(например если файл MyDB.db, то БД будет называться MyDB).
Database
file:
Собственно сам файл базы данных.
Encryption
key:
Ключ для доступа к зашифрованной БД.
Start и Stop Database automatically:
Флаги автоматического запуска СУБД при первом к нему подключении
и автоматической выгрузки при отсоединении последней сессии.
Вкладка Advanced
На этой вкладке можно указать
дополнительные параметры подключение сессии и выбрать тип доступа профиля к ASA : через JDBC или JConnect. Как таковой особой
разницы между этими способами доступа нет, однако следует помнить, что при
вызове из Central утилит (например ISQL), в качестве подсоединения к серверу им будет переданы
параметры профиля Central
и способ доступа может для них оказаться важным. Например при доступе через JDBC для
ISQL по
умолчанию команда Print будет выводить сообщения в окно лога ASA, а при JConnect сообщения
будут выводиться в само окно ISQL.
Создание
сервисов
Сервера ASA можно
создавать как сервисы Windows.
Для этого в дереве Central щелкните на плагин Adaptive Server Anywhere. В правом окне
редактора появятся вкладки управления плагином, нам нужно войти в вкладку Services. Создадим новый
сервис – щелкнем в окне редактора правой кнопкой, выберем New/Service. В запрашиваемом имени
сервиса укажем то имя, которое необходимо дать серверу и по которому можно
будет подключаться к серверу по сети (например MyServer). Далее выберем тип сервера: Personal или
Network. Если Вы планируете
только локальный доступ к серверу со своей машины, то можно указать Personal, это позволит
серверу не тратить память на поддержку сетевых протоколов. В параметрах сервера
можно указать имя файла подключаемой базы данных (полный путь) и дополнительные
опции сервера (например «-c500M –cw –m –n MyServer C:\App\mydb.db»
- выделяет для сервера AWE кэш в 500МБ, указывает, что очищать лог после каждого COMMIT, назначает имя серверу
MyServer и подключает к серверу базу Mydb). Все остальные вопросы по созданию
сервиса стандартны и рассматривать их смысла нет. На одной машине возможно
создания и запуска множества сервисов, что дает возможность на одной машине
иметь много запущенных полноценных серверов ASA.
Основы
работы с объектами базами данных
Ничего сложного в работе с Central по
сравнению с менеджерами других СУБД нет. Слева находится дерево объектов, справа
панель редактора объектов, в которую подгружается соответствующий редактор в
зависимости от типа объекта (например для таблиц – редактор полей, ограничений,
индексов и т.д., а для ХП – редактор кода). Для каждого объекта в дереве меню
свое контекстное меню по правой кнопке мышки (например если щелкнуть на самой
БД, то в меню будет список утилит для работы с ней и пункт вызова настройки ее опций).
Для объектов, использующих редактор кода (view, stored proc,
trigger), можно
открывать дополнительные немодальные окна редактирования кода (пункт «Edit in New Window» или по нажатию Ctrl+E). По F5 происходит обновление информации Central об
объектах БД (например если встать на ветку Procedures&Functions и
нажать F5, то обновятся
все скрипты процедур и функций, которые были изменены не в Central, а например в ISQL). В Central поддерживается
режим Copy/Paste, позволяющий
скопировать и вставить объект БД. Данный метод на самом деле копирует в буфер
скрипт создания выделенного объекта и при вставке выполняет сгенерированный скрипт
из буфера. Этим удобно воспользоваться, когда например Вы хотите быстро получить
скрипт создания таблицы и перенести его в тот же ISQL. В число дополнительных
возможностей управления из Central серверами ASA входит Performance Monitor,
Profiler Stored Procedures,
Consultant Index и Debugger,
но их мы рассмотрим чуть попозже.
Принципы работы с ISQL
ISQL является
графической кроссплатформенной утилитой написанной на Java для ввода,
изменения, выполнения и отладки запросов и ничем не отличается от большинства аналогичных
утилит других РСУБД: есть область, где можно вводить запрос, есть область, где
видны результаты выполнения запросов (сообщения и возвращенные наборы данных),
есть возможность просмотра графического плана запроса и консультант индексов,
позволяющий анализировать и оптимизировать использование индексов таблиц. Для
тех, кто привык работать с Query Analizer от MSSQL,
ISQL ASA сначала
покажется неудобным по двум причинам:
- Нет дерева объектов БД, с которых можно получать их
скрипты
- Отсутствие многооконного интерфейса с возможностью одновременной
отладки нескольких запросов
С этим можно будет легко
смириться за счет того, что сама Sybase Central предоставляет все необходимые полноценные
средства для редактирования объектов БД (думаю QA так же не был
бы на таком пике популярности, если бы EM умело бы побольше и была бы удобней в
работе). Так же с учетом того, что на любой объект БД из Central можно
вызвать ISQL, который не
занимает лишней памяти и висит в потоке Central, думаю отсутствие многооконного интерфейса так же не
предоставит проблем. Зато в качестве достоинств ISQL я бы отнес
поддержку истории выполнения запросов, т.е. каждое изменение скрипта
фиксируется в истории, что позволяет изменять скрипт, выполнять и при
необходимости возвращаться к его более старым версиям без лишних действий по комментированию
ненужных участков отлаживаемого скрипта.
ISQL можно
запустить 2 способами: как утилиту из Central или как отдельное приложение из
меню Windows. Каждый
способ имеет свои достоинства и недостатки:
- При запуске ISQL отдельным приложением, мы
фактически запускаем его в отдельном потоке, что приводит к дополнительным
накладным расходам памяти, однако ISQL ни от кого не зависит.
- При запуске ISQL из Central мы
его запускаем в потоке Central,
что накладывает некоторые ограничения на ISQL: в него нельзя войти, когда в Central
открыто модальное окно, если Central проводить длительную
операцию, то ISQL будет тормозить или же вообще ждать окончания операции
в Central.
Аналогично эти же ограничения будут действовать на Central, когда будут возникать их
причины в самом ISQL.
Для выполнения запроса в ISQL достаточно нажать F5. Для просмотра плана
запроса Shift+F5. Если Вы хотите выполнить
только выделенный участок скрипта, то нужно нажать F9. Для остановки выполнения запроса
Sybase
рекомендует нажимать Ctrl+Cancel, но что такое кнопка
Cancel я так и не догадался, буду признателен, если кто то
поделиться информацией по ней. Ctrl+H вызовет окно истории, так же перемещаться по истории можно Alt+Left и Alt+Right.
В опциях я рекомендую включить опцию «Commit After each command», чтобы после каждого
GO выполнялся
COMMIT, так же в целях
экономии нервов можно в опции «When an error occurs» установить
значение «Stop»,
чтобы каждый раз на ошибку в скрипте ISQL не показывал модальное окно с
запросом, что делать дальше. Остальные опции не такие критичные и их можно
установить по собственному желанию и вкусу.
Настройка
провайдера доступа ODBC
Параметры подключения в ODBC такие же, как и в профилях Central. В качестве
дополнительных параметров можно указать поддержку Foreign Key в
SQLStatistics (используется
приложениями VB и Access),
поддержку Delphi (имеется
в виду BDE) и другие,
по мере надобности.
В
следующей рассылке № 3
- Обзор
различий объектов баз данных ASA и других РСУБД
§
Стандартные типы данных
§
Локальные и глобальный счетчики, код базы данных
§
Глобальные и локальные темповые таблицы
Большое спасибо всем, принявшим участие в подготовке
рассылки:
Наталья (менеджер московского представительства Sybase)
Николай (программист)
Федор Ковригин (программист)
Алексей Орлов (программист)
До встречи в
следующей рассылке.
С уважением ASCRUS.
Материалы данной рассылки является собственностью ее
автора, при использовании информации из рассылки обязательна ссылка на автора.