@pgsql

Страница 486 из 1062
Vadim
21.09.2017
14:41:16
в личке

Alexey
21.09.2017
15:07:46
всем привет

Gleb
21.09.2017
15:55:02
Уже решили проблему
А что если всем рассказать?

Maxim
21.09.2017
15:55:20
Да, Вадим, рассказывай)

Google
Vadim
21.09.2017
15:57:35
Ошибка достаточно простая. У Александра используется pglogical. Кто то выполнил ddl на мастере. Репликация естественно остановилась и завис логический слот. По этой причине мастер не удалял старые wa-логи

Alexey
21.09.2017
16:06:58
в чём архитектурная проблема репликации ddl в pglogical? нигде не смог найти ответ

то есть, я понимаю, что logical decoding не поддерживает. но в чём причина?

Vadim
21.09.2017
16:09:28
Архитектурно мне кажется ограничений нет. Decoding используется и в pglogical и в bdr. Я думаю это сознательное ограничение со стороны 2ndQ.

Alexey
21.09.2017
16:10:21
хм, но им-то это зачем? чтобы платную версию покупали?

и ограничение скорее в logical decoding, чем в pglogical. LD появилось в 9.4, на носу 10.0, а воз и ныне там. подозреваю, что там с архитектурной стороны кто-то что-то не додумал

Adikhanov
21.09.2017
16:11:39
Доброго времени суток! Нужна помощь в установке расширения pldbgapi на платформу win10.

Vadim
21.09.2017
16:17:09
Mikhail
21.09.2017
16:23:59
Pglogical архитектурно слаба

Так как буфер в валах

И далее просто несколько печальных исходов

Ну и в целом репликация была притянута поверх логикал декодинга -- который как бы не предполагал по дефолту репликации

А был более механизмом дебага

Google
Mikhail
21.09.2017
16:26:46
Короче вызываю огонь на себя

Велкам

И о боже, Копытов в чате

Vadim
21.09.2017
16:29:12
pglogical is based on technology developed for BDR and shares some code with BDR. It's designed to be more flexible than BDR and to apply better to single-master unidirectional replication, data-gather/merge, non-mesh multimaster topologies, etc.

То есть ничего особо не мешало прикрутить ddl так же как в bdr.

Mikhail
21.09.2017
16:29:24
Но тут похоже мы будем во много с ним на одной стороне

Но в мускуле ещё хуже ))

@alexey_kopytov

Stas
21.09.2017
16:31:10
в чём архитектурная проблема репликации ddl в pglogical? нигде не смог найти ответ
а как делать? реплицировать текст стейтментов? реплицировать изменения каталога?

Vadim
21.09.2017
16:34:30
А lock-и не полезут при репликации DDL? Я думаю придется делать целый механизм который будет за этим следить.

В BDR у них там целый Global flush-to-consistent-state механизм

хм, но им-то это зачем? чтобы платную версию покупали?
1) Logical decoding doesn't decode catalog changes directly.  То есть это вполне можно сделать. 2) .. but its main purpose is to provide a cleaner, simpler base that doesn't require a patched PostgreSQL, with a pluggable and extensible design. Похоже что основная цель pglogical именно в этом. И отсюда растут ноги.

Stas
21.09.2017
16:51:31
1) Logical decoding doesn't decode catalog changes directly.  То есть это вполне можно сделать. 2) .. but its main purpose is to provide a cleaner, simpler base that doesn't require a patched PostgreSQL, with a pluggable and extensible design. Похоже что основная цель pglogical именно в этом. И отсюда растут ноги.
можно, только что с ними потом делать? там oid-ы зашиты которые уникальны для этого инстанса; Их можно вырезать, сохранив связи между строками, но просто вставки в каталог на принимающей стороне не достаточно, кто-то же файлы таблицам должен создавать и тп

Mikhail
21.09.2017
16:52:44
Не надо это ещё глубже прятать в оиды и опять в "физику"

