Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030 / 25 сообщений из 26, страница 1 из 2
30.05.2013, 11:04
    #38279782
andre.vorob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
Здравствуйте.
На рабочем сервере несколько дней к ряду не отрабатывает должным образом резервное копирование БД.
В "Центре задач" DB2 в "результатах" во вкладке "Вывод" есть ошибка:

Код: plaintext
1.
2.
BACKUP DATABASE  dbName  TO "D:\Backup" WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 COMPRESS  WITHOUT PROMPTING
SQL1655C  Операцию не удалось завершить из-за ошибки при обращении к данным на 
диске.  SQLSTATE=58030

Программный комплекс при этом работает нормально, резервные копии БД, использующихся этим программным комплексом, выполняются поочередно и в ту же папку D:\Backup, с остальными БД проблем нет.
Подскажите, пожалуйста, куда копать, чтобы решить проблему.
...
Рейтинг: 0 / 0
30.05.2013, 11:10
    #38279792
andre.vorob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
Уточню: не бэкапируется только одна база из используемых. Хранятся все на одном диске (сетевом хранилище)
...
Рейтинг: 0 / 0
30.05.2013, 11:14
    #38279801
Ivan Ivanich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
Диск D куда бэкап делается локальный или сетевой?
...
Рейтинг: 0 / 0
30.05.2013, 11:19
    #38279808
andre.vorob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
Диск D - локальный.
Выполняются бэкапы под логином доменного администратора, который включен в группу администраторов db2 и конкретно этого сервера.
...
Рейтинг: 0 / 0
30.05.2013, 11:25
    #38279825
Ivan Ivanich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
Знаете, у нас было похожее. Машина с базами была подключена к сетевому хранилищу (как и у вас, подозреваю) и, возможно из-за этого подключения, иногда происходило как бы "засыпание" диска. Я выкрутился следующим образом:

перед тем как выполнять бэкап, я "расталкивал" сонную машину, поставив в cmdшник перед командой бэкапа

ping -n 180 127.0.0.1 > NUL

Это помогало.
...
Рейтинг: 0 / 0
30.05.2013, 11:27
    #38279829
andre.vorob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
Кстати, сама задача почемается в Центре задач выполненной каждый день (код возврата - 0), а "Длительность последнего выполнения" (например, сегодня ночью) - 40 минут (как и когд бэкап нормально создавался).
Т.е. бэкапирование запускается, но ближе к концу или в конце задачи логгируется эта ошибка.
...
Рейтинг: 0 / 0
30.05.2013, 11:29
    #38279841
andre.vorob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
Ivan Ivanich,

ок, спасибо. Сегодня попробую.
Эта БД самая крупная из бэкапирующихся, может за эти 40 минут "засыпает"... Ставить ее первой в очереди на резервное копирование пробовал, это не помогло.

