@pgsql

Страница 437 из 1062
Alexey
21.08.2017
19:10:38
так это же просто праздник какой-то. серьёзно?

Dmitry
21.08.2017
19:11:01
Айтуар
21.08.2017
19:11:16
/usr/lib/postgresql/9.6/bin/initdb -D main -k /usr/lib/postgresql/9.6/bin/pgbench -i -s 100 postgres=# select count(*) from pgbench_accounts; count —------— 10000000 (1 row) postgres=# \q postgres@ubuntu:~/9.6$ rm -f main/base/12439/16396.1 postgres@ubuntu:~/9.6$ psql psql (9.6.4) Type "help" for help. postgres=# select count(*) from pgbench_accounts; count —------- 7995392 (1 row) postgres=#
Чексуммы несуществующих блоков всегда верны ) И нулевых тоже кстати. Проблемы ФС оно конечно не решит, но обычно файлы так не исчезают. Они только портятся.

Google
Dmitry
21.08.2017
19:11:56
обнулить. xfs так поступает

Dmitry
21.08.2017
19:12:58
postgres=# select count(*) from pgbench_accounts; count —------— 10000000 (1 row) postgres=# select pg_relation_filepath('pgbench_accounts'); pg_relation_filepath —------------------— base/12439/16415 (1 row) postgres=# \q postgres@ubuntu:~/9.6$ rm -f main/base/12439/16415 16415 16415.1 16415_fsm 16415_vm postgres@ubuntu:~/9.6$ > main/base/12439/16415.1 postgres@ubuntu:~/9.6$ psql psql (9.6.4) Type "help" for help. postgres=# select count(*) from pgbench_accounts; count —------- 7995392 (1 row) postgres=#

> main/base/12439/16415.1

обнуление файла на самом деле равносильно его удалению

pg просто прошупывает eof

Айтуар
21.08.2017
19:13:50
Т.к. если не перезапускать БД в памяти останутся ваши правильные не тронутые блоки данных.

Dmitry
21.08.2017
19:13:59
это если shb хватит

у меня в данном случае немного

Айтуар
21.08.2017
19:14:15
это если shb хватит
ну для тестов указанных выше хватает.

Dmitry
21.08.2017
19:14:44
не важно, представьте что после ребута ваш pg ничего не скажет про то что вы проебали данные

и насрать на чексуммы или еще что-то

а если вы надетесть на то что с shb он скинет в wal что-то то вас тут тоже можно огорчить

Google
Айтуар
21.08.2017
19:15:51
не важно, представьте что после ребута ваш pg ничего не скажет про то что вы проебали данные
мне кажется нет такой БД или системы вообще, которая может сказать что среди сотен гигов у вас ошибка пока вы к этим данным не обратитесь.

Dmitry
21.08.2017
19:16:02
если в wal есть запись о том что есть смещение на 1000k блоков

и таких файлов нет

pg просто забьет нулями

все 1000k-1 блоков

и ничего вам не скажет

Аггей
21.08.2017
19:17:10
Ну допустим тот же oracle тоже ничего не скажет - пока читать corrupted блок не будете

Dmitry
21.08.2017
19:17:43
ну вот не надо, чтобы распидорашеный оракл запустить надо попотеть

Dmitry
21.08.2017
19:17:52
а тут сраных 5 файлов для старта надо

Alexey
21.08.2017
19:17:56
это-то понятно. но я вот не могу представить, как с mysql повторить такой же трюк, как выше с pgbench

Аггей
21.08.2017
19:18:04
Он орет благим матом, если версии датафайлов различаются, а вот на запись пары байт hex редактором - ничего не скажет

Аггей
21.08.2017
19:19:37
Нет, там есть еще метка типа xid...

Оракл будет крыть вас матом на контрол файлы, на битые undo и redo, но вот повреждения в блоках данных заметит только при чтении

Правда там достаточно развита обвязка - системные таблицы и вьюхи которые позволяют понять какие именно записи повреждены и даже как-то пофиксить это

Alexey
21.08.2017
19:22:54
что в общем логично. чтобы повреждения в данных заметить, надо на данные посмотреть для начала

Аггей
21.08.2017
19:23:42
что в общем логично. чтобы повреждения в данных заметить, надо на данные посмотреть для начала
Я согласен. Я скорее про то, что нет совершенного инструмента пока )

Artem
21.08.2017
22:43:30
на pgday рассказывали как обновляются с pglogical. Поднимают логическую реплику, догоняются и включают ее как основной сервер. Сам не пробовал, но вроде как должен быть минимальный даунтайм
Обновляли через pglogical, добавив новую ноду с логической репликацией в балансировщик, кстати PGPool прекрасно понимает логическую репликацию.

Но pglogical не терпит любых изменений в схеме данных, хоть там и можно отдельно давать ddl команды, но решение явно не на постоянную работу.

Google
Artem
22.08.2017
01:37:55
По поводу Segmentation fault Постгреса в проде:

Потестил те же самые запросы на деве, всё ок. Ничего не падает.

Но конфиги полностью одинаковые,!

В связи с этим есть следующий вопрос:

Параметр dynamic_shared_memory_type есть смысл сменить с posix на sysv ?

Darafei
22.08.2017
03:57:46
а трейс в gdb пробовали смотреть?

ну что бы хотя бы подсистему, где падает, представлять

Artem
22.08.2017
04:20:36
А можно мануал как юзать gdb, для тех кто из деревни :)

Denis
22.08.2017
05:02:23
А можно мануал как юзать gdb, для тех кто из деревни :)
https://wiki.postgresql.org/wiki/Getting_a_stack_trace_of_a_running_PostgreSQL_backend_on_Linux/BSD

Artem
22.08.2017
05:02:54
Спасибо!

Алексей
22.08.2017
13:56:44
господа, а как соотносятся команды pg_archivecleanup и pg_basebackup ?

не очень понимаю что надо дать на вход клинапу после бекапа через бейсбекап

Darafei
22.08.2017
13:57:20
а почему ты решил, что они соотносятся?

Алексей
22.08.2017
13:57:37
не знаю. хотел бы что бы соотносились :)

как то хочется удалять валы

Darafei
22.08.2017
13:58:38
https://www.postgresql.org/docs/9.6/static/pgarchivecleanup.html

кажется, документация достаточно понятно написана

Алексей
22.08.2017
14:00:20
увы. она написано недостаточно понятно.

Darafei
22.08.2017
14:00:57
pg_archivecleanup дёргает сам постгрес в recovery, когда отыграет вал

Алексей
22.08.2017
14:02:29
получается что клинап немного бесполезен при бекапе через pg_basebackup со слейва. на мастере почистить вал не получится. и надо что то придумывать. сейчас я вижу что в backup_label есть указание на файл который последний. но этого файла еще нету в архиве.

Google
Алексей
22.08.2017
14:11:24
я не хочу ничего изобретать. просто пытаюсь собрат ьвсе в кучу.

получается фигово и стремно.

для ha есть patroni. и он сделал так что ha работает.

в доке патрони есть упомнимание про wal-e

Alex
22.08.2017
14:16:04
что ты хочешь чистить

Admin
ERROR: S client not available

Alex
22.08.2017
14:16:09
ответь себе на этот вопрос

Алексей
22.08.2017
14:16:21
я хочу чистить примененные валы

Alex
22.08.2017
14:16:47
в каком случае ?

Игорь
22.08.2017
14:16:52
настрой barman, например

Алексей
22.08.2017
14:18:15
в каком случае ?
после сделанного бекапа.

настрой barman, например
почему именно его ?

чем плох бекап через basebackup?

Nikolay
22.08.2017
14:18:58
Ты backup manager изобретаешь? Не проще ли взять готовый профессиональный инструмент?
Поделитесь пожалуйста опытом. Про какой профессиональный инструмент идёт речь?

чем плох бекап через basebackup?
Ни кто не валидирует бакап

Уже писали выше

Аггей
22.08.2017
14:20:33
чем плох бекап через basebackup?
Хорош скоростью развертывания, плох размером - при большом количестве индексов - его объем в разы больше дампа

Алексей
22.08.2017
14:20:51
у меня база 5 гигов.

мне не жалко.

Google
Аггей
22.08.2017
14:21:40
У меня базы 100 GB - 1 TB. Тут уже есть на чем экономить )

Игорь
22.08.2017
14:22:08
тогда pgbackrest он жмет

Алексей
22.08.2017
14:23:33
мне не надо жать. у мен ядедублицирующая схд под бекап.

мне только удалять валы.

Nikolay
22.08.2017
14:25:48
Петр
22.08.2017
14:26:25
что мешает вам удалить валы?

Алексей
22.08.2017
14:28:01
как понять какие можно удалить ?

Петр
22.08.2017
14:29:01
1) глянуть где сейчас находится стендбай

2) посмотреть .backup

Алексей
22.08.2017
14:29:25
2) посмотреть .backup
у меня нет этих файлов.

Петр
22.08.2017
14:29:31
3) посмотреть в менеджер бекапа, какие файлы забекаплены

Алексей
22.08.2017
14:29:38
они создаются после pg_start_backup

а выполнить оный я не могу ибо он выполнятся должен на мастере если я правильно понимаю.

slave# su - postgres -c "psql -c \"select pg_start_backup('test')\"" ERROR: recovery is in progress HINT: WAL control functions cannot be executed during recovery.

Игорь
22.08.2017
14:39:15
чем плох бекап через basebackup?
barman и другие managers делают его через basebackup

Петр
22.08.2017
14:40:06
на примари смотрите pg_xlogfile_name()

Алексей
22.08.2017
14:50:40
так опять скриптами запахло и ssh с ноды на ноду

Петр
22.08.2017
14:55:24
бэкап без скриптов выполняется у вас?

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