Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
 Re: Невозможно восстановление БД  [new]
bsa1959
Member

Откуда: Минск
Сообщений: 151
Vlad F
.

Кстати - это все случилось из-за одной процедуры, которая считает количество общих дней в двух периодах.Раньше она возвращала только количество дней. Потом я ее поменял - она стала возвращать количество дней и период пересечения.
+
create or alter procedure HASDAYS (
S1 date,
E1 date,
S2 date,
E2 date)
returns (
R integer,
SDATE date,
EDATE date)
as
begin
edate = mindate(e1,e2);
sdate = maxdate(s1,s2);
r = edate-sdate;
if(r >= 0) then
r = r+1;
else
begin
r = 0;
edate = NULL;
sdate = NULL;
end
suspend;
end^

SET TERM ; ^
5 апр 19, 10:27    [21853641]     Ответить | Цитировать Сообщить модератору
 Re: Невозможно восстановление БД  [new]
bsa1959
Member

Откуда: Минск
Сообщений: 151
Vlad F,
А в вызывающих процедурах было
select * from hasdays(............)
5 апр 19, 10:35    [21853654]     Ответить | Цитировать Сообщить модератору
 Re: Невозможно восстановление БД  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9388
bsa1959,

сам виноват. Никогда не применяй * во вьюхах и PSQL коде, кроме COUNT(*) или EXISTS(SELECT * ...)
Да и в самом приложении тоже не желательно
5 апр 19, 10:39    [21853660]     Ответить | Цитировать Сообщить модератору
 Re: Невозможно восстановление БД  [new]
bsa1959
Member

Откуда: Минск
Сообщений: 151
Симонов Денис
bsa1959,
сам виноват. Никогда не применяй * во вьюхах и PSQL коде, кроме COUNT(*) или EXISTS(SELECT * ...)
Да и в самом приложении тоже не желательно

Виноват - железно.
Я просто показал пример для воспроизведения ситуации. А ситуации могут быть разные.
И если после этого невозможно восстановиться - может быть полный пипец.
5 апр 19, 10:49    [21853678]     Ответить | Цитировать Сообщить модератору
 Re: Невозможно восстановление БД  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9388
bsa1959,

ну вообще IB Expert вроде как предупреждение даёт, которое ты проигнорировал.
Конечно хорошо бы сам Firebird что-то делал, но пока вот так.
Надо быть аккуратней, использовать хорошие практики, и смотреть что тебе пишет среда разработки.
5 апр 19, 11:07    [21853707]     Ответить | Цитировать Сообщить модератору
 Re: Невозможно восстановление БД  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 27910
bsa1959
Я просто показал пример для воспроизведения ситуации

эта "ситуация" известна и описана много лет назад.
5 апр 19, 11:15    [21853719]     Ответить | Цитировать Сообщить модератору
 Re: Невозможно восстановление БД  [new]
bsa1959
Member

Откуда: Минск
Сообщений: 151
Ну уже посыпал свою голову пеплом.....
Что ВЫ клюете и клюете....?
Процедуры, вызывающие эту, написаны год назад в самом начале реализации проекта и сейчас никакой ценности не представляют....
Вопрос же в другом.
5 апр 19, 11:58    [21853805]     Ответить | Цитировать Сообщить модератору
 Re: Невозможно восстановление БД  [new]
bsa1959
Member

Откуда: Минск
Сообщений: 151
Я так понял - перед тем как делать копию. Пользуясь IBExpert
1. Обязательно произвести перекомпиляцию всех процедур. Исправить ошибки
2.Запустить проверку БД. Кстати - какую(имея ввиду IBExpert)
Еще что-нибудь нужно сделать?
5 апр 19, 13:28    [21853974]     Ответить | Цитировать Сообщить модератору
 Re: Невозможно восстановление БД  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47264

Наоборот. Копию надо делать перед накатыванием на базу скрипта обновления
структуры. Вне зависимости от того каким инструментом этот скрипт накатывается.

Posted via ActualForum NNTP Server 1.5

5 апр 19, 13:33    [21853984]     Ответить | Цитировать Сообщить модератору
 Re: Невозможно восстановление БД  [new]
bsa1959
Member

