Загрузить
Небольшое отступление
Используемые версии
Подготовка Oracle 9i
Подготовка ODBC
Подготовка Axapta
Действия при первом запуске
Все. Работаем
Полезные ссылки
Скрипт для создания базы от Михаила Андреева

Загрузить

Setting Up Oracle 8.zip
Документ от производителя. В документе приведены рекомендации по установке Аксапты на Oracle. Рекомендаций немного. Но уж какие есть.

 

Небольшое отступление

Установка и оптимизация работы на Oracle это очень большие и непростые темы. Отдаю себе отчет, что полностью осветить этот вопрос в небольшой статье невозможно.

Однако, в последнее время часто спрашивают можно ли "попробовать" установить Аксапту на Оракле и "поиграться" с ней.

В данной статье приведена инструкция по установке Аксапты для тестовых целей. Установка сознательно сделана простой, чтобы число настраиваемых параметров было минимальным. Настройка Oracle сознательно составлена "в картинках" Enterprise Manager, а не с помощью инструкций SQL для SQLPlus, как это принято в Oracle-сообществе.

При составлении инструкции я исходил из предположения, что:

Надеюсь, что инструкция получилось достаточно простой. Однако, появился побочный результат — если установку выполнять дословно, то установка будет неоптимальной. Поэтому для установки "боевой", рабочей версии используйте эту инструкцию только в качестве базиса с которого можно начать.

И еще одно отступление. Данные рекомендации актуальны только для Аксапты 2.5. В Аксапте 3.0 при установке доступно больше параметров, да и мастера поразумнее.

 

Используемые версии

При подготовке данной инструкции использовались следующие версии программного обеспечения:

 

Подготовка Oracle 9i

Необходимо создать табличное пространство (tablespace) и логин для тестов с Аксаптой. В [1] указывается, что по умолчанию Аксапта пытается использовать табличные пространства AXTAB и AXIDX. Однако, когда я следовал этой рекомендации, Аксапта 2.5 у меня постоянно ругалась и сопротивлялась. Судя по обсуждениям с теми, кто тоже пробовал установить у них тоже возникали проблемы именно с табличными пространствами.

Поэтому для тестовых целей я рекомендую использовать свое табличное пространство.

Комментарий:
В данной инструкции я использую одно табличное пространство и для данных, и для индексов. Я исхожу из того, что администратор Oracle вряд ли выделит вам (и вряд ли настроит) для тестов несколько табличных пространств. Однако, имейте в виду, что использование одного табличного пространства не оптимально. Использование двух табличных пространств лучше, но все еще далеко от идеала. Вообще говоря, вопрос настройки табличных пространств в Oracle является ключевым.

Создайте табличное пространство. Или попросите администратора создать табличное пространство. При составлении этой инструкции я использовал табличное пространство с именем AXTN.

Комментарий:
Для того, чтобы создавать табличные пространства, создавать пользователей и выполнять прочие задачи администрирования, у вас должны быть права администратора в Oracle. Как видно на скриншоте, я зашел в Enterprise Manager по логином Mazzy. Вы можете войти в Enterprise Manager под учетной записью SYSTEM используя роль SYSDBA.

Создаем табличное пространство AXTN размером в мегабайт 500.

Указываем, что будем использовать простой log.

Обратите внимание на размер блока. По умолчанию он равен 4096. В книге Setting Up Oracle 8.doc говорится, что необходимо использовать блок размером 8К. Однако изменение размера блока требует дополнительной настройки Oracle. Поэтому, исходя из требований простоты инструкции, я оставил 4К. У меня Аксапта работала, однако будьте осторожны с этим параметром в "боевой" версии.

Создаем пользователя bmssa с паролем по-умолчанию bmssa_pwd.

Комментарий:
не используйте пользователя bmssa в "боевой" базе. Измените пользователя и/или пароль.

Укажите табличное пространство, которое вы создали. Я использовал AXTN.

Укажите роли, которые исполняет пользователь. В руководстве по установке сказано, что надо дать хотя бы Connect и Resource. Я рекомендую дать еще и OLAP_DBA и DBA для опытов.

Все остальное я оставил без изменений.

На этом подготовка Oracle закончена.

 

Подготовка ODBC

Создаем новое system DSN в ODBC.

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

 

Подготовка Axapta

Настраиваем, как обычно, параметры запуска в конфигурационной утилите. См. файл axinsus.chm в каталоге bin Аксапты.

Запускаем Аксапту, регистрируемся, как обычно, под пользователем Аксапты admin. Аксапта предлагает с помощью мастера проинициализировать базу.

Вот здесь основная хитрость: отменяем мастера кнопкой ESC. Похоже, что в мастере есть ошибка при установке tablespace под Oracle. По крайней мере, мне так и не удалось запустить Аксапту 2.5 на Oracle при помощи мастера. В Аксапте 3.0 с этим попроще.

Итак, отменяем мастера и попадаем в главное меню Аксапты.

