Страница 1 из 2
Пропажа данных после restore.
Добавлено: 23 ноя 2004, 14:29
_so_
IB 7.1 sp2.
Иногда после restore базы, в одной из таблиц пропадают данные в одной колонок VarChar(30).
Раньше не было такого замечено.
Стало наблюдаться после-того как в таблицу добавил computed by поля.
На других таблицах вроде этого не происходит.
Может кто-то с этим сталкивался?
Re: Пропажа данных после restore.
Добавлено: 15 дек 2004, 12:10
Гость
А при ресторе ругани никакой нету?
Добавлено: 16 дек 2004, 18:05
_so_
Нет. Тут возникла идея. Возможно ошибка происходит когда конект происходит без сетки. Сегодня пробовал через localhost все нормально. Но точно не уверен.
Добавлено: 01 мар 2005, 16:31
_so_
Проблема с IB вроде пропала. А вот с FB она повторилась и не помог localhost FB (1.5.1.4481).
Данные пропадают в тех таблицах, где есть computed by поля типа blob причем во всех, а не в одной как было в IB.
Добавлено: 01 мар 2005, 16:32
kdv
computed by blob??? это сильно. я думаю, что хоть и парсер допускает такое, но вообще бы неплохо запретить. приведи-ка примерчик?
Добавлено: 02 мар 2005, 12:33
_so_
Причем здесь парсер. Вообще-то все рабоает. Проблема имена с restore. Все селекты работают изумительно кроме небольших утечек памяти в IB7.1 sp2. Так как на колонку выполняется хранимая процедура.
Пример трудно объяснить. Например удобно в одну колонку собирать информацию из других таблиц связаных с главной. Можно было бы строкой, но информации может быть много.
Другой пример. Изначально был блоб содержащий информацию. Потом этот блоб разнесли в другую таблицу (один ко многим). Но для совместимости работы старого кода сделали copued by атрибут. Все красиво работает.
Добавлено: 02 мар 2005, 12:35
_so_
И вообще это предположение. Так как точно неизвестно. Но всетаки хотелось бы разобраться почему опреция buckup-restore приводит к потере данных.
Добавлено: 04 мар 2005, 12:13
_so_
Модет все таки кто нибудь ответит про пропажу данных в FB. При каких случаях это происходит и так далее. А то при buckup и restore никаких ошибок нет, а данные пропадают. Это вообщето не хорошо. При больших размерах БД и количестве таблиц можно не отследить сразу что пропало. Отсюда вывод FB использовать вообще нельзя.
Добавлено: 04 мар 2005, 13:20
dimitr
А нечего отвечать. Ни у кого не было пропажи данных после рестора. Это абсолютно ненормально. Но диагноз по твоему стуку в подвале поставить невозможно.
Добавлено: 04 мар 2005, 15:10
kdv
computed by столбцы вообще то не хранятся. поэтому там и пропадать-то нечему. нужно проверять данные исходные, а с ними, думаю, все абсолютно в порядке. И уже потом сочинить воспроизводимый тест, который будет показывать "пропадание" "данных" в computed by столбцах.
Добавлено: 04 мар 2005, 16:08
_so_
По вашему я совсем. Данные пропадают в нормальгых колонках. Например типа VarChar(30). А про computed by я писал, что в этих таблицах он используется. Читать нужно внимательнее.
Добавлено: 04 мар 2005, 16:36
kdv
тогда - что за данные пропадают, в каком количестве? ковыряли-ли ранее размер этого столбца (сколько записей в rdb$formats в исходной базе для этой таблицы?)?
напрягись, дай нам какой-нибудь намек на воспроизводимость данной ситуации.
Добавлено: 05 мар 2005, 12:09
_so_
Я понимаю, что сложно. Но послать базу в 4 гига это сложно.
Вот описание таблицы в которой пропадют данные.
Код: Выделить всё
CREATE DOMAIN BIN AS BLOB SUB_TYPE 0 SEGMENT SIZE 80;
CREATE DOMAIN BOOL AS SMALLINT;
CREATE DOMAIN GUID AS INTEGER;
CREATE DOMAIN IQTY AS INTEGER;
CREATE DOMAIN SDATE AS TIMESTAMP;
CREATE DOMAIN SNAME AS VARCHAR(30) CHARACTER SET WIN1251 COLLATE PXW_CYRL;
/* Table: FOLDERS, Owner: SYSDBA */
CREATE TABLE FOLDERS
(
ID GUID NOT NULL,
CLASSID GUID,
SENIORID GUID,
NAME SNAME,
ORD IQTY,
LASTCHANGE SDATE,
VALUECLASS GUID,
ASQL BIN,
COND BIN,
CONDINT BIN,
EXTINFO BIN,
PROPS BIN,
READONLY BOOL,
GROUPIDX IQTY,
ASQL2 BIN,
COND2 BIN,
HELPCTX IQTY,
OWNER COMPUTED BY ((select REFS from GetRefObjects(Folders.ID, 41122, 25))),
OWNERWR COMPUTED BY ((select REFS from GetRefObjects(Folders.ID, 41129, 25))),
PRIMARY KEY (ID)
);
SET TERM ^ ;
Пропадают значения в колонке Name (После restrore становятся пустые)
Добавлено: 05 мар 2005, 13:34
kdv
а если взять метаданные (gbak -m) , и хоть чуть данных налить? ситуация воспроизводится?
а где тут блобы computed by? я тут в computed by вижу нерекомендуемый селект, да еще из процедуры.
Добавлено: 05 мар 2005, 14:07
_so_
Вот как раз хранимая процедура и возвращает blob.
Попробую.
Добавлено: 05 апр 2005, 16:06
_so_
Появилось время.
Да сделал gbak -m и встаивил данные только в 2 таблицы.
Ситуация воспроизовдится. Ошибок никаких нет. При этом в быкапе базы данные похоже есть.
Могу передать архивы:
Начальной базы 1 Mb
backup базы: 200 Kb
Начальная + backup + конечная: 2.2 Мб.
Добавлено: 05 апр 2005, 17:05
kdv
запакуй все в rar, потом на support сообщи размер файла. скажу, слать или нет

только прицепи в txt или тексте письма описание проблемы.
Добавлено: 05 апр 2005, 17:45
_so_
Так что слать?
Я же написал:
Могу передать архивы:
1. Начальной базы 1 Mb
2. backup базы: 200 Kb
3. Начальная + backup + конечная: 2.2 Мб.
Добавлено: 05 апр 2005, 19:18
kdv
блин, я не прошу все это вместе в виде отдельно трех штук. если конечный размер ВСЕХ файлов запакованных в архив rar-ом 2.2 мега (или меньше), то шли мне. адрес, как бы, не секрет. на support не надо, люди ругаться будут.
а вообще достаточно исходной базы.
Добавлено: 05 апр 2005, 21:06
dimitr
Дим, не забудь поделиться результатом
