@pgsql

Страница 487 из 1062
Subb98
21.09.2017
17:37:50
а есть старый архив БД? Который до этого работал.
Нет. Да он и не нужен. Там денормализованные данные после 100500 разных задач.

Айтуар
21.09.2017
17:38:55
Нет. Да он и не нужен. Там денормализованные данные после 100500 разных задач.
он нужен для проверки того что у тебя текущий архив битый, если старый архив заработает. Или пусть тогда на другой машине эту процедуру проделай.

Google
Subb98
21.09.2017
17:39:22
Текущий архив не битый, поскольку рядом со мной сидит человек, у которого он же и работает.

Будем играть в пруфы.

Айтуар
21.09.2017
17:40:07
Текущий архив не битый, поскольку рядом со мной сидит человек, у которого он же и работает.
ну тогда сочувствую, ты что-то делаешь неправильно. Смотри логи самой postgres и ОС.

Subb98
21.09.2017
17:41:15
Ещё раз: 1. Я знаю, что я сделал не так, я написал об этом изначально: я не вырубил сервер перед изменением данных 2. Я знаю, что новые данные не битые 3. Я не знаю, как пофиксить shuttdown при старте БД

Но попробую просто пересоздать.

Subb98
21.09.2017
17:44:47
Эм, ну да, замечание про логи здравое, с этим я полностью согласен.

Но мне важно не столько понять проблему, сколько пофиксить её. То есть, на локалке можно творить всё, что хочется, главное получить результат как можно быстрее.

Айтуар
21.09.2017
17:46:11
Эм, ну да, замечание про логи здравое, с этим я полностью согласен.
ну вот когда с нуля повторишь разворачивание архива и если он не стартанёт, то смотри логи и пиши их сюда, чтобы мы не гадали .

Subb98
21.09.2017
17:47:23
Это да, но все решения, что я сегодня нагуглил, какие-то однотипные =)

Айтуар
21.09.2017
17:47:51
Это да, но все решения, что я сегодня нагуглил, какие-то однотипные =)
кстати, а версия postgres у тебя та же что и на проде?

Google
Fike
21.09.2017
17:48:11
Я хз, по какой причине.
/tmp и /var/run проверь на предмет артефактов на всякий

Subb98
21.09.2017
17:48:15
Понятия не имею, какая версия на проде.

Айтуар
21.09.2017
17:48:39
Понятия не имею, какая версия на проде.
ну у соседа твоего, у которого тот же архив работает спроси

Fike
21.09.2017
17:48:40
я не знаю, оставляет ли там что-то постгрес, но больше просто негде состояние хранить

Subb98
21.09.2017
17:48:47
ОК

Спасибо вам за советы, завтра уже буду знать примерно, куда копать. Сегодня вообще идей не было. Извините. если утомил =)

Alexey
21.09.2017
18:08:15
Если эта функция собирает sql как текстовую строку, то можно её перехватить, да. А если это сишная функция, которая конструирует сама parsetree то текста уже нет.
я кажется начинаю понимать, в чём проблема с ddl и репликацией. В постгресе, как я понимаю, нет кода, который позволяет построить SQL по parsetree или data dictionary. Поэтому нет SHOW CREATE TABLE, поэтому pg_dump делает какие-то дикие приседания. И в logical decoding пришлось бы такие же приседания делать

Stas
21.09.2017
18:10:31
Но, возможно, этого и не надо делать, а проще реплицировать каталог, но с хитрой применялкой, которая в нужных местах файлы создаст и тп.

Alexey
21.09.2017
18:15:29
да, но тогда будет сложно использовать logical decoding для отладки и репликации в какие-то не-постгресовские системы

и подозреваю возникнут проблемы с кросс-версионной репликацией, а также кластерами и изоляцией ddl в параллельной репликации (когда появятся)

но такой код в любом случае был бы полезен для show create table и pg_dump

Stas
21.09.2017
18:22:15
согласен

Alex
21.09.2017
21:19:19
и подозреваю возникнут проблемы с кросс-версионной репликацией, а также кластерами и изоляцией ddl в параллельной репликации (когда появятся)
у пг и так сейчас норм проблем с кросверсионной репликацией. тут даже подозревать не надо, достаточно обновить мажорную версию на связке мастер-реплика

