Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.23;
Скачать: CL | DM;

Вниз

Сборка серверой части приложения на Oracle   Найти похожие ветки 

 
alsov ©   (2007-11-22 16:58) [0]

Приветствую, Мастера

Мучает такой вопрос: Как лучше организовать сборку и версионность серверной части БД?

Из исходных данных имеем заполненую развернутую БД.

Есть несколько вариантов:
Первый способ: Использовать утилиты exp/imp
Скрипт инсталяции состоит из шагов:
1. Создание необходимых тейблспейсов и схем
2. Развернуть дамп с помощью утилиты imp
3. Перекомпилировать все вьюхи, процедуры и пакеты.

Для создания новой версии надо:
1. Сделать дамп базы с помощью утилиты exp
2. Вытащить исходные тексты пакетов и заврапить их.
3. Развернуть дамп с помощью скрипта инсталяции на временные сервер
4. Накатить на временный сервер заврапленые процедуры и пакеты.
5. Поднять версию базы.
6. Сделать дамп с временного сервера с помощью утилиты exp и прекрипить его к скрипту инсталяции.
7. Скрипт инстяляции забекапить и пометить как очередную версию в системе контроля версий.

Второй способ: Все собирать скриптами. Данные загружать с помощью sqlldr.
Скрипт создания примерно такой:
1. тейблспейсы
2. схемы
3. таблицы
4. сиквенсы
5. загрузка данных
6. констрейны и индексы
7. вьюхи, процедуры и пакеты

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

База будет собираться довольно часто. Причем будет весьтись учет версий базы. Возможно вместе с базой будет собираться клиентское приложение.
Хотелось бы как можно больше автоматизтровать процесс.

Какой вариант на ваш взгляд приемлимее и менее трудозатратен по реализации. Хотелось бы чтобы поделились опытом как это сделано у вас.

Всем заранее спасибо за ответы


 
Reindeer Moss Eater ©   (2007-11-22 17:06) [1]

скриптами красивше.
а версионность и выгрузку изменений заменить теми же скриптами.
причем образцовую бд модифицировать ими же, а не мышкой.


 
Reindeer Moss Eater ©   (2007-11-22 17:09) [2]

а если есть объектные типы и таблицы на основе их, то exp вообще может обломаться.


 
Правильный_Вася   (2007-11-22 17:18) [3]

скрипты

вот только не понял, бд необновляемая пользователем, что ли? нафига тогда оракл?


 
alsov ©   (2007-11-22 17:53) [4]


> Правильный_Вася   (22.11.07 17:18) [3]
> вот только не понял, бд необновляемая пользователем, что
> ли? нафига тогда оракл?


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


> Reindeer Moss Eater ©   (22.11.07 17:06) [1]
> скриптами красивше.
> а версионность и выгрузку изменений заменить теми же скриптами.
>
> причем образцовую бд модифицировать ими же, а не мышкой.

А нет ли каких-нибудь примеров?


> а если есть объектные типы и таблицы на основе их, то exp
> вообще может обломаться.

Нету


 
Правильный_Вася   (2007-11-22 18:09) [5]


> Это сервер разработчиков. Они правят там все.У конечных
> пользователей доступа нету.Есть необходимый набор данных,
>  который обновляется

опять не понял
нужно разворачивать на сервере разрабов?


 
alsov ©   (2007-11-22 18:13) [6]


> Правильный_Вася   (22.11.07 18:09) [5]


Да. Чтобы можно развернуть базу любой версии.

В последствии винальную версия отойдет заказчику, он развернет у себя.
Дальнейшее обновление у заказчика планируется накатом патчей.


 
Petr V. Abramov ©   (2007-11-22 18:31) [7]

> alsov ©   (22.11.07 18:13) [6]
когда будешь отдавать заказчику, скипты на создание tablespace`ов должны запрашивать имена файлов.
в дальнейшем учитвывай, что на следующий день таблицы будут раскиданы по tablespace`ам совсем не таким образом, как ты их заливал.


 
alsov ©   (2007-11-22 18:34) [8]


> Petr V. Abramov ©   (22.11.07 18:31) [7]
>
> > alsov ©   (22.11.07 18:13) [6]
> когда будешь отдавать заказчику, скипты на создание tablespace`ов
> должны запрашивать имена файлов.


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


> что на следующий день таблицы будут раскиданы по tablespace`ам
> совсем не таким образом, как ты их заливал.

Почему? Админ нарулит?


 
Petr V. Abramov ©   (2007-11-22 18:39) [9]

> alsov ©   (22.11.07 18:34) [8]
> Почему? Админ нарулит?

