@pgsql

Страница 190 из 1062
Петр
14.12.2016
16:19:50
Давай таблицу чинить

blkmrkt
14.12.2016
16:19:57
Ошибки чтения таблиц все еще есть?
ага, multixactid — apparent wraparound

а битые туплы не могу удалить - ошибка attempted to delete invisible tuple

Петр
14.12.2016
16:20:21
На какой конкретно записи падает?

Google
Петр
14.12.2016
16:20:32
Пробовал все записать нулями?

blkmrkt
14.12.2016
16:20:42
все эт как?

Петр
14.12.2016
16:21:04
В смысле страницы испорченные

blkmrkt
14.12.2016
16:21:22
В смысле страницы испорченные
да это пройдено, в конфиге включил zero damaged pages

Петр
14.12.2016
16:21:37
Ты не спеши

На какой записи падает запрос?

blkmrkt
14.12.2016
16:21:52
там в таблице comments примерно 3милл туплов с ненулевым xmax, и подозреваю что они ссылаются на трансакции которых давно нет, вот я в тупике тк не знаю как это вылечить

На какой записи падает запрос?
на какой конкретно не скажу, но ошибка timestamp out of range

Петр
14.12.2016
16:22:21
давай так

blkmrkt
14.12.2016
16:22:23
это при попытке pg_dump

lemi
14.12.2016
16:23:23
а бд изначально какой версии была ?

Петр
14.12.2016
16:23:24
\set FETCH_COUNT 1 \pset pager off select ctid,colmn1,...,columnN from comments;

blkmrkt
14.12.2016
16:23:27
пробую удалить туплы с битыми таймштампами: elete from comments where date > '1 Jan 9999' or date < '1 Jan 2000' or date_found > '1 Jan 9999' or date_found < '1 Jan 2000'; но ошибка attempted to delete invisible tuple

Google
Петр
14.12.2016
16:23:57
\set FETCH_COUNT 1 \pset pager off select ctid,colmn1,...,columnN from comments;
давай так попробуй и напиши сюда на чем падает

blkmrkt
14.12.2016
16:23:59
а бд изначально какой версии была ?
9.5 ставил в начале октября из apt, наверное 9.5.5

lemi
14.12.2016
16:27:38
это не вот это случаем ? Preventing Transaction ID Wraparound Failures

blkmrkt
14.12.2016
16:27:58
lemi
14.12.2016
16:28:07
хотя с с 9.5 это пофиксили

если БД изначально была на 9.5 то но деложно

Петр
14.12.2016
16:30:02
Не упал еще?

blkmrkt
14.12.2016
16:31:13
Не упал еще?
не, я в tmux запустил и детачнулся, там очнь много на экран печатается

lemi
14.12.2016
16:31:29
а БД с нуля делали на 9.5 или pg_upgrade ?

blkmrkt
14.12.2016
16:31:34
когда делал pg_dump, на 300м мегабайте дампа он отваливался

о вот вылетело

ERROR: timestamp out of range

Sergey
14.12.2016
16:33:09
Может это битые данные, которые не приводятся в разумный timestamp?

blkmrkt
14.12.2016
16:33:31
Sergey
14.12.2016
16:33:36
A vacuum какой-нибудь над таблицей проходит?

blkmrkt
14.12.2016
16:33:46
Sergey
14.12.2016
16:33:57
Это понятно

А vacuum freeze?

Google
blkmrkt
14.12.2016
16:34:15
А vacuum freeze?
вот не знаю, могу попробовать

давай так попробуй и напиши сюда на чем падает
вот на этом отвалилось ERROR: timestamp out of range

Петр
14.12.2016
16:35:04
а какое перед этим сообщение?

blkmrkt
14.12.2016
16:35:21
а ничего, просто данные в табличке

Петр
14.12.2016
16:35:31
какая последняя страница?

вот, давай сюда

blkmrkt
14.12.2016
16:35:43
(92815,25) вот это может

Петр
14.12.2016
16:35:52
да

blkmrkt
14.12.2016
16:35:56
SELECT ctid, * from comments;

Петр
14.12.2016
16:36:05
готов расстатья с этими данными?

blkmrkt
14.12.2016
16:36:10
конечно!

напалмом