Fike
21.09.2017
21:21:40
Различные мажорные версии любого ПО по умолчанию предполагают несовместимость. Она может и быть, но это чаще приятная неожиданность.

Alexey
21.09.2017
21:23:10
у пг и так сейчас норм проблем с кросверсионной репликацией. тут даже подозревать не надо, достаточно обновить мажорную версию на связке мастер-реплика
я не про физическую. я про реализацию репликации ddl в logical decoding через репликацию изменений в каталоге. это чревато

думаю, там сложно придумать что-то лучше, чем statement-based

и это было бы просто реализовать, если бы не некоторые особенности postgresql, о которых я написал

Alex
21.09.2017
23:55:10
Различные мажорные версии любого ПО по умолчанию предполагают несовместимость. Она может и быть, но это чаще приятная неожиданность.
смотря для чего по предназначено. если на поиграть на ноутбуке то да скорее всего несовместимо

Fike
22.09.2017
00:30:34
смотря для чего по предназначено. если на поиграть на ноутбуке то да скорее всего несовместимо
Для чего угодно. Смена мажорной версии означает обратную несовместимость публичного апи. Если какая-то часть при этом не была затронута - хорошо.

Google
Fike
22.09.2017
00:32:04
Для этого их и меняют, чтобы привязать к обновлению послание "вот это обновление нельзя просто взять и поставить, читайте ченджлог"

Denis
22.09.2017
01:25:31
привет, я что-то страшно туплю. тестовая база, пытаюсь удалить таблицу - команда висит. локов на таблицу и первичный ключ до drop table ... нет, при выполнении удаления появляются AccessExclusiveLock, но это норм. что может блокировать удаление таблицы?

Igor
22.09.2017
01:27:39
autovacuum может?

Denis
22.09.2017
01:30:25
autovacuum может?
Нет, не он...

Subb98
22.09.2017
03:56:04
Доброе утро. Я сейчас на рабочем месте и могу поделиться точным логом: $ pg_ctl -D /usr/local/var/postgres start server starting $ LOG: database system was shut down at 2017-09-21 19:21:38 +05 LOG: invalid primary checkpoint record LOG: invalid secondary checkpoint record PANIC: could not locate a valid checkpoint record LOG: startup process (PID 3260) was terminated by signal 6: Abort trap LOG: aborting startup due to startup process failure LOG: database system is shut down Мб, у вас будут ещё какое-либо соображения.

П.с.: через brew всё запускается, но не работает.

Нашёл эту статью: https://www.mironovs.com/databases/vosstanovlenie-postgresql-posle-povrezhdeniya-fajlov-xlog.html Сейчас попробую её

Igor
22.09.2017
04:03:19
не работает - а конкретнее? в логах то же самое? 1) brew services stop postgresql 2) mv /usr/local/var/postgres/ /usr/local/var/postgres_/ 3) initdb /usr/local/var/postgres/ потом накатить в эту папку бекап, потом запустить brew services start postgres как-то так, наверное это вариант "грохнуть все и создать чистый сервак постгри"

Subb98
22.09.2017
04:13:07
Я пока не могу пересоздать базу. Т.к. бэкап у меня снова будет только спустя пару часов. Места на SSD не достаточно, чтобы хранить архив + распакованные данные базы + копировать их в другую папку при этом. Поэтому архив мне пришлось снести.

Подскажите, есть ли возможность узнать, какой пользователь root в postgresql ?

pg_hba.conf смотрю.

Там для пользователя postgres стоит метод trust.

Но через su postgres я не могу под этим пользователем зайти без пароля.

Что я делаю не так?

Denis
22.09.2017
04:16:38
по сокетам или по tcp подключаетесь? если tcp, добавьте -h localhost

Subb98
22.09.2017
04:17:19
Да, по tcp. Спасибо, сейчас попробую.

Эм, да, кстати. Мне сейчас нужно не подключиться.

Mike Chuguniy
22.09.2017
04:18:57
Там для пользователя postgres стоит метод trust.
А тип подключения для траст: host или local?

Subb98
22.09.2017
04:19:05
А выполнить команду от имени рута постгрес.

