Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];

Вниз

Сборка серверой части приложения на 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.069 c
15-1196090207
oldman
2007-11-26 18:16
2007.12.23
Всегда покупайте девайсы близко от дома!!!


15-1195763722
dFedor
2007-11-22 23:35
2007.12.23
Поделитесь материалами


15-1195852567
Evanescence
2007-11-24 00:16
2007.12.23
как в php-nuke 8 заменить динамические адреса на статические?


2-1196336326
F@T@L_Err0r
2007-11-29 14:38
2007.12.23
TChar


2-1196253710
PASZLIB
2007-11-28 15:41
2007.12.23
Четность числа ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский