Полетела база
Привет FB 1.5 Полетела база. Я ее потоптал mend Сделал backup Пытаюсь восстановить и получаю сообщение Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements. action cancelled by trigger (3) to preserve data integrity. Cannot deactivate primary index. А какой не пишет. Можно это как-то обойти? Дмитрий
��������� ������� - ���������� ��� ���������� ����������?
Hello, All! Хочеться узнать мнения и ощущения уважаемой общественности по такому вопросу: Необходим некоторый механизм, который выдает уникальные номера, но настраивается на стороне пользователя - т.е. во время работы с базой (например раздельные последовательности номеров по структурным подразделениям, которые могут появляться, удаляться). Самый первый, классический, вариант - генераторы, но их нужно будет создавать на лету, т.е. DDL на рабочей базе (нагенерить 9000 генераторов загодя можно, но как-то не изящно :). Второй, спасибо 2.5, таблица с номерами, и ее использование в автономных транзакциях (уменьшение вероятности конфликтов для длинных транзакций). Собсно вопрос, что вам кажется более кривым? Насколько опасно создание/дроп генераторов на работающей базе? ЗЫ Дырки в нумерации и т.п. моветон можно опустить :) -- -=Продавец Евросети продал дьяволу душу. И чехольчик.=- With best regards, Nikolay Ponomarenko
RE: Генерация номеров - генераторы или автономная транзакция?
Самый первый, классический, вариант - генераторы, но их нужно будет создавать на лету, т.е. DDL на рабочей базе (нагенерить 9000 генераторов загодя можно, но как-то не изящно :). В FB начиная с версии 2.1 можно в процедуре склеить имя генератора на основании параметров, проверить его наличие и сгенерировать DDL запрос на его создание если его нет или запрос на получение ID С уважением, Мещеряков Вадим директор ООО Комплексные Системы 454021 г. Челябинск ул. 40 лет Победы 31, 77 Тел: +7 (351) 2807917 Моб: +7 922 6395170 Web: www.del-fin.ru ICQ: 343-554-572 SKYPE: vadimmescheryakov
Re: ��������� ������� - ���������� ��� ���������� ����������?
Hello, Vadim! You wrote on Thu, 24 Feb 2011 14:11:15 +0500: Самый первый, классический, вариант - генераторы, но их нужно будет создавать на лету, т.е. DDL на рабочей базе (нагенерить 9000 генераторов загодя можно, но как-то не изящно :). VM В FB начиная с версии 2.1 можно в процедуре склеить имя генератора на VM основании параметров, проверить его наличие и сгенерировать DDL запрос VM на его создание если его нет или запрос на получение ID Да, как раз про это я и писал: но их нужно будет создавать на лету, Собсно на лету меня немного и смущает, на загруженной-то базе. -- -=Большинство пищевых отравлений начинается со слов: Да хуле ему в холодильнике будет!?=- With best regards, Nikolay Ponomarenko
RE: Генерация номеров - генераторы или автономная транзакция?
Собсно на лету меня немного и смущает, на загруженной-то базе. Все работает норм. Конечно новые генераторы не создаются с той же частотой что и документы вводятся, Но по каждому виду дока, по каждому субъекту хозяйствования, раз в месяц создаются (нумерация в пределах месяца). Работает. С уважением, Мещеряков Вадим директор ООО Комплексные Системы 454021 г. Челябинск ул. 40 лет Победы 31, 77 Тел: +7 (351) 2807917 Моб: +7 922 6395170 Web: www.del-fin.ru ICQ: 343-554-572 SKYPE: vadimmescheryakov
Re: Генерация номеров - генераторы или автономная транзакция?
24.02.2011 12:30, Vadim Mescheryakov пишет: Все работает норм. Конечно новые генераторы не создаются с той же частотой что и документы вводятся, Но по каждому виду дока, по каждому субъекту хозяйствования, раз в месяц создаются (нумерация в пределах месяца). Работает. После создания 32К генераторов система может встать, там внутренний ID - SMALLINT. И бекап-рестор не поможет, IIRC. -- Дмитрий Еманов
RE: Генерация номеров - генераторы или автономная транзакция?
После создания 32К генераторов система может встать, там внутренний ID - SMALLINT. И бекап-рестор не поможет, IIRC. Лет на 40 хватит :) С уважением, Мещеряков Вадим директор ООО Комплексные Системы 454021 г. Челябинск ул. 40 лет Победы 31, 77 Тел: +7 (351) 2807917 Моб: +7 922 6395170 Web: www.del-fin.ru ICQ: 343-554-572 SKYPE: vadimmescheryakov
Re: Полетела база
Когда у меня была похожая беда, я восстанавливал базу, не активируя индексы. Потом ковырялся в таблицах (у меня оказался дубль в поле, по которому построен primary), а потом ручками (скриптом) активировал индексы. Dmitry Lendel сообщил/сообщила в новостях следующее: Привет FB 1.5 Полетела база. Я ее потоптал mend Сделал backup Пытаюсь восстановить и получаю сообщение Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements. action cancelled by trigger (3) to preserve data integrity. Cannot deactivate primary index. А какой не пишет. Можно это как-то обойти? Дмитрий
Re: Полетела база
Тут вообще тоска зеленая. Можно было бы восстановить без индексов, но в процедурах прописан план руками. Кстати, дает удалить индекс, не смотря на это в обычной базе. Так должно быть? И не понятно из сообщения, что именно плохо. 256 таблиц 75 ХП, и хрен знает, сколько триггеров. Мне крышу сорвет в поисках истины. Я сделаю так, что прибью все планы в ХП, а потом увижу, что выйдет. Дмитрий Valery Gruzdev сообщил(а) в новостях следующее:ik5hp1$2uj$1...@dough.gmane.org... Когда у меня была похожая беда, я восстанавливал базу, не активируя индексы. Потом ковырялся в таблицах (у меня оказался дубль в поле, по которому построен primary), а потом ручками (скриптом) активировал индексы. Dmitry Lendel сообщил/сообщила в новостях следующее: Привет FB 1.5 Полетела база. Я ее потоптал mend Сделал backup Пытаюсь восстановить и получаю сообщение Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements. action cancelled by trigger (3) to preserve data integrity. Cannot deactivate primary index. А какой не пишет. Можно это как-то обойти? Дмитрий
Firebird TCP/IP протокол и Don`t fragment флаг
Наткнулся тут на шизу, что клиентское приложение не может подключится к Firebird через VPN, в котором поломано управление MTU. Т.е. Firebird шлет пакеты максимального размера, в которых, к тому же, установлен флаг Don`t fragment, по дороге они натыкаются на какой-то глючный узел, который вместо того, чтобы ответить ICMP fragmentation needed, молча их дропает. В результате подключение к FB зависает на первом же достаточно длинном пакете. Можно ли узнать, зачем установлен этот флаг, и можно ли как-то обойти эту проблему? Знаю только пару методов, типа поставить на винде MTU поменьше или завернуть коннект в туннель, использующий для транспорта мелкие пакеты.
Re: Firebird TCP/IP протокол и Don`t fragment флаг
Yurij ... Наткнулся тут на шизу, что клиентское приложение не может подключится к Firebird через VPN, в котором поломано управление MTU. Т.е. Firebird шлет пакеты максимального размера, в которых, к тому же, установлен флаг Don`t fragment, по дороге они натыкаются на какой-то глючный узел, который вместо того, чтобы ответить ICMP fragmentation needed, молча их дропает. В результате подключение к FB зависает на первом же достаточно длинном пакете. Можно ли узнать, зачем установлен этот флаг, и можно ли как-то обойти эту проблему? Firebird не управляет и не может управлять этими флагами. -- Хорсун Влад
Re: Firebird TCP/IP протокол и Don`t fragment флаг
On Feb 24, 9:28 pm, Yurij yurij.vladimirov...@gmail.com wrote: Знаю только пару методов, типа поставить на винде MTU поменьше или завернуть коннект в туннель, использующий для транспорта мелкие пакеты. Нашел еще одно возможное решение, оказывается у проблемы даже название есть: PMTUD Black Hole http://technet.microsoft.com/en-us/library/cc958871.aspx
Re: Полетела база
Можно было бы восстановить без индексов, но в процедурах прописан план руками. А в чем криминал? Я так понимаю, что если индексы есть, но неактивированы, то ошибка выдастся при попытке выполнения процедуры, а рестор должен пройти...
Re: Firebird TCP/IP протокол и Don`t fragment флаг
On Feb 24, 9:59 pm, Vlad Khorsun hv...@optima.com.ua wrote: Firebird не управляет и не может управлять этими флагами. Да, судя по всему, TCP стек пытается PMTUD использовать. Тогда второй вопрос: чем чревата установка TcpRemoteBufferSize = 1448 в конфиге? И с чем связано нижнее ограничение в 1448 на этот параметр? Судя по логу, оно в таком случае шлет пакеты уменьшенного размера, которые, скорее всего, пройдут через затык в сети. Но насколько это костыль и чем он чреват?
Re: Firebird TCP/IP протокол и Don`t fragment флаг
On Feb 24, 9:59 pm, Vlad Khorsun wrote: Firebird не управляет и не может управлять этими флагами. Да, судя по всему, TCP стек пытается PMTUD использовать. Тогда второй вопрос: чем чревата установка TcpRemoteBufferSize = 1448 в конфиге? Дополнительными roundtrip'ами и снижением производительности сетевого протокола. И с чем связано нижнее ограничение в 1448 на этот параметр? Думаю что-то древне-историческое. Не проверял никогда. Может у какого-либо из ныне мёртвых транспортных протоколов было такое ограничение снизу. Судя по логу, оно в таком случае шлет пакеты уменьшенного размера, которые, скорее всего, пройдут через затык в сети. Но насколько это костыль и чем он чреват? Думаю проверить это можно только экспериментально... -- Хорсун Влад