Форум: "Прочее";
Текущий архив: 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.04 c