Bug 1461

Summary: Ошибка при выгрузке базы
Product: SELTA@Etersoft Reporter: Андрей Германов <andrey>
Component: ODBC-драйверAssignee: Andrey Abramov <andrey>
Status: CLOSED INVALID QA Contact:
Severity: normal    
Priority: P5 CC: lav, shan
Version: 1.0.2   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 2054    

Description Андрей Германов 2008-03-22 22:16:53 MSK
При выгрузке базы данных стандартными средствами 1С вылетает ошибка:

SQL State: XX001
Native: 7
Message: ERROR:  invalid page header in block 19641 of relation "sc2256"

Файл выгрузки не создается.

Содержимое лога Postgre SQL после этой ошибки:

LOG:  система была отключена: 2008-03-22 19:32:39 MSK
LOG:  контрольная точка: 8/C8617E00
LOG:  redo-запись: 8/C8617E00; undo-запись: 0/0; отключение: TRUE
LOG:  next transaction ID: 0/579962; next OID: 72130
LOG:  next MultiXactId: 1; next MultiXactOffset: 0
LOG:  система готова к использованию
WARNING:  nonstandard use of \\ in a string literal на символе 75
ПОДСКАЗКА:  Use the escape string syntax for backslashes, e.g., E'\\'.
WARNING:  nonstandard use of \\ in a string literal на символе 110
ПОДСКАЗКА:  Use the escape string syntax for backslashes, e.g., E'\\'.
ERROR:  статус транзакции 1900544 не доступен
ПОДРОБНОСТИ:  Could not open file "pg_clog/0001": Нет такого файла или каталога.
КОМАНДА:  FETCH FIRST IN dyn_cur_2997_028147D8
ERROR:  current transaction is aborted, commands ignored until end of transaction block
КОМАНДА:  CLOSE dyn_cur_2997_028147D8
ERROR:  current transaction is aborted, commands ignored until end of transaction block
КОМАНДА:  DECLARE dyn_cur_2997_028147D8 CURSOR WITH HOLD FOR SELECT * FROM SC2256 WHERE SP2259>='  C2   ECR   ' AND SUBSTR (SP2259, 1, 13)='  C2   ECR   ' ORDER BY SP2259, ROW_ID
ERROR:  current transaction is aborted, commands ignored until end of transaction block
КОМАНДА:  CLOSE dyn_cur_2997_026AB098
ERROR:  курсор "dyn_cur_2997_028147d8" не существует
КОМАНДА:  CLOSE dyn_cur_2997_028147D8
WARNING:  nonstandard use of \\ in a string literal на символе 75
ПОДСКАЗКА:  Use the escape string syntax for backslashes, e.g., E'\\'.
WARNING:  nonstandard use of \\ in a string literal на символе 110
ПОДСКАЗКА:  Use the escape string syntax for backslashes, e.g., E'\\'.
ERROR:  курсор "dyn_cur_3007_0205da98" не существует
КОМАНДА:  CLOSE dyn_cur_3007_0205DA98;DECLARE dyn_cur_3007_0205DA98 CURSOR WITH HOLD FOR SELECT * FROM _1SJOURN WHERE IDJOURNAL=409 AND DATE_TIME_IDDOC>=E'20080322     0     0   ' AND DATE_TIME_IDDOC<=E'20080322FHML6O     0   ' ORDER BY IDJOURNAL, DATE_TIME_IDDOC;MOVE LAST IN dyn_cur_3007_0205DA98;MOVE BACKWARD 0 IN dyn_cur_3007_0205DA98;
ERROR:  курсор "dyn_cur_3007_0205da98" не существует
КОМАНДА:  FETCH RELATIVE 0 IN dyn_cur_3007_0205DA98
ERROR:  курсор "dyn_cur_3007_0205da98" не существует
КОМАНДА:  FETCH FIRST IN dyn_cur_3007_0205DA98
ERROR:  курсор "dyn_cur_3007_0205da98" не существует
КОМАНДА:  CLOSE dyn_cur_3007_0205DA98;DECLARE dyn_cur_3007_0205DA98 CURSOR WITH HOLD FOR SELECT * FROM _1SJOURN WHERE IDJOURNAL=409 AND DATE_TIME_IDDOC>=E'20080322     0     0   ' AND DATE_TIME_IDDOC<=E'20080322FHML6O     0   ' ORDER BY IDJOURNAL, DATE_TIME_IDDOC;MOVE FORWARD 1 IN dyn_cur_3007_0205DA98;
ERROR:  курсор "dyn_cur_3007_0205da98" не существует
КОМАНДА:  FETCH RELATIVE 0 IN dyn_cur_3007_0205DA98
ERROR:  курсор "dyn_cur_3007_0205da98" не существует
КОМАНДА:  FETCH FIRST IN dyn_cur_3007_0205DA98
ERROR:  курсор "dyn_cur_3007_0205da98" не существует
КОМАНДА:  CLOSE dyn_cur_3007_0205DA98;DECLARE dyn_cur_3007_0205DA98 CURSOR WITH HOLD FOR SELECT * FROM _1SJOURN WHERE IDJOURNAL=409 AND DATE_TIME_IDDOC>=E'20080322     0     0   ' AND DATE_TIME_IDDOC<=E'20080322FHML6O     0   ' ORDER BY IDJOURNAL, DATE_TIME_IDDOC;MOVE FORWARD 1 IN dyn_cur_3007_0205DA98;
ERROR:  курсор "dyn_cur_3007_0205da98" не существует
КОМАНДА:  FETCH RELATIVE 0 IN dyn_cur_3007_0205DA98
ERROR:  курсор "dyn_cur_3007_0205da98" не существует
КОМАНДА:  FETCH FIRST IN dyn_cur_3007_0205DA98
ERROR:  курсор "dyn_cur_3007_0205da98" не существует
КОМАНДА:  CLOSE dyn_cur_3007_0205DA98;DECLARE dyn_cur_3007_0205DA98 CURSOR WITH HOLD FOR SELECT * FROM _1SJOURN WHERE IDJOURNAL=409 AND DATE_TIME_IDDOC>=E'20080322     0     0   ' AND DATE_TIME_IDDOC<=E'20080322FHML6O     0   ' ORDER BY IDJOURNAL, DATE_TIME_IDDOC;MOVE FORWARD 1 IN dyn_cur_3007_0205DA98;
ERROR:  курсор "dyn_cur_3007_0205da98" не существует
КОМАНДА:  FETCH RELATIVE 0 IN dyn_cur_3007_0205DA98
ERROR:  курсор "dyn_cur_3007_0205da98" не существует
КОМАНДА:  CLOSE dyn_cur_3007_0205DA98;DECLARE dyn_cur_3007_0205DA98 CURSOR WITH HOLD FOR SELECT * FROM _1SJOURN WHERE IDJOURNAL=409 AND DATE_TIME_IDDOC>=E'20080322     0     0   ' AND DATE_TIME_IDDOC<=E'20080322FHML6O     0   ' ORDER BY IDJOURNAL, DATE_TIME_IDDOC;MOVE LAST IN dyn_cur_3007_0205DA98;MOVE BACKWARD -1 IN dyn_cur_3007_0205DA98;
ERROR:  курсор "dyn_cur_3007_0205da98" не существует
КОМАНДА:  FETCH RELATIVE 0 IN dyn_cur_3007_0205DA98
ERROR:  курсор "dyn_cur_3007_0205da98" не существует
КОМАНДА:  CLOSE dyn_cur_3007_0205DA98
ERROR:  invalid page header in block 3283 of relation "idd_sc2256"
КОМАНДА:  DECLARE dyn_cur_3018_020E3B08 CURSOR WITH HOLD FOR SELECT SC13.DESCR, RG99.SP4070, SC33.DESCR, SC33.PARENTID, RG99.SP101, SC31.DESCR, RG99.SP100, RG99.SP2269, 0, 0, RG99.SP2574, 0, 0, RG99.SP164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, RG99.SP2270, SC3143.PARENTEXT, RG99.SP2847, SC2256.SP2259, 0, '     0   ', ' ', ' ', RG99.SP2269, RG99.SP2574, RG99.SP164 FROM RG99 LEFT OUTER JOIN SC13 ON RG99.SP4070=SC13.ID LEFT OUTER JOIN SC33 ON RG99.SP101=SC33.ID LEFT OUTER JOIN SC31 ON RG99.SP100=SC31.ID LEFT OUTER JOIN SC2256 ON RG99.SP2270=SC2256.ID LEFT OUTER JOIN SC3143 ON SC2256.SP3184=SC3143.ID WHERE PERIOD='20061201' AND (((RG99.SP4070='     1   ')))
ERROR:  курсор "dyn_cur_3018_020e3b08" не существует
КОМАНДА:  CLOSE dyn_cur_3018_020E3B08
ERROR:  invalid page header in block 3283 of relation "idd_sc2256"
КОМАНДА:  DECLARE dyn_cur_3389_02693210 CURSOR WITH HOLD FOR SELECT SC13.DESCR, RG99.SP4070, SC33.DESCR, SC33.PARENTID, RG99.SP101, SC31.DESCR, RG99.SP100, RG99.SP2269, 0, 0, RG99.SP2574, 0, 0, RG99.SP164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, RG99.SP2270, SC3143.PARENTEXT, RG99.SP2847, SC2256.SP2259, 0, '     0   ', ' ', ' ', RG99.SP2269, RG99.SP2574, RG99.SP164 FROM RG99 LEFT OUTER JOIN SC13 ON RG99.SP4070=SC13.ID LEFT OUTER JOIN SC33 ON RG99.SP101=SC33.ID LEFT OUTER JOIN SC31 ON RG99.SP100=SC31.ID LEFT OUTER JOIN SC2256 ON RG99.SP2270=SC2256.ID LEFT OUTER JOIN SC3143 ON SC2256.SP3184=SC3143.ID WHERE PERIOD='20061201' AND (((RG99.SP4070='     1   ')))
ERROR:  курсор "dyn_cur_3389_02693210" не существует
КОМАНДА:  CLOSE dyn_cur_3389_02693210
NOTICE:  CREATE TABLE / PRIMARY KEY создаст подразумеваемый индекс "rgtemp0_pkey" для таблицы "rgtemp0"
NOTICE:  CREATE TABLE / PRIMARY KEY создаст подразумеваемый индекс "rgtemp0_pkey" для таблицы "rgtemp0"
NOTICE:  CREATE TABLE / PRIMARY KEY создаст подразумеваемый индекс "rgtemp0_pkey" для таблицы "rgtemp0"
ERROR:  invalid page header in block 19641 of relation "sc2256"
КОМАНДА:  DECLARE dyn_cur_3857_01C9A9B0 CURSOR WITH HOLD FOR SELECT * FROM SC2256 ORDER BY DESCR, ROW_ID
ERROR:  invalid page header in block 19641 of relation "sc2256"
КОМАНДА:  DECLARE dyn_cur_3885_01B765A8 CURSOR WITH HOLD FOR SELECT * FROM SC2256 ORDER BY DESCR, ROW_ID
ERROR:  invalid page header in block 19641 of relation "sc2256"
КОМАНДА:  DECLARE dyn_cur_4003_01CA4B28 SCROLL CURSOR WITH HOLD FOR SELECT * FROM SC2256 ORDER BY DESCR, ROW_ID
ERROR:  invalid page header in block 19641 of relation "sc2256"
КОМАНДА:  DECLARE dyn_cur_4042_01CA4B28 SCROLL CURSOR WITH HOLD FOR SELECT * FROM SC2256 ORDER BY DESCR, ROW_ID