Петр
14.12.2016
16:36:21
хоккей

SELECT ctid, column1...,columnN from comments where ctid='(92816,1)'; и т.д. ну и SELECT ctid, column1...,columnN from comments where ctid='(92816,2)'; и т.д. эта страница падает или нет?

ну значит и следующая испорчена

в общем понял, как найти испорченные страницы?

давай их затрем

blkmrkt
14.12.2016
16:39:28
с цифрой 4 ничего не возвращает

Петр
14.12.2016
16:40:01
останови пг

Google
blkmrkt
14.12.2016
16:40:16
done

Петр
14.12.2016
16:40:17
а не, спот

нене, запусти обратно

blkmrkt
14.12.2016
16:40:27
ок запустил

Петр
14.12.2016
16:40:52
посмотри как файл называется

на каком файле падает?

blkmrkt
14.12.2016
16:41:16
ээ а как это посмотреть?

Петр
14.12.2016
16:41:30
в логе ничего нет?

Admin
ERROR: S client not available

Петр
14.12.2016
16:43:00
если нет, то select relfilenode from pg_class where relname = 'comments';

blkmrkt
14.12.2016
16:43:14
в логе ничего нет?
это на запрос select ctid, * from comments where ctid='(92816,3)': 2016-12-14 18:42:31 EET [17076-1] postgres@vw WARNING: using index "pg_toast_2619_index" despite IgnoreSystemIndexes 2016-12-14 18:42:31 EET [17076-2] postgres@vw WARNING: using index "pg_toast_2619_index" despite IgnoreSystemIndexes 2016-12-14 18:42:31 EET [17076-3] postgres@vw ERROR: MultiXactId 3036690260 does no longer exist -- apparent wraparound 2016-12-14 18:42:31 EET [17076-4] postgres@vw STATEMENT: FETCH FORWARD 1 FROM _psql_cursor 2016-12-14 18:42:31 EET [17076-5] postgres@vw ERROR: current transaction is aborted, commands ignored until end of transaction block 2016-12-14 18:42:31 EET [17076-6] postgres@vw STATEMENT: CLOSE _psql_cursor

Петр
14.12.2016
16:44:42
посмотри еще oid бд

select oid,datname from pg_database;

blkmrkt
14.12.2016
16:45:05
oid такой же

а

16385

Петр
14.12.2016
16:45:59
вот, где у тебя лежит файл 16385/16443 ?

blkmrkt
14.12.2016
16:46:07
sek

Петр
14.12.2016
16:46:44
у тебя в таблице есть лобы?

Google
blkmrkt
14.12.2016
16:47:06
/var/lib/postgresql/9.5/main/base/16385

блобы?

Петр
14.12.2016
16:47:20
LOB

blkmrkt
14.12.2016
16:47:40
есть туплы которые в тостах лежат

но про lob не слышал

Петр
14.12.2016
16:48:00
хм, надо подумать

blkmrkt
14.12.2016
16:48:34
postgres@3081:~/9.5/main/base/16385$ ls -lah | grep 16443 | wc -l 110

Петр
14.12.2016
16:48:50
я бы рекомендовал тебе перед затиркой страниц сделать копию всех касающихся к commets файлов

blkmrkt
14.12.2016
16:48:55
110 кусков этого файла 16443

Петр
14.12.2016
16:49:34
вот, так надо как то посчитать

blkmrkt
14.12.2016
16:49:39
у меня места нет, но все диски отзеркалены в гуглохранилище, поэтому если что не так, восстановлю проделав все сначала

есть внешний медленный hdd, может туда pgdata перенесу?

Петр
14.12.2016
16:50:26
это долго

blkmrkt
14.12.2016
16:50:43
вот, так надо как то посчитать
просто забить нулями чанки этого файла, в котором нечитающиеся туплы?

Петр
14.12.2016
16:50:45
у тебя же есть несколько строк, перед тем как запрос упал?

blkmrkt
14.12.2016
16:51:18
Петр
14.12.2016
16:51:30
ладно, сейчас вычислим

по крайней мере попробуем

blkmrkt
14.12.2016
16:51:46
странно что это не автоматизировано еще

Петр
14.12.2016
16:52:17
по идее 92816 должна быть в первом файле

Страница 190 из 1062