SWEEPER работает 4 дня! Help!

Access Violation, некорректное выполнение запросов или вызовов API, ошибки утилит командной строки, в общем все, что вам мешает работать

Модераторы: kdv, dimitr

Ответить
Дмитрий
Сообщения: 127
Зарегистрирован: 26 окт 2004, 11:05

SWEEPER работает 4 дня! Help!

Сообщение Дмитрий » 09 авг 2011, 11:40

Добрый день!
Появилась следующая проблема. Было массовое удаление записей из БД (около 8 млн.). Затем сам стартанул SWEEPER который работает до сих пор. При этом я не могу сделать backup. Вылезает deadlock. Ниже приведу фрагменты логов и разную другую инфу. Подскажите, как остановить сборку мусора и сделать backup?
Посмотрел что происходит на серевре. Помимо обычных пользователей работают:
COLLECTOR с 01.08.2011 08:42
SWEEPER с 05.08.2011 09:06
Дальше фрагмент лога при попытке сделать backup:

Код: Выделить всё

gbak:     writing index IBE$LOG_FIELDS_IDX1
gbak:     writing index IBE$LOG_FIELDS_IDX2
gbak:     writing data for table IBE$LOG_FIELDS
gbak: ERROR: deadlock
gbak: ERROR:  gds_$receive failed
gbak: Exiting before completion due to errors
Записи удалялись из IBE$LOG_FIELDS.

Статистика БД:

Код: Выделить всё

Database header page information: 
	Flags			0 
	Checksum		12345 
	Generation		385851 
	Page size		16384 
	ODS version		11.2 
	Oldest transaction	12432624 
	Oldest active		12485314 
	Oldest snapshot		12485314 
	Next transaction	12486174 
	Bumped transaction	1 
	Sequence number		0 
	Next attachment ID	113 
	Implementation ID	16 
	Shadow count		0 
	Page buffers		0 
	Next header page	0 
	Database dialect	3 
	Creation date		Dec 11, 2008 16:57:34 
	Attributes		force write 
 
    Variable header data: 
	Sweep interval:		20000

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: SWEEPER работает 4 дня! Help!

Сообщение kdv » 09 авг 2011, 15:08

При этом я не могу сделать backup. Вылезает deadlock.
точная версия сервера?

свип "остановить" нельзя. Можно попробовать остановить процесс сервера (корректно, не терминированием), после чего gfix-ом задать sweep interval в 0.
Судя по deadlock от бэкапа, свип на самом деле не работает, а "висит" на какой-то записи. Смотрите firebird.log, вдруг там повреждение БД.

p.s. collector всегда работает, он тут ни при чем.

Дмитрий
Сообщения: 127
Зарегистрирован: 26 окт 2004, 11:05

Re: SWEEPER работает 4 дня! Help!

Сообщение Дмитрий » 09 авг 2011, 15:31

kdv писал(а):точная версия сервера?
Инфа из IBExpert:

Версия сервера WI-V7.5.1.162
Размер файла БД 43260МВ (это на всякий случай)

kdv писал(а):Смотрите firebird.log, вдруг там повреждение БД.
В моем случае это interbase.log. Кроме следующих строчек никакого криминала, кроме ошибок 10054 нет.

Код: Выделить всё

DEPOZIT2 (Server) Mon Aug 08 12:01:33 2011
  gds__free: attempt to release bad block

DEPOZIT2 (Server) Mon Aug 08 13:15:27 2011
  Database: C:\DIVIDEND\DIVIDEND.GDB.IB
  deadlock
Вроде как попытка освободить плохой блок. Что делать? Ждать, пока SWEEPER закончит работу? Или попробовать backup сделать с -g?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: SWEEPER работает 4 дня! Help!

Сообщение kdv » 09 авг 2011, 18:09

Или попробовать backup сделать с -g?
бэкап нужно ВСЕГДА делать с -g, это даже стыдно обсуждать.
http://www.ibase.ru/devinfo/gbak.htm

дальше, при базе в 43 гига давно нужно было выставить Sweep interval в 0.

С deadlock возможно не повреждение базы, а какой-то внутренний сбой сервера (что-то такое припоминаю, но смутно, да и все равно если даже и баг, чинить 7.5 уже никто никогда не будет). Так что, придется делать серверу остановку сервиса interbase. Не терминирование, разумеется.

Дмитрий
Сообщения: 127
Зарегистрирован: 26 окт 2004, 11:05

Re: SWEEPER работает 4 дня! Help!

Сообщение Дмитрий » 10 авг 2011, 12:14

Спасибо! Все получилось. Вечером сделал бэкап с -g. Все прошло нормально. Остановил сервер. Запустил снова. Установил sweep interval в 0. SWEEPER снова стартанул, но через час прекратил работу. Сейчас все нормально.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: SWEEPER работает 4 дня! Help!

Сообщение kdv » 11 авг 2011, 13:08

нужно было
- остановить сервер
- изменить свип интервал
- запустить сервер

Ответить