Мой концепт -- делать ручки для фреймворков : это все логические вещи , суть sql должен быть для организации репликаций

Кстати : а стандарт что то про это говорит ?!

Stas
21.09.2017
16:56:46
Мой концепт -- делать ручки для фреймворков : это все логические вещи , суть sql должен быть для организации репликаций
statement based можно и не то чтоб очень сложно, но там есть родовые травмы. Сделать функцию которая создает таблицу с таймстампом в названии — самый простой пример того что перестанет работать

Alexey
21.09.2017
16:59:13
Я сейчас с телефона и много кнопок давить лень, но в мускуле да, statement based ddl, а как ещё

Не понял проблемы с функцией и таймстампом

Google
Subb98
21.09.2017
17:03:18
Добрый вечер. Я заменил файл БД ( /usr/local/var/postgres/ ), не выключив предварительно сервер postgres. Как следствие, у меня он теперь не включается (точнее, падает с ошибкой). Уже гуглил и перепробовал множество решений, pg_xlog (head) чистил, postmaster.pid удалял, всё бестолку. Кто уже сталкивался с этим, подскажите, как мне сдвинуть "слона" с мёртвой точки?

Vadim
21.09.2017
17:03:34
Возможно это потому что в мускуле нельзя сделать физическую репликацию?) Логическое декодирование вполне себя оправдывает для решения тех задач, под которые создавался pglogical. А именно для миграции между версиями и для переноса данных между oltp и olap.

Igor
21.09.2017
17:03:34
@Subb98 а ошибка-то какая конкретно? увеличь verbosity логов, посмотри логи.

Subb98
21.09.2017
17:04:14
@Subb98 а ошибка-то какая конкретно? увеличь verbosity логов, посмотри логи.
Я не у рабочего места, но что-то типа LOG: <bla-bla> server shut down

Там разные могут быть

Igor
21.09.2017
17:04:23
информативненько

Subb98
21.09.2017
17:04:44
Ну, типичная ошибка, когда БД не взлетает

Сейчас попробую нагуглить.

И скину похожие.

Igor
21.09.2017
17:06:08
вообще, /var/postgres/ - это целая директория, что именно ты в ней поменял и на что?)

Alexey
21.09.2017
17:06:38
Просто то, как в постгресе сейчас - хороший такой способ выстрелить себе в ногу, что мы и наблюдаем

Subb98
21.09.2017
17:06:52
вообще, /var/postgres/ - это целая директория, что именно ты в ней поменял и на что?)
Я заменил всё содержимое. То есть, взял базу с продакшена и обновил на локальной машине.

Я уже так делал.

В мускуле такого нет.

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

Похожий лог: LOG: database system was not properly shut down; automatic recovery in progress LOG: redo starts at 8A/8F00833C PANIC: block 1100 unfound LOG: startup process (PID 31612) was terminated by signal 6 LOG: aborting startup due to startup process failure LOG: logger shutting down

Stas
21.09.2017
17:09:36
Не понял проблемы с функцией и таймстампом
время на разных серверах разное. Если дергаешь функцию, которая создает таблицу вида name_#{Time.now} то название получится разное на разных нодах

Subb98
21.09.2017
17:09:50
LOG: startup process (PID 31612) was terminated by signal 6 - такая строчка точно есть.

Google
Subb98
21.09.2017
17:09:59
Только pid другой

И это при том, что .pid я вручную удаляю.

Subb98
21.09.2017
17:15:54
https://dba.stackexchange.com/questions/44911/issues-starting-postgres-server - наиболее похожий issue на мой. Как я понял, в том случае была удалена и инициализирована новая БД.

Stas
21.09.2017
17:16:52
Нет, но если сам ddl пойдёт стейтментом, то в чем проблема?
Если эта функция собирает sql как текстовую строку, то можно её перехватить, да. А если это сишная функция, которая конструирует сама parsetree то текста уже нет.

Subb98
21.09.2017
17:18:56
'pg_xlog (head) чистил' А это зачем сделали?
https://postgrespro.ru/docs/postgrespro/9.6/app-pgresetxlog

Stas
21.09.2017
17:19:31
Другой пример — работа со временными таблицами: create temp table a(...); create table b as a; данных временной таблицы на другом сервере не будет, поэтому если реплецировать create table as, то ей неоткуда будет брать данные

ну и таких мелочей много

Maksim
21.09.2017
17:20:11
LOG: startup process (PID 31612) was terminated by signal 6 - такая строчка точно есть.
6 сигнал - аборт, нарвались на что-то неконсистентное. Можете продиагностировать корку, если интересно, а лучше сделать бекап стандартным способом

Stas
21.09.2017
17:21:02
правильнее всего, наверное, декодить каталог, собирать его во что-то промежуточное, и написать применялку этого промежуточного. Но это много работы.

Subb98
21.09.2017
17:21:31
6 сигнал - аборт, нарвались на что-то неконсистентное. Можете продиагностировать корку, если интересно, а лучше сделать бекап стандартным способом
На диагностику у меня нет времени, да и не умею я, откровенно =) Мне нужны данные для теста программного кода. Если я вас верно понимаю, проще пересоздать БД.

Subb98
21.09.2017
17:23:26
Ну, вытаскивал бэкап не я сам. У меня лично доступа к проду нет. Поэтому я и заливал файл БД вручную, а не командой.

Maksim
21.09.2017
17:24:02
какой файл?

Subb98
21.09.2017
17:24:48
Вернее, распаковывал архив в /usr/local/var/postgres

https://www.postgresql.org/docs/9.6/static/storage-file-layout.html - хз даже, как это ещё назвать

Крч, всю структуру БД

Google
Айтуар
21.09.2017
17:28:16
Вернее, распаковывал архив в /usr/local/var/postgres
а тот нехороший человек который вам этот архив сделал прод при этом останавливал?

Igor
21.09.2017
17:28:30
капец конечно

Subb98
21.09.2017
17:29:22
Я забыл остановить свой локальный сервер, в этом и проблема.

И начал заменять файлы.

Maksim
21.09.2017
17:30:01
Вернее, распаковывал архив в /usr/local/var/postgres
В принципе в доке описано как делать копию pgdata когда сервер работает https://postgrespro.ru/docs/postgrespro/9.6/continuous-archiving#backup-lowlevel-base-backup

Айтуар
21.09.2017
17:31:59
Я забыл остановить свой локальный сервер, в этом и проблема.
ну делов-то, кильнул процессы, очистил каталог и распаковал тогда свой архив

Alex
21.09.2017
17:33:09
PostgreSQL 10 RC 1 Released! написано на саите,а rpm не нашел ,вы уже потестили ?

Subb98
21.09.2017
17:33:44
ну делов-то, кильнул процессы, очистил каталог и распаковал тогда свой архив
Ну, логически, да. Только я за пару часов не смог добиться того, чтобы поднять БД. Хотя, какие только решения не попробовал.

Завтрп попробую пересоздать БД, это должно сработать.

Igor
21.09.2017
17:34:44
я бы попросил сделать нормальный бекап с продакшена (pgdump там, copy, я не знаю) и накатил бы его уже на свежесозданную /var/postgres/

Айтуар
21.09.2017
17:35:06
Ну, логически, да. Только я за пару часов не смог добиться того, чтобы поднять БД. Хотя, какие только решения не попробовал.
если раньше такой же способ работал как ты писал, то тут 2 варианта 1. ты неправильно что-то делаешь, 2. архив у тебя битый.

Subb98
21.09.2017
17:35:13
И я раньше накатывал точно также.

Тупо не вырубил постгрес на этот раз.

Dmitry
21.09.2017
17:35:59
Igor
21.09.2017
17:36:02
ну тогда ведь, по идее, должно работать 1) остановить постгрю 2) грохнуть все содержимое /var/postgres/ 3) распаковать туда бекап 4) запустить постгрю

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