имеет полное право, и нарулить может совсем не сдуру, например, сбалансирует реальную нагрузку на диски ( а не ту, которую Вы предполагали у себя в офисе)


 
Reindeer Moss Eater ©   (2007-11-22 23:54) [10]

> причем образцовую бд модифицировать ими же, а не мышкой.

А нет ли каких-нибудь примеров?


Каких еще примеров?
Принцип прост. Вздумалось внести изменения в модель данных - отложи в сторону мышку, напиши скрипт и сохрани его в файл. БД разработчиков и пользователей модифицируй этим скриптом. Вот и все.


 
alsov ©   (2007-11-23 09:44) [11]


> Reindeer Moss Eater ©   (22.11.07 23:54) [10]
> Каких еще примеров?


Примеров скриптов создания базы. Пример структуры. По возможности батник.


> Принцип прост. Вздумалось внести изменения в модель данных
> - отложи в сторону мышку, напиши скрипт и сохрани его в
> файл. БД разработчиков и пользователей модифицируй этим
> скриптом. Вот и все.

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


 
Reindeer Moss Eater ©   (2007-11-23 10:01) [12]

Много? И чего?
Процессор пожалел? Так он не устанет.

Примеров скриптов создания базы.
Это-то зачем? Оракл это же не MSSQL.

Пример структуры.
Структуры чего? Таблицы?
Странный вопрос.

По возможности батник.

set NLS_LANG=RUSSIAN_CIS.RU8PC866
sqlplus scott/tiger@myserver.mycompany.ru @myddlscript.sql


 
Reindeer Moss Eater ©   (2007-11-23 10:04) [13]

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

-- Начало
@@first_script.sql;
@@second_script.sql;
....
@@very_last_script.sql;
--- Конец

Все.


 
alsov ©   (2007-11-23 10:16) [14]


> Reindeer Moss Eater ©   (23.11.07 10:01) [12]
> Пример структуры.
> Структуры чего? Таблицы?
> Странный вопрос.


Наверно мы недопонимаем друг друга.
Я спрашиваю про примеры скриптов выгрузки данных из базы (для sqlldr), про организацию скриптов установки (в каком порядке лучше запускать скрипты).
Например создавать констрейны до загрузки данных или же вместе с таблицами?
Может есть уже готовые реализации структуры скриптов.


> Процессор пожалел? Так он не устанет.

Да не жалко. ИМХО удобнее когда база собираеться 5 минут, а не 30.


> Примеров скриптов создания базы.
> Это-то зачем? Оракл это же не MSSQL.

Тут имел ввиду разворачивание схемы со всеми объектами


 
Reindeer Moss Eater ©   (2007-11-23 10:22) [15]

Берем PL/SQL девелопер и делаем экспорт.
Есть три варианта, один из которых будет готовым скриптом для плюса.

Да не жалко. ИМХО удобнее когда база собираеться 5 минут, а не 30.

Если изменений накопилось на 30 минут, то они и будут накатываться 30 минут. И никакого "волшебства" сделать это быстрее нет.

Тут имел ввиду разворачивание схемы со всеми объектами

Создание схемы это создание юзера и его объектов.
Все делается тем же скриптом для плюса.


 
Reindeer Moss Eater ©   (2007-11-23 10:26) [16]

Например создавать констрейны до загрузки данных или же вместе с таблицами?

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


 
alsov ©   (2007-11-23 10:28) [17]

А как с данными быть? pl/sql developer делает инсерты или с помощью exp.
Хотелось бы sqlldr использовать.


 
Reindeer Moss Eater ©   (2007-11-23 10:31) [18]

девелопер предлагает три варианта.
свой родной девелоперский формат (удобен тем, что блобы тоже импортируются)
скрипт для плюса
родной оракловый файл экспорта


 
Reindeer Moss Eater ©   (2007-11-23 10:33) [19]

последний вариант для imp/exp самого оракла


 
alsov ©   (2007-11-23 10:39) [20]

использование developer при развертывании неприемлимо.

пошел читать Кайта - там по sqlldr много чего есть.

Выбрал второй способ, описаный в шапке



Страницы: 1 вся ветка

Текущий архив: 2007.12.23;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.015 c
15-1195740783
@!!ex
2007-11-22 17:13
2007.12.23
Оцените код.


1-1191589958
Gulba
2007-10-05 17:12
2007.12.23
Небольшая проблема с менеджером загрузки файлов.


2-1196096385
AntonUSAnoV
2007-11-26 19:59
2007.12.23
импорт/экспорт в MS WORD


4-1181046695
nirvan
2007-06-05 16:31
2007.12.23
Считать текст с блокнота


15-1195587731
Черный Шаман
2007-11-20 22:42
2007.12.23
Ах вон он каков русский компьютер...