Подобная ошибка возникает и при загрузке базы стандартными средствами 1С, а также при работе с базой: при формировании некоторых отчетов и при проведении некоторых документов (особенно при формировании отчетов за большой промежуток времени: за год или полтора года).
Comment 1 Андрей Германов 2008-03-23 19:18:18 MSK
Проблема "решилась" добавлением строки

zero_damaged_pages = true 

в файл postgresql.conf.

Не знаю пока, чего мне будет стоить добавление этого параметра, так что не считаю это решением проблемы. Но возможно это наведет на какие-то мысли по решению проблемы.

После этого загрузка и выгрузка происходит без ошибок, правда значительно дольше. База объемом в 2.2 GB загружается 5 часов, а выгружается более 9. В MS SQL все эти процедуры выполняются в течение часа.

Comment 2 Vitaly Lipatov 2008-07-04 10:51:14 MSD
Считается, что данная ошибка возникает из-за повреждения файлов (данных) на стороне сервера.
http://www.sql.ru/forum/actualthread.aspx?tid=567704
Comment 3 Шильников Андрей 2008-10-21 15:19:29 MSD
Какие итоги? Может есть смысл использовать новую сборку и версию СУБД 8,2,4 или 8,2,9?
Comment 4 Андрей Германов 2008-10-21 16:04:20 MSD
(In reply to comment #3)
> Какие итоги? Может есть смысл использовать
> новую сборку и версию СУБД 8,2,4 или 8,2,9?
> 

В данный момент базы загружаются и выгружаются корректно с версией 8.2.4 .

Comment 5 Шильников Андрей 2008-10-21 16:09:52 MSD
(In reply to comment #4)
> (In reply to comment #3)
> > Какие итоги? Может есть смысл использовать
> > новую сборку и версию СУБД 8,2,4 или 8,2,9?
> > 
> 
> В данный момент базы загружаются и
> выгружаются корректно с версией 8.2.4 .

Отлично, багу закрываю. Ждите скоро релиза ;)