Subb98
21.09.2017
17:37:50
Айтуар
21.09.2017
17:38:55
Google
Subb98
21.09.2017
17:39:22
Текущий архив не битый, поскольку рядом со мной сидит человек, у которого он же и работает.
Будем играть в пруфы.
Айтуар
21.09.2017
17:40:07
Subb98
21.09.2017
17:41:15
Ещё раз:
1. Я знаю, что я сделал не так, я написал об этом изначально: я не вырубил сервер перед изменением данных
2. Я знаю, что новые данные не битые
3. Я не знаю, как пофиксить shuttdown при старте БД
Но попробую просто пересоздать.
Айтуар
21.09.2017
17:43:15
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
Google
Fike
21.09.2017
17:48:11
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
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
Fike
21.09.2017
21:21:40
Различные мажорные версии любого ПО по умолчанию предполагают несовместимость. Она может и быть, но это чаще приятная неожиданность.
Alexey
21.09.2017
21:23:10
думаю, там сложно придумать что-то лучше, чем 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
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
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
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
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
по умолчанию там сокет, а не порт, вроде
Subb98
22.09.2017
04:28:03
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
Igor
22.09.2017
04:30:45
так эта команда никак на пользователей не завязана
если уж на то пошло
если база постгри лежит в /usr/local/var/postgres/, должно быть достаточно выполнить под обычным домашним юзером pg_resetxlog /usr/local/var/postgres/ (насчет доп. аргументов не подскажу, не в курсе вообще)
только все равно странно как-то, я на днях как раз переустановил макось и по умолчанию postgresовского юзера у меня нету сейчас. если будет ругаться на role postgres doesn't exist, создайте с помощью createuser -s postgres
Subb98
22.09.2017
04:37:00
Хотя, да, попробую не от судо.
Выполнилась.
Но данные не вычистились.
Печаль. Попробую вручную.
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
RunOver
22.09.2017
09:10:02
Всем дня
Кто-нибудь знает компанию «Амбер про»?
Adikhanov
22.09.2017
09:11:13
при использовании данной инструкции, postgres не запускается