Полетела база

2011-02-24 Пенетрантность 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.

А какой не пишет. Можно это как-то обойти?
Дмитрий 





��������� ������� - ���������� ��� ���������� ����������?

2011-02-24 Пенетрантность Nikolay Ponomarenko

Hello, All!

Хочеться узнать мнения и ощущения  уважаемой общественности по такому 
вопросу:


Необходим некоторый механизм, который выдает уникальные номера, но 
настраивается на стороне пользователя - т.е. во время работы с базой 
(например раздельные последовательности номеров по структурным 
подразделениям, которые могут появляться, удаляться).


Самый первый, классический, вариант - генераторы, но их нужно будет 
создавать на лету, т.е. DDL на рабочей базе (нагенерить 9000 генераторов 
загодя можно, но как-то не изящно :).


Второй, спасибо 2.5, таблица с номерами, и ее использование в автономных 
транзакциях (уменьшение вероятности конфликтов для длинных транзакций).


Собсно вопрос, что вам кажется более кривым? Насколько опасно создание/дроп 
генераторов на работающей базе?


ЗЫ
Дырки в нумерации и т.п. моветон можно опустить :)

--
-=Продавец Евросети продал дьяволу душу. И чехольчик.=-
With best regards,  Nikolay Ponomarenko 





RE: Генерация номеров - генераторы или автономная транзакция?

2011-02-24 Пенетрантность Vadim Mescheryakov

Самый первый, классический, вариант - генераторы, но их нужно будет 
создавать на лету, т.е. 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: ��������� ������� - ���������� ��� ���������� ����������?

2011-02-24 Пенетрантность Nikolay Ponomarenko

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: Генерация номеров - генераторы или автономная транзакция?

2011-02-24 Пенетрантность Vadim Mescheryakov

Собсно на лету меня немного и смущает, на загруженной-то базе.
Все работает норм. Конечно новые генераторы не создаются с той же частотой
что и документы вводятся,
Но по каждому виду дока, по каждому субъекту хозяйствования, раз в месяц
создаются (нумерация в пределах месяца). 
Работает.


С уважением, Мещеряков Вадим

директор ООО Комплексные Системы 
454021 г. Челябинск ул. 40 лет Победы 31, 77
Тел: +7 (351) 2807917
Моб: +7 922 6395170
Web: www.del-fin.ru
ICQ: 343-554-572
SKYPE: vadimmescheryakov







Re: Генерация номеров - генераторы или автономная транзакция?

2011-02-24 Пенетрантность Dmitry Yemanov

24.02.2011 12:30, Vadim Mescheryakov пишет:


Все работает норм. Конечно новые генераторы не создаются с той же частотой
что и документы вводятся,
Но по каждому виду дока, по каждому субъекту хозяйствования, раз в месяц
создаются (нумерация в пределах месяца).
Работает.


После создания 32К генераторов система может встать, там внутренний ID - 
SMALLINT. И бекап-рестор не поможет, IIRC.



--
Дмитрий Еманов



RE: Генерация номеров - генераторы или автономная транзакция?

2011-02-24 Пенетрантность Vadim Mescheryakov

После создания 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: Полетела база

2011-02-24 Пенетрантность Valery Gruzdev

Когда у меня была похожая беда, я восстанавливал базу, не активируя индексы.
Потом ковырялся в таблицах (у меня оказался дубль в поле, по которому 
построен 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: Полетела база

2011-02-24 Пенетрантность Dmitry Lendel

Тут вообще тоска зеленая.
Можно было бы восстановить без индексов, но в процедурах прописан план 
руками.
Кстати, дает удалить индекс, не смотря на это в обычной базе. Так должно 
быть?
И не понятно из сообщения, что именно плохо. 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 флаг

2011-02-24 Пенетрантность Yurij
 Наткнулся тут на шизу, что клиентское приложение не может подключится
к Firebird через VPN, в котором поломано управление MTU. Т.е. Firebird
шлет пакеты максимального размера, в которых, к тому же, установлен
флаг Don`t fragment, по дороге они натыкаются на какой-то глючный
узел, который вместо того, чтобы ответить ICMP fragmentation needed,
молча их дропает. В результате подключение к FB зависает на первом же
достаточно длинном пакете.
 Можно ли узнать, зачем установлен этот флаг, и можно ли как-то обойти
эту проблему?

 Знаю только пару методов, типа поставить на винде MTU поменьше или
завернуть коннект в туннель, использующий для транспорта мелкие пакеты.

Re: Firebird TCP/IP протокол и Don`t fragment флаг

2011-02-24 Пенетрантность Vlad Khorsun

Yurij ...

Наткнулся тут на шизу, что клиентское приложение не может подключится
к Firebird через VPN, в котором поломано управление MTU. Т.е. Firebird
шлет пакеты максимального размера, в которых, к тому же, установлен
флаг Don`t fragment, по дороге они натыкаются на какой-то глючный
узел, который вместо того, чтобы ответить ICMP fragmentation needed,
молча их дропает. В результате подключение к FB зависает на первом же
достаточно длинном пакете.
Можно ли узнать, зачем установлен этот флаг, и можно ли как-то обойти
эту проблему?


   Firebird не управляет и не может управлять этими флагами.

--
Хорсун Влад 





Re: Firebird TCP/IP протокол и Don`t fragment флаг

2011-02-24 Пенетрантность Yurij


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: Полетела база

2011-02-24 Пенетрантность Valery Gruzdev
Можно было бы восстановить без индексов, но в процедурах прописан план 
руками.


А в чем криминал?
Я так понимаю, что если индексы есть, но неактивированы, то ошибка выдастся 
при попытке выполнения процедуры, а рестор должен пройти...






Re: Firebird TCP/IP протокол и Don`t fragment флаг

2011-02-24 Пенетрантность Yurij


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 флаг

2011-02-24 Пенетрантность Khorsun Vlad

On Feb 24, 9:59 pm, Vlad Khorsun wrote:

Firebird не управляет и не может управлять этими флагами.

Да, судя по всему, TCP стек пытается PMTUD использовать.

Тогда второй вопрос: чем чревата установка TcpRemoteBufferSize = 1448
в конфиге?


   Дополнительными roundtrip'ами и снижением производительности
сетевого протокола.


И с чем связано нижнее ограничение в 1448 на этот параметр?


   Думаю что-то древне-историческое. Не проверял никогда. Может
у какого-либо из ныне мёртвых транспортных протоколов было такое
ограничение снизу.


Судя по логу, оно в таком случае шлет пакеты уменьшенного размера,
которые, скорее всего, пройдут через затык в сети. Но насколько
это костыль и чем он чреват?


   Думаю проверить это можно только экспериментально...

--
Хорсун Влад