Если вы не компилировали свое приложение раньше, то стоит откомпилировать его сейчас. Заходим в пункт закладку Администрирование. Дальше в Переход к новой версии и Глобальная компиляция.

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

Следующий шаг - определить табличные пространства (tablespace) для таблиц Аксапты. Для этого заходим в закладку Администрирование, пункт База данных, пункт SQL администрирование.

Обратите внимание, что по сравнению с MS SQL версией, здесь появились новые кнопки. Пока не обращаем на них внимания.

Устанавливаем курсор в на элемент "Все таблицы" и нажимаем кнопку "Настройка хранилища"

Указываем табличное пространство и приращение в процентах. Сохраняем.

Повторяем действие для элемента "Все индексы".

Комментарий:
Обратите внимание, что для каждой таблицы и для каждого индекса можно указывать свой tablespace.

Еще раз повторюсь, что данная установка является неоптимальной. В "боевой" базе надо хорошо взвесить и продумать распределение таблиц по табличным пространствам.

Рекомендую перегрузить Аксапту.

 

Действия при первом запуске

Проинициализируйте параметры компании DAT. Для этого зайдите в закладку администрирование. Пункт Компании, пункт Компании. Нажмите на кнопку "инициализировать параметры".

Введите лицензии, компании и пользователей как обычно.

 

Все. Работаем

Теперь можно заниматься тестированием Аксапты.

 

Полезные ссылки

[1] Setting up Axapta to run on a default Oracle 8.1.7 database
Ответ о установке Аксапты на Oracle. Это единственное место, где упоминаются AXTAB и AXIDX.

[2] Navision Axapta on Oracle 9i RAC
В документе приводятся результаты тестирования Аксапты на Oracle 9i, которое проводилось в Navision.

[3] Indexed strings monocased in Oracle
Ответ на вопрос "Есть ли какое либо решение проблемы маленьких букв в Oracle?". Вот сам ответ:

The ShadowField $userField used in XAL was discarded for Axapta due to the Axapta SQL dialect supporting GROUP BY and AGGREGATES naturally. GROUP BY and AGGREGATES was indirectly supported in XAL through the SQL Macroes.

If you create a ShadowField of an user field and index this in stead of the user field, then you will want to do your GROUP BY on the indexed field and not on the user field. But then you cannot include the user-field in your field list unless you aggregate on the user field. And by nature GROUP BY Index Covered queries will be impossible.

To make sure the application was aware of this, it was left to the application to handle this.

We are very well aware of the disadvantages of this and is currently investigating the use of Oracle Functional Indexes (more or less INDEX( NLS_UPPER( userField ) ), which should remove most of the disadvantages.

regards
jkj

[4] Раздел Oracle on technet.navision.com
Прямая ссылка на раздел Oracle на technet. Здесь собраны вопросы и ответы по Oracle.

[5] Oracle 9i certified for Axapta 2.5*
Oracle 9i сертифицирован для Navision Axapta 2.5 SP2 с хотфиксом HF25_547. Хотфикс можно взять через Partner Guide. Axapta 2.5 SP3 будет содержать этот хотфикс.

[6] Axapta 2.5 has been certified to run with Oracle 8.1.7*
А это текст о серификации под Oracle 8.1.7 и о изменениях, которые необходимы для того, чтобы Аксапта заработала под этой версией.

Скрипт для создания базы от Михаила Андреева

Недавно я получил письмо от Михаила Андреева. Процитирую письмо почти полностью.

1. В свое время написал скрипт по созданию всего, что надо для Аксапты в Оракле, может, пригодится ;) (See attached file: AXDB.SQL) правда, там права bmssa слишком велики (dba) , но это непринципиально.

2. Табличные пространства будут работать нормально только, если они указаны по умолчанию (в скрипте посмотри последние команды). Скорее всего, у тебя поэтому и не получалось.

3. Размер кластера. Нужно заострить внимание. Аксапта использует часть индексов кластерных, а для них принципиально, чтобы одна строка помещалась в кластер целиком. Изначально размер кластера 4К нестрашен, но может
возникнуть проблема добавления поля в таблицу... У нас в Крохе возникла :) Кстати, у работающей базы поменять размер кластера нетривиально....

4. Параметры запуска в конфигурационной утилите отличаются параметром "Array fetch ahead", он должен быть равен 1. Где-то на технете об этом был треп...

Михаил, спасибо. Наверное, действительно, надо было указать табличное пространство по умолчанию. Обязательно проверю.

Насчет размера кластера. Согласен с Михаилом. Даже в руководстве написано, что надо ставить размер 8К. Однако я писал статью на новичков в Oracle (не думаю, что она будет полезна для специалистов). Я сознательно не стал приводить алгоритм изменения размера кластера, поскольку слишком велик риск испоганить работающую базу. Поэтому будьте осторожны, оставьте риск профессионалам :), делайте почаще архивные копии. Для демонстрационных данных вполне достаточно размера по умолчанию.

 

Буду рад Вашим замечаниям и предложениям.
mazzy@mazzy.ru, Мазуркин Сергей