Откуда: Минск
Сообщений: 151
Dimitry Sibiryakov
Наоборот. Копию надо делать перед накатыванием на базу скрипта обновления
структуры. Вне зависимости от того каким инструментом этот скрипт накатывается.

Не понял.... Или Вы не поняли.
Разговор шел о том как правильно сделать копию БД НЕ В ПРОДАКШЕНЕ. В которой может быть ошибок как собак нерезаных......Для себя.
Для продакшена у меня все сделано. 8 лет работает(три раза плюнул через левое плечо)......
5 апр 19, 13:44    [21853997]     Ответить | Цитировать Сообщить модератору
 Re: Невозможно восстановление БД  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47264

Процедуры ничем не отличаются. Более того, они не должны отличаться для раннего
обнаружения ошибок в скрипте обновления.

Posted via ActualForum NNTP Server 1.5

5 апр 19, 13:48    [21854005]     Ответить | Цитировать Сообщить модератору
 Re: Невозможно восстановление БД  [new]
bsa1959
Member

Откуда: Минск
Сообщений: 151
Короче. Поехал в командировку на неделю по другому проекту. Дали там бубук и доступ к серваку.
Нудно все было. Решил вечерами поработать над новым проектом. На флешке была копия БД нового проекта. И отлетел - как от стенки........
5 апр 19, 13:52    [21854010]     Ответить | Цитировать Сообщить модератору
 Re: Невозможно восстановление БД  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 27910
bsa1959
В которой может быть ошибок как собак нерезаных......Для себя.

сохраняешь скрипт (isql -x) и nbackup -b 0 ...
Если базу вдруг поразит молния, и копия будет такая же кривая - есть скрипт, из которого базу можно легко воссоздать. А если скрипт кривой, так его можно отредактировать.

Собственно, если надо проверить "восстановимость" метаданных, то это быстро делается gbak -b -g -m ... gbak -c. Ну или gbak -b -g ... gbak -c -m.
5 апр 19, 13:57    [21854016]     Ответить | Цитировать Сообщить модератору
 Re: Невозможно восстановление БД  [new]
bsa1959
Member

Откуда: Минск
Сообщений: 151
Блин....
Мне страшно важны и данные.... Даже прежде всего.....
В этой базе есть старая база по-таблично(импортированая из DBF ) и моя новая...
5 апр 19, 14:01    [21854025]     Ответить | Цитировать Сообщить модератору
 Re: Невозможно восстановление БД  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 27910
bsa1959,

тогда делай копии на cloud.mail.ru, ЯД, гуглодиск, и так далее.

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

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

Всё это относится не только к разработке и продакшну, но и к случаям повреждения БД из-за сбоев. Резервное копирование - оно такое, либо делается правильно, либо не делается (потому что не делается или потому что неправильное).
5 апр 19, 14:04    [21854028]     Ответить | Цитировать Сообщить модератору
 Re: Невозможно восстановление БД  [new]
bsa1959
Member

Откуда: Минск
Сообщений: 151
Завяжем этот разговор.
Выводы.
1.Firebird не может восстановить базу из dump, если в нем есть невалидные объекты.
2.Но dump такой базы он делает.
5 апр 19, 14:11    [21854039]     Ответить | Цитировать Сообщить модератору
 Re: Невозможно восстановление БД  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29780

у Firebird'а нет невалидных объектов.

Posted via ActualForum NNTP Server 1.5

5 апр 19, 15:26    [21854135]     Ответить | Цитировать Сообщить модератору
 Re: Невозможно восстановление БД  [new]
bsa1959
Member

Откуда: Минск
Сообщений: 151
Мимопроходящий
у Firebird'а нет невалидных объектов.

Птички нет? Ее нужно обязательно ввести. Это только мое мнение.
Закрываем тикет.....
5 апр 19, 16:21    [21854231]     Ответить | Цитировать Сообщить модератору
 Re: Невозможно восстановление БД  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9388
bsa1959,

из всех существующих СУБД статус инвалидов есть только у Оракула.
У остальных невалидные объекты есть, а статуса нет.
Птичка хотя бы старается предотвратить создание невалидных объектов, но иногда они всё таки появляются.
5 апр 19, 17:32    [21854302]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
Все форумы / Firebird, InterBase Ответить