Попробую с ping`ом, отпишусь.
Если у кого-то еще есть идеи, поделитесь, пожалуйста.
...
Рейтинг: 0 / 0
30.05.2013, 11:32
    #38279848
Ivan Ivanich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
Со свободным местом на диске всё в порядке?
...
Рейтинг: 0 / 0
30.05.2013, 11:33
    #38279855
CawaSPb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
andre.vorob,

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

1. Закройте доступ к базе (потушите инстанс) или выполните операцию "SET WRITE SUSPEND FOR DATABASE" (заблокирует запись в базу).
2. Через файловую систему скопируйте все файлы базы на другой сервер (скорее всего тут столкнётесь с доступностью тех или иных файлов).
3. Откройте доступ к исходной базе - "SET WRITE RESUME FOR DATABASE".
4. Закаталогизируйте cкопированную базу (при необходимости воспользовавшись db2relocatedb).
5. "db2inidb <dbname> as snapshot" (или "db2inidb <dbname> as snapshot relocate using relocatedb.cfg")

После чего можно:
а) на потушенном инстансе пройтись db2dart'ом по базе, посмотреть, есть ли что битое.
б) Попробовать сделать бэкап (для исходной копии он будет неприменим, после db2inidb для базы будет инициирована новая последовательность логов).

Дальнейшие действия - по результатам. Вытащить данные из битой таблицы может помочь тот же db2dart (/DDEL опция). Если недоступен индекс, то просто его пересоздать.

Вообще ещё хорошо бы db2diag.log посмотреть на предмет ошибок доступа к дискам.
...
Рейтинг: 0 / 0
30.05.2013, 11:42
    #38279880
andre.vorob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
Ivan IvanichСо свободным местом на диске всё в порядке?
На сетевом хранилище (где хранятся сами БД) - свободно 120 Гб, все базы весят 82 Гб; та, с которой проблемы - 56 Гб.
На локальном диске, КУДА бэкапируется - 100 Гб свободно, однодневная копия всех вмсте баз весит 16 Гб (регулярно удаляю старые копии, не допускаем переполнения).
Наверное, стоит попробовать сделать копию на другой диск (например, сетевое хранилище, оставив на нем побольше свободного места)..
Попробую, спасибо
...
Рейтинг: 0 / 0
30.05.2013, 11:43
    #38279883
andre.vorob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
CawaSPb,

спасибо большое! Буду пробовать, отпишусь по результатам
...
Рейтинг: 0 / 0
30.05.2013, 15:32
    #38280350
mustaccio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
andre.vorobПодскажите, пожалуйста, куда копать, чтобы решить проблему.

Копать, я думаю, надо в db2diag.log (или в Windows Event Viewer), где будет более подробная информация о причинах ошибки.
...
Рейтинг: 0 / 0
04.06.2013, 08:56
    #38284641
andre.vorob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
"Распинговывание" сервера не помогло, перенос места сохранения бэкапа на другой диск (физически другой) тоже не помог.
Действия, описанные CawaSPb , до некоторого момента выполнил, дальше пока опасаюсь - база промышленная...

В "Журнале событий Windows" следующая ошибка:
Ошибка в "Журнале событий Windows"2013-05-30-20.28.25.692001 Instance:DB2 Node:000
PID:1672(db2syscs.exe) TID:3612 Appid:*LOCAL.DB2.130531131301
buffer pool services sqlbLogReadAttemptFailure Probe:10 Database: dbName

ADM14001C Произошла непредвиденная критическая ошибка: "BadPage". Возможно,
это привело к завершению работы экземпляра. Запущен "Automatic" захват данных
первого случая (First Occurrence Data Capture, FODC); диагностическая
информация записана в каталог
"C:\ProgramData\IBM\DB2\DB2COPY1\DB2\FODC_BadPage_2013-05-30-20.28.25.692000_00
00\". Посмотрите в этом каталоге подробную информацию о признаках ошибки; если
требуется диагностика ошибки, обратитесь в службу поддержки IBM.

Прикладываю FODC и db2diag.log.
Проблемная БД во всех источниках переименована в dbName .
Остальные БД - в db2, db3, db4, db5.
Помогите, пожалуйста, разобраться, где база попорчена и можно ли ее безболезненно поправить?
Заранее огромное спасибо!
...
Рейтинг: 0 / 0
04.06.2013, 08:59
    #38284643
andre.vorob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
upd: CawaSPb, спасибо большое за инструкцию, пока пытаюсь по логам найти проблемы, если не получится четко найти причину, буду действовать по Вашему методу .
Ребят, в предыдущем сообщении описал ошибки, помогите, пожалуйста!
...
Рейтинг: 0 / 0
04.06.2013, 10:50
    #38284785
Ivan Ivanich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
А делали реорганизацию?
...
Рейтинг: 0 / 0
04.06.2013, 11:01
    #38284803
Ivan Ivanich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
A invalid page checksum was found for page "".
Failed to read page from disk on attempt number 1.

http://www.dbatodba.com/db2/problem-resolution/database-crashes/how-to-investigate-a-bad-page-in-table-space/
...
Рейтинг: 0 / 0
04.06.2013, 14:54
    #38285277
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
andre.vorobРебят, в предыдущем сообщении описал ошибки, помогите, пожалуйста!
У вас ошибка контрольной суммы на одной из системных таблиц.
db2diag.log
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
2013-05-30-20.28.20.996000+240 I354004153F3721    LEVEL: Severe
PID     : 1672                 TID  : 3612        PROC : db2syscs.exe
INSTANCE: DB2                  NODE : 000         DB   : dbName
APPHDL  : 0-57413              APPID: *LOCAL.DB2.130531131301
AUTHID  : DB2ADMIN
EDUID   : 3612                 EDUNAME: db2bm.2532.0 (dbName)
FUNCTION: DB2 UDB, buffer pool services, sqlbVerifyCBITS, probe:1110
MESSAGE : ZRC=0x86020019=-2046689255=SQLB_CSUM "Bad Page, Checksum Error"
          DIA8426C A invalid page checksum was found for page "".
DATA #1 : String, 64 bytes
Error encountered trying to read a page - information follows : 
DATA #2 : String, 97 bytes
CBIT verification error
bitExpected is 0, userByte is 255, sector 1 (from head of page, 0 based)
DATA #3 : Page ID, PD_TYPE_SQLB_PAGE_ID, 4 bytes
10
DATA #4 : Object descriptor, PD_TYPE_SQLB_OBJECT_DESC, 88 bytes
    Obj: {pool:0;obj:34;type:0} Parent={0;34}

Надо либо обращаться в поддержку, либо восстановить по крайней мере SYSCATSPACE из архива и накатиться по журналам транзакций.
Для поисков других ошибок можно воспользовтаться утилитой db2dart .
...
Рейтинг: 0 / 0
04.06.2013, 19:33
    #38285702
CawaSPb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
andre.vorob,

Ну, Марк всё написал.

В дополнение:
Хорошая и одновременно плохая новость состоит в том, что битая таблица - какая-то из таблиц системного каталога (tablespace id - 0).
Т.е. с одной стороны первая ошибка, с которой сталкивается база - не в бизнес-данных базы, с другой стороны восстановить работоспособность пересозданием таблицы не получится.

Всё-таки сделайте копию БД на другой сервер по приведённой схеме.
"SET WRITE SUSPEND ..."/"SET WRITE RESUME ..." можно опустить, если потушите на это время инстанс (например в период обслуживания - тогда, когда вы пробуете сделать бэкап).
Ничего в базе это не нарушит. Это штатная, описанная в документации операция, никак не затрагивающая основную копию базы - Using a split mirror to clone a database .

Если на сервере, на который вы будете копировать базу, будет сохранена та же структура каталогов, то использовать db2relocatedb не понадобится.
Что нужно копировать можно узнать по запросу к базе:
Код: sql
1.
select * from sysibmadm.dbpaths


Вероятнее всего будет достаточно E:\DB2\NODE0000\SQL00005
LOCAL_DB_DIRECTORY можно не копировать (и провести каталогизирование путём "db2 catalog db dbname on E:")


По скопированной базе пройдитесь db2dart'ом:
db2dart dbname /RPTF Y /RPT <path_to_report_files>

То же самое вы можете сделать и на основном сервере (предварительно потушив инстанс/базу), только неизвестно, сколько это займёт времени.

Посмотреть, какая именно табличка побилась:
db2dart dbname /T /OI 34 /TSI 0 /RPTF Y /RPT <path_to_report_files>


Бэкап делается офф-лайновый, скорее всего логирование циркулярное и восстановить SYSCATSPACE из архива донакатыванием скорее всего не получится.
А вот можно ли попробовать "в лоб" подменить E:\DB2\NODE0000\SQL00005\SQLT0000.0\SQL00034.DAT, подняв базу (где-либо ещё) из последнего бэкапа, - вопрос (прежде всего к support'у IBM'а и к Марку, в частности).
В любом случае полезно узнать имя объекта, чтобы понять, с чем имеем дело, и сделать бинарный diff этого SQL00034.DAT из бэкапа и его текущего состояния.
Все эти развлечения, конечно же, удобней всего проводить на тестовом стенде.
...
Рейтинг: 0 / 0
14.08.2013, 15:31
    #38366339
andre.vorob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
Mark Barinstein , CawaSPb ,

подскажите, пожалуйста, я сделал бинарный diff битого файла и файла из последнего удачного бэкапа.

Разница следующая:
1) в битом SQL00034.DAT есть большой участок, заполненный какой-то абракадаброй. В файле из резервной копии вместо этого участка нули.
2) в битом файле близко к началу файла есть символы с кодом 07 03, а в файле из копии в этом месте - E7 02.

Подскажите, пожалуйста, может быть заменить участок с абракадаброй на нули? или вообще заменить весь файл?
На всякий случай прикладываю оба файла
SQL00034_bad.DAT - с которым проблема.
SQL00034.DAT - файл из удачного бэкапа.

Сравнивал программой Fairdell HexCmp2

Надеюсь на Вашу помощь, заранее огромное спасибо за уделенное время!


CawaSPb ,
при копировании базы на другой сервер проблем с доступность файлов БД не возникло. Попробую пока каталогизировать базу и пройтись db2dart`ом
...
Рейтинг: 0 / 0
14.08.2013, 18:23
    #38366663
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
andre.vorob,

