Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Проблема апгрейда БД.  [new]
PeterSV
Member

Откуда: Minsk
Сообщений: 174
Мы выполняем апгрейд БД вместе с приложением.
Для апгрейда пишем скрипты. Получается один файл со скриптами. Там есть создание таблиц, FK и т.д. Этот скрипт запускается на БД клиента. Вопрос: можно ли весь этот скрипт откатить вслучае ошибки или нет? А то неясно что делать дальше, если выполнилась часть скрипта.
27 апр 06, 13:23    [2609357]     Ответить | Цитировать Сообщить модератору
 Re: Проблема апгрейда БД.  [new]
DВА
Member

Откуда:
Сообщений: 5439
PeterSV
Вопрос: можно ли весь этот скрипт откатить вслучае ошибки или нет? А то неясно что делать дальше, если выполнилась часть скрипта.


restore database
recover database until time
:)
в десятке можно еще flachback database
27 апр 06, 13:26    [2609386]     Ответить | Цитировать Сообщить модератору
 Re: Проблема апгрейда БД.  [new]
rgarif
Member

Откуда: Казань
Сообщений: 108
лучше в скрипт перед каждым CREATE вставить DROP...
тогда повторный запуск скрипта не навредит (не даст ошибок вроде "невозжно создать абьект потумучто он уже есть")
27 апр 06, 13:29    [2609408]     Ответить | Цитировать Сообщить модератору
 Re: Проблема апгрейда БД.  [new]
PeterSV
Member

Откуда: Minsk
Сообщений: 174
У меня все же не получилось дописать как-то скрипт что бы он откатился в случае ошибки сам, без каких-либо восстановлений из бакапа. Можите помочь с примером кода. Допустим я хочу что бы не создалась ниодна sequence в случае ошибки, что дописать в код?
create sequence WAREHOUSE_SEQUENCE INCREMENT BY 1 START WITH 1 MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE CACHE 20 NOORDER;
create sequence ACT_SEQUENCE INCREMENT BY 1 START WITH 1 MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE CACHE 20 NOORDER;
28 апр 06, 11:25    [2613159]     Ответить | Цитировать Сообщить модератору
 Re: Проблема апгрейда БД.  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
Сам скрипт откатываться не будет, т.к. любой оператор DDL заканчивается неявным COMMIT
28 апр 06, 11:51    [2613361]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить