|
Восстановление работы службы PostgreSQL. Восстановление списка баз postgreSQL
|
|||
---|---|---|---|
#18+
Исходные: PostgreSQL 9.6.3-1.1C Windows Server 2012 R2 Standard Перестала запускаться служба PostgreSQL. Лог PG: см вложенный файл. При проверке журналов Windows обнаружены следующие ошибки в журнале "приложение": 1. Timed out waiting for server startup 2. < 2017-10-02 10:31:28.985 MSK >FATAL: lock file "postmaster.pid" already exists < 2017-10-02 10:31:28.985 MSK >HINT: Is another postmaster (PID 2340) running in data directory "D:/PostgreSQL/9.6.3-1.1C/data"? 3. < 2017-10-02 10:25:58.084 MSK >LOG: redirecting log output to logging collector process < 2017-10-02 10:25:58.084 MSK >HINT: Future log output will appear in directory "pg_log". 4. 2017-10-02 11:25:34 MSD LOG: loaded library "$libdir/plugins/plugin_debugger.dll" 5. < 2017-10-02 10:21:29.995 MSK >LOG: database system is shut down 6. < 2017-10-02 10:21:29.995 MSK >FATAL: could not create any TCP/IP sockets 7. < 2017-10-02 10:21:29.995 MSK >WARNING: could not create listen socket for "*" 8. < 2017-10-02 10:21:29.995 MSK >LOG: could not bind IPv4 socket: Only one usage of each socket address (protocol/network address/port) is normally permitted. < 2017-10-02 10:21:29.995 MSK >HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry. Порядок моих действий: 1) Проверил "netstat –ano" порт был не занят другими приложениями, однако PostgreSQL запускался только в режиме приложения, а не службы. Завершил процессы PostgreSQL в диспетчере устройств и попытался запустить службу, всё равно ошибки. 2) удалил "postmaster.pid". 3) Переустановил PostgreSQL, проверил запуск службы – нормально работает, но у меня целевая “ d:\PostgreSQL\9.6.3-1.1C\data\” а не “c:\Program Files\PostgreSQL\9.6.3-1.1C\data\”. 4) Указал в реестре ImagePath путь до папки “ d:\PostgreSQL\9.6.3-1.1C\data\”. При попытке запустить PostgreSQL как службу те же ошибки. 5) Заменил в папке “ d:\PostgreSQL\9.6.3-1.1C\data\” всё кроме подпапки “bases” из “c:\Program Files\PostgreSQL\9.6.3-1.1C\data\”. Проверил - служба запускается , но в PGadmin у меня теперь только база postgres. Вопросы: 1) Как подключить существующие базы с диска в PG? Как определить как называется или называлась база в PGadmin поскольку на диске база видна по OID и не понятно что за базу я подключу? Самый огромный косяк PG в отличии от MS базы физически на диске называются OID а не нормальным задаваемым именем. То есть у меня на диске штук так 15 баз и соотвественно тыкать наугад и смотреть что реально я подключил не вариант. Можно ли в файлах из папки "data" что лежит на диске посмотреть как называлась база когда она была видна в PGadmin? 2) Я сохранил полностью папку “ d:\PostgreSQL\9.6.3-1.1C\data\” отдельно в изначальном виде до всех моих описанных манипуляций, возможно следует откатиться и выполнить другие варианты восстановления службы, либо уже на переустановленном PG восстановить список имен баз в PGadmin и соответствующие им физические каталоги баз? 3) Как в PG делать подключение базы? Опять же в MS это просто отключить/подключить *.mdf и *.ldf в два клика и база снова подключена с диска, а в PG я вижу только возможность создать новую базу? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2017, 02:41 |
|
Восстановление работы службы PostgreSQL. Восстановление списка баз postgreSQL
|
|||
---|---|---|---|
#18+
squidw5) Заменил в папке “ d:\PostgreSQL\9.6.3-1.1C\data\” всё кроме подпапки “bases” из “c:\Program Files\PostgreSQL\9.6.3-1.1C\data\”. Проверил - служба запускается , но в PGadmin у меня теперь только база postgres. Не надо так делать. Каталог базы нужен весь и в консистентном виде. squidw1) Как подключить существующие базы с диска в PG? Как определить как называется или называлась база в PGadmin поскольку на диске база видна по OID и не понятно что за базу я подключу? Самый огромный косяк PG в отличии от MS базы физически на диске называются OID а не нормальным задаваемым именем. То есть у меня на диске штук так 15 баз и соотвественно тыкать наугад и смотреть что реально я подключил не вариант. Можно ли в файлах из папки "data" что лежит на диске посмотреть как называлась база когда она была видна в PGadmin? Или вы успешно восстанавливаете целиком кластер или вас вообще не волнует как назывались базы. Потому что без pg_catalog'а оно работать всё равно не будет. squidw2) Я сохранил полностью папку “ d:\PostgreSQL\9.6.3-1.1C\data\” отдельно в изначальном виде до всех моих описанных манипуляций, возможно следует откатиться и выполнить другие варианты восстановления службы, либо уже на переустановленном PG восстановить список имен баз в PGadmin и соответствующие им физические каталоги баз? Вам не нужны физические каталоги баз. Ну а если всё совсем плохо - то база же вам всё равно не нужна была, раз не с бекапа восстанавливаете. squidw3) Как в PG делать подключение базы? Опять же в MS это просто отключить/подключить *.mdf и *.ldf в два клика и база снова подключена с диска, а в PG я вижу только возможность создать новую базу? Поясните терминологию "подключение". squidwоднако PostgreSQL запускался только в режиме приложения Но запускался? Значит (на копии каталога, конечно) запустите, снимите бекап и штатно выключите. Проверьте, что сокеты никто не держит, проверьте что других запущенных процессов pg нет. Запустите вновь. Наблюдая за логом разумеется. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2017, 10:31 |
|
|
start [/forum/topic.php?fid=53&fpage=66&tid=1996199]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 135ms |
0 / 0 |