Никто не даст вам гарантии, что такая замена файлов будет работать.
С этой таблицей могли произойти изменения с момента взятия архива, в котором эта таблица жива была.

Если вы не можете обратиться в поддержку, я бы советовал выгрузить базу (db2move, например, или потаблично + db2look для DDL), если это возможно.
...
Рейтинг: 0 / 0
15.08.2013, 08:35
    #38367034
andre.vorob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
Mark Barinstein,

ок, спасибо за советы!
Да, поддержка по договору у нас уже кончилась, будем разбираться
...
Рейтинг: 0 / 0
15.08.2013, 13:10
    #38367433
CawaSPb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
andre.vorob,

BTW А что выдаёт запрос:
Код: sql
1.
select * from syscat.tables where tableid=34
...
Рейтинг: 0 / 0
15.08.2013, 15:24
    #38367670
andre.vorob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
CawaSPb,

TABSCHEMA: SYSIBM
TABNAME: SYSUSERAUTH
TBSPACEID: 0

и вторая запись (на всякий случай пишу, хотя там TBSPACEID: 2):

TABSCHEMA: COMMON
TABNAME: UPD_OBJECT_TYPE
TBSPACEID: 2
...
Рейтинг: 0 / 0
15.08.2013, 15:27
    #38367678
andre.vorob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
CawaSPb,

попробовал зайти в эту таблицу, открылась нормально, но после 400 записей при очередном щелчке "Выбрать еще строки" выдается ошибка:
Операцию не удалось завершить из-за ошибки при обращении к данным
на диске. SQLSTATE=58030

Объяснение:

Операцию не удалось завершить из-за ошибки при обращении к данным на
диске. Выполнен откат оператора SQL, либо операция прервана. База данных
остается доступной.
...
Рейтинг: 0 / 0
15.08.2013, 18:35
    #38368084
CawaSPb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030
andre.vorob,

Ну вот и отлично.
Права на объекты вы сможете снять, восстановив какой-либо из старых бэкапов (последний):
Код: plaintext
db2look -d <dbname> -x -o grants.ddl

Полный DDL текущей базы без грантов:
Код: plaintext
db2look -d <dbname> -td @ -e -a -l -f -o <dbname>.ddl 

Далее - создание пустой базы (на время создания стоит выставить AUTO_REVAL в DEFERRED_FORCE, но и тут могут быть хитрости) и export/load. Будет "новая-хорошая".
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / SQL1655C Операцию не удалось завершить из-за ошибки при обращении к данным на диске. 58030 / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]