Google
Subb98
22.09.2017
04:19:56
host palantir postgres 0.0.0.0/0 trust

Mike Chuguniy
22.09.2017
04:20:22
Сурово, однако.

И да, постгрес у вас может подключиться только к БД palantir

Subb98
22.09.2017
04:24:19
Ну, других БД сейчас и нет, по сути.

Мне бы просто выполнить команду от этого пользователя. Как я понимаю, это рут.

Igor
22.09.2017
04:25:47
postgres - суперпользователь, да

Subb98
22.09.2017
04:26:20
Видимо.

Mike Chuguniy
22.09.2017
04:26:43
Ну, других БД сейчас и нет, по сути.
По сути там ещё postgres, template1, template0, и к ним тоже имеет смысл подключаться. Но траст для отовсюду - это сильно, ага

Igor
22.09.2017
04:26:58
psql -U postgres -h 127.0.0.1 -p 5432

Subb98
22.09.2017
04:27:03
Почему для отовсюду? Это же локалка.

Igor
22.09.2017
04:27:04
так не подключается?

потому что 0.0.0.0/0

Subb98
22.09.2017
04:27:22
psql -U postgres -h 127.0.0.1 -p 5432
Не, не. Не подключиться.

Igor
22.09.2017
04:27:23
это не локалка, это буквально любой ipv4 адрес

Subb98
22.09.2017
04:27:31
А выполнить команду. Сейчас пример скину.

Igor
22.09.2017
04:27:39
я правильно понял, что сервер на макоси поднимаете?

Subb98
22.09.2017
04:27:44
$ pg_resetxlog -o 75014368 -x 2400998005 -f /var/db/pgsql/ Transaction log reset

Igor
22.09.2017
04:27:46
по умолчанию там сокет, а не порт, вроде

Igor
22.09.2017
04:28:40
а почему /var/db/pgsql?

Google
Igor
22.09.2017
04:28:50
если homebrewшная постгря в /usr/local/var/postgres/ валяется

Subb98
22.09.2017
04:29:21
а почему /var/db/pgsql?
Это пример с сайта.

Igor
22.09.2017
04:30:45
так эта команда никак на пользователей не завязана

если уж на то пошло

если база постгри лежит в /usr/local/var/postgres/, должно быть достаточно выполнить под обычным домашним юзером pg_resetxlog /usr/local/var/postgres/ (насчет доп. аргументов не подскажу, не в курсе вообще)

Но через su postgres я не могу под этим пользователем зайти без пароля.
а если таки хочется зайти под пользователем в базу, тогда все-таки psql -U postgres palantir (судя по скинутому pg_hba)

только все равно странно как-то, я на днях как раз переустановил макось и по умолчанию postgresовского юзера у меня нету сейчас. если будет ругаться на role postgres doesn't exist, создайте с помощью createuser -s postgres

Subb98
22.09.2017
04:37:00
так эта команда никак на пользователей не завязана
$ sudo pg_resetxlog -o 16103604 -x 13838760 -f /usr/local/var/postgres/ Password: pg_resetxlog: cannot be executed by "root" You must run pg_resetxlog as the PostgreSQL superuser.

Хотя, да, попробую не от судо.

Выполнилась.

Но данные не вычистились.

Печаль. Попробую вручную.

Mike Chuguniy
22.09.2017
04:41:25
sudo -iu postgres <cmd>

Subb98
22.09.2017
08:17:33
Получил бэкап, переустановил всё с нуля, всё ОК теперь. Ещё раз благодарю всех, кто помогал.

Adikhanov
22.09.2017
08:45:16
Здравствуйте! Не подскажите как можно дебажить работу хранимой функции? Использую сборку PostgresPro, версию 9.6.3

Sergey
22.09.2017
09:04:57
Здравствуйте! Не подскажите как можно дебажить работу хранимой функции? Использую сборку PostgresPro, версию 9.6.3
Если pl/pgsql то можно попробовать так: http://www.postgresonline.com/journal/archives/214-Using-PgAdmin-PLPgSQL-Debugger.html

RunOver
22.09.2017
09:10:02
Всем дня

Кто-нибудь знает компанию «Амбер про»?

Adikhanov
22.09.2017
09:11:13
при использовании данной инструкции, postgres не запускается

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