Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
Такая вот трабла: добавил в таблицу новое поле (bigint), потом создал уникальный индекс. После этого создал sequence и запустил запрос UPDATE "PROF" SET "IncId" = nextval('public."IncId_seq"'::text); В таблице 300 000 записей. Запрос отрабатывал около 5 минут. После этого при попытках сделать SELECT, VACUUM FULL и т.п. возникает ошибка: ERROR: Invalid page header in block 13305 of PROF Насколько я понял, таблица повредилась во время апдейта. Как это пофиксить и что сделать, чтобы предотвратить такие ошибки в будущем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2005, 15:04 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
PS. PostgreSQL 7.3.4 on RedHat Linux 7.3 на этом линухе куча всего перекомпилена, так что он не совсем 7.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2005, 15:25 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
Было аналогичное пару раз... Правда в моем случае такое получилось после reset'а. Полечить не удалось. Попробовал как последнее средство переинициализацию лога (за соломинку хватался) - не помогло. Пришлось прибить таблицу с данными и создать заново :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2005, 18:16 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
_Arthur_Такая вот трабла: добавил в таблицу новое поле (bigint), потом создал уникальный индекс. После этого создал sequence и запустил запрос UPDATE "PROF" SET "IncId" = nextval('public."IncId_seq"'::text); В таблице 300 000 записей. Запрос отрабатывал около 5 минут. После этого при попытках сделать SELECT, VACUUM FULL и т.п. возникает ошибка: ERROR: Invalid page header in block 13305 of PROF Насколько я понял, таблица повредилась во время апдейта. Как это пофиксить и что сделать, чтобы предотвратить такие ошибки в будущем? аналогичная проблема, кто то решал её? постгрес 8.1.2, таблицу убивать нельзя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 02:17 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
Сделать проверку оперативной памяти и жестких дисков, и почаще обновлять софт З.Ы. Гугл рулит ;) Verba volent, scripta manent ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 10:00 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
Была аналогичная проблема. Данные были легко восстановимы, поэтому пересоздали таблицу, перезалили в нее данные. Можно много нагуглить по этой ошибке. Кажется был даже тул для порсмотра файлов таблиц постгреса. И не делайте сейчас vacuum, vacuum full. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 10:10 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
Dan BlackСделать проверку оперативной памяти и жестких дисков, и почаще обновлять софт З.Ы. Гугл рулит ;) Verba volent, scripta manent С железом проблем нет, раз в сутки удаляеться часть записей и делаеться вакум По поводу восстановления, это про бекап ресторе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 13:43 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
Проблема в индексе, скорее всего. Покажите команду, которой индекс(ы) на таблицу создавали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 15:29 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
MBGПроблема в индексе, скорее всего.Нет, здесь проблема не в индексе. Так как с такой ошибкой вылетает в частности безусловный селект, выполняющийся через SeqScan, то есть не затрагивающий индексы. И в тексте ошибки явно написано, что "invalid page header" относится к таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 15:53 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
Позволю себе не согласиться с утверждением выше, поскольку уже сталкивался с такой ситуацией, когда ошибка в индексе приводит к повреждению таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 16:35 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
MBGПозволю себе не согласиться с утверждением выше, поскольку уже сталкивался с такой ситуацией, когда ошибка в индексе приводит к повреждению таблицы. таки не в индексе дело, а в таблице, сделал "новую" таблицу, залил туда данные, потому в "старой" позволил себе удалить индексы, проблема осталась та же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2007, 18:59 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
_Arthur_что сделать, чтобы предотвратить такие ошибки в будущем? обновиться до чего-нибудь более пристойного :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2007, 20:25 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
4_Alex MBGПозволю себе не согласиться с утверждением выше, поскольку уже сталкивался с такой ситуацией, когда ошибка в индексе приводит к повреждению таблицы. таки не в индексе дело, а в таблице, сделал "новую" таблицу, залил туда данные, потому в "старой" позволил себе удалить индексы, проблема осталась та же Если таблица уже повреждена, после удаления индексов она чудом не восстановится. P.S. И все же, какой командой были созданы индексы? Я ведь не просто так спросил... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2007, 22:23 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
MBG 4_Alex MBGПозволю себе не согласиться с утверждением выше, поскольку уже сталкивался с такой ситуацией, когда ошибка в индексе приводит к повреждению таблицы. таки не в индексе дело, а в таблице, сделал "новую" таблицу, залил туда данные, потому в "старой" позволил себе удалить индексы, проблема осталась та же Если таблица уже повреждена, после удаления индексов она чудом не восстановится. P.S. И все же, какой командой были созданы индексы? Я ведь не просто так спросил... CREATE INDEX ix_index ON T1 USING btree (c1); уточню, индексы были созданы с самого "рождения" таблицы, а не добавлены после, вообще я заметил что при увеличении кол записей более 5млн (приблизительно) таблица начинает подтормаживать например в селектах, хотя до этого предела нет разницы, что 2 записи в таблице что скажем 4млн. может что то не так в настройках БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2007, 18:08 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
4_Alex CREATE INDEX ix_index ON T1 USING btree (c1); уточню, индексы были созданы с самого "рождения" таблицы, а не добавлены после, вообще я заметил что при увеличении кол записей более 5млн (приблизительно) таблица начинает подтормаживать например в селектах, хотя до этого предела нет разницы, что 2 записи в таблице что скажем 4млн. может что то не так в настройках БД? С такими индексами вроде никаких граблей не должно быть. Насчет объема записей в таблице - настройки базы определяют, сколько данных будет кэшироваться в памяти. Также под линуксом очень хорошо работает кэширование на уровне операционной системы. Настроить кое-что можно, по крайней мере с shared buffers поиграться, но это все имеет смысл только при наличии свободной оперативной памяти. Например, на целероне 2 ГГц с 256 метрами ОЗУ и SATA HDD разделенная таблица до 100 миллионов записей тормозить на обычных выборках не должна (про агрегирование большого набора данных разговор отдельный). Думаю, проблема в разбросанности записей в файле таблицы, слишком много операций для чтения результирующего набора на физическом уровне. Таблица с несколькими миллионами записей занимает порядка гигабайта места на винте (учитывая индексы), чтение раскиданных по такому файлу записей (равно как и чтение самих индексов) занимает много времени и в этом случае стоит посмотреть в сторону кластеризации и разделения таблиц. Cм. кластеризацию http://postgrestips.blogspot.com/2007/06/cluster.html См. разделенные таблицы http://postgrestips.blogspot.com/2007/06/partitial-table.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2007, 19:47 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
iz _Arthur_что сделать, чтобы предотвратить такие ошибки в будущем?обновиться до чего-нибудь более пристойного :)К сожалению, у меня такая ошибка возникала на 8.1. :-( MBGС такими индексами вроде никаких граблей не должно быть.А с какими индексами могут быть проблемы? Если в нете есть инфа, киньте пожалуйста ссылку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2007, 09:46 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
LeXa NalBat А с какими индексами могут быть проблемы? Если в нете есть инфа, киньте пожалуйста ссылку. С типом hash, см. на opennet.ru упоминание и еще где-то было подробнее. Индексом hash сейчас уже почти не пользуются. Я на этом сам напарывался пару раз, перешел на btree везде и больше проблем нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2007, 12:07 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
SET PSQL_PATH="C:\Program Files\PostgreSQL\8.0\bin\psql.exe" %PSQL_PATH% -c "set zero_damaged_pages=true; VACUUM FULL;" -U admin mydb обычно так спасает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2007, 10:56 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
Имеем следующий опыт в борьбе с page header 1 Postgres 7.3, установили в декабре 2004. Работает сейчас примерно на 20 машинах, на некоторых круглосуточно. Сейчас Linux 2.6.17 . 2 Ошибка page header возникает как при sql- запросах, так и при вакууме. Считаем это полезным средством проверки базы. 3 Раз в сутки делаем архив базы, pgdump. Перед этим делаем vacuum full. 4 Если по какой-то причине появляется page header, то делаем pgrestore из архива. Эта ошибка появляется нечасто, но регулярно. Раз в неделю где-нибудь, да выскочит. А теперь ВОПРОС. Может быть, перейти на версию 8.x ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2008, 11:31 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
vbgdМожет быть, перейти на версию 8.x ?Однозначно нужно перейти на последнюю стабильную версию. Каждая новая версия традиционно быстрее и надежнее. А 7.3 уже не поддерживается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2008, 13:06 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
vbgd А теперь ВОПРОС. Может быть, перейти на версию 8.x ? Разработчики Постгреса в принципе крайне рекомендуют, вне зависимости от ошибок переходить на более свежие версии (на текущий момент 8.2 - вполне стабильная ветка). Не считая общего ускорения было пофиксано немало ошибок приводящих к потерям данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2008, 14:27 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
Хочу добавить. При запуске постгреса появляются минимум три процесса. Кроме того, внутри еще могут быть потоки. Эти процессы (потоки) не в нужное время пишут в файлы таблиц, индексов. Фактически, одновременно. Наверное, повреждения надо понимать так. Наблюдал также неоднократно повреждение файлов postmaster.pid, postgresql.conf. Возникали ситуации, когда записи вместо журнала постгреса попадали в файл журнала параллельно работающего приложения. Что это может быть: ошибки самого постгреса или системы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 13:40 |
|
||
|
как пофиксить поврежденную таблицу?
|
|||
|---|---|---|---|
|
#18+
vbgdЧто это может быть: ошибки самого постгреса или системы ?Я бы добавил еще один вариант: или админа По сути, раскажите подробнее: ОС, версия, кол-во клиентов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 16:20 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=270&tid=2004387]: |
0ms |
get settings: |
8ms |
get forum list: |
25ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
75ms |
get tp. blocked users: |
2ms |
| others: | 218ms |
| total: | 377ms |

| 0 / 0 |
