powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / pg_basebackup и recovery.conf
9 сообщений из 9, страница 1 из 1
pg_basebackup и recovery.conf
    #39104627
Фотография grufos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работаю с PostgreSQL на Windows. Версия 9.4.4 x64

Пробую восстановиться из полного бэкапа созданного через pg_basebackup
ключи команды:
Код: powershell
1.
--pgdata="D:\MyArcDB" --format=p --xlog-method=stream --checkpoint=fast --progress --username=postgres --no-password --host=localhost --port=5432 --label=Backup_full


1. останавливаю сервер
2. удаляю все каталоги в папке кластера
3. восстанавливаю все файлы из архива
4. запускаю сервер...
Сервер успешно стартует.

Теперь, хочется научиться пользоваться файлом recovery.conf
Цель - научиться восстанавливаться на разные точки по времени PITR (используя архивные WAL полученные после полного базового копирования.)
Создаю такой файл
Код: powershell
1.
2.
3.
4.
5.
6.
# -------------------------------
# PostgreSQL recovery config file
# -------------------------------
#
restore_command='copy "D:\\Backup\\PostgreSQL\\WAL\\%f" "%p"'
recovery_end_command='echo finish'


Каталог D:\Backup\PostgreSQL\WAL существует и он пуст. Прав доступа для службы прописаны.
Повторяю пункты с 1 по 3 кладу в корень каталога кластера этот файл и запускаю службу.
Сервер не стартует. Смотрю лог:
Код: sql
1.
2.
3.
4.
5.
2015-11-16 15:31:04 MSK [11220]: [1-1] user=[],db=[],app=[],client=[], [vxid: txid:0] [] LOG:  database system was interrupted; last known up at 2015-11-15 01:00:06 MSK
2015-11-16 15:31:05 MSK [6956]: [1-1] user=[postgres],db=[postgres],app=[[unknown]],client=[::1], [vxid: txid:0] [] FATAL:  the database system is starting up
2015-11-16 15:31:05 MSK [11220]: [2-1] user=[],db=[],app=[],client=[], [vxid: txid:0] [] FATAL:  syntax error in file "recovery.conf" line 1, near end of line
2015-11-16 15:31:05 MSK [6964]: [3-1] user=[],db=[],app=[],client=[], [vxid: txid:0] [] LOG:  startup process (PID 11220) exited with exit code 1
2015-11-16 15:31:05 MSK [6964]: [4-1] user=[],db=[],app=[],client=[], [vxid: txid:0] [] LOG:  aborting startup due to startup process failure



Пробую оставить просто 1 команду
Код: powershell
1.
restore_command='copy "D:\\Backup\\PostgreSQL\\WAL\\%f" "%p"'


в лог пишет: FATAL: syntax error in file "recovery.conf" line 1, near token ""

Пробую написать
Код: powershell
1.
restore_command=''


при это в логе получаю: FATAL: syntax error in file "recovery.conf" line 1, near end of line

Я понимаю, что что-то делаю не так... но никак не могу понять что.

Возможно, что это поможет для понимания
содержимое каталога \pg_xlog
Код: plaintext
1.
2.
3.
4.
5.
6.
16.11.2015  12:53    <DIR>          ..
15.11.2015  01:00                44 00000002.history
15.11.2015  00:49        16 777 216 0000000200000189000000EC
15.11.2015  01:12        16 777 216 0000000200000189000000ED
15.11.2015  01:12               297 0000000200000189000000ED.00000028.backup
15.11.2015  01:00    <DIR>          archive_status
               4 файлов     33 554 773 байт

содержимое файла 0000000200000189000000ED.00000028.backup
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
START WAL LOCATION: 189/ED000028 (file 0000000200000189000000ED)
STOP WAL LOCATION: 189/ED02B260 (file 0000000200000189000000ED)
CHECKPOINT LOCATION: 189/ED000060
BACKUP METHOD: streamed
BACKUP FROM: master
START TIME: 2015-11-15 01:00:06 MSK
LABEL: Backup_full
STOP TIME: 2015-11-15 01:12:13 MSK

содержимое каталога кластера корень
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
16.11.2015  15:33    <DIR>          .
16.11.2015  15:33    <DIR>          ..
15.11.2015  01:00    <DIR>          base
16.11.2015  15:33    <DIR>          global
15.11.2015  01:12    <DIR>          pg_clog
15.11.2015  01:12    <DIR>          pg_dynshmem
16.11.2015  15:33    <DIR>          pg_log
15.11.2015  01:12    <DIR>          pg_logical
15.11.2015  01:12    <DIR>          pg_multixact
16.11.2015  15:33    <DIR>          pg_notify
15.11.2015  01:12    <DIR>          pg_replslot
15.11.2015  01:12    <DIR>          pg_serial
15.11.2015  01:12    <DIR>          pg_snapshots
15.11.2015  01:12    <DIR>          pg_stat
16.11.2015  15:33    <DIR>          pg_stat_tmp
15.11.2015  01:12    <DIR>          pg_subtrans
15.11.2015  01:12    <DIR>          pg_tblspc
15.11.2015  01:12    <DIR>          pg_twophase
16.11.2015  12:53    <DIR>          pg_xlog
15.11.2015  01:12                 4 PG_VERSION
15.11.2015  01:00               198 backup_label
15.11.2015  01:12             4 976 pg_hba.conf
15.11.2015  01:12             1 678 pg_ident.conf
15.11.2015  01:12                84 postgresql.auto.conf
15.11.2015  01:12            22 480 postgresql.conf
16.11.2015  15:33                76 postmaster.opts
16.11.2015  15:32               126 recovery.conf
               8 файлов         29 622 байт

содержимое файла backup_label
Код: plaintext
1.
2.
3.
4.
5.
6.
START WAL LOCATION: 189/ED000028 (file 0000000200000189000000ED)
CHECKPOINT LOCATION: 189/ED000060
BACKUP METHOD: streamed
BACKUP FROM: master
START TIME: 2015-11-15 01:00:06 MSK
LABEL: Backup_full


Пробовал ключ -R (для программы pg_basebackup), но в файл попадают строки такого вида:
Код: powershell
1.
2.
standby_mode = 'on'
primary_conninfo = 'user=postgres password=aspufo host=localhost port=5432 sslmode=prefer sslcompression=1 krbsrvname=postgres'


Понятное дело, что для поставленной цели содержимое такого файла мне не подходит.

Что подскажете?
...
Рейтинг: 0 / 0
pg_basebackup и recovery.conf
    #39104702
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
grufos,

А какой у Вас символ конца строки в файле? Попробуйте другой.
...
Рейтинг: 0 / 0
pg_basebackup и recovery.conf
    #39104736
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
grufosПробовал ключ -R (для программы pg_basebackup), но в файл попадают строки такого вида:
Код: powershell
1.
2.
standby_mode = 'on'
primary_conninfo = 'user=postgres password=aspufo host=localhost port=5432 sslmode=prefer sslcompression=1 krbsrvname=postgres'


Понятное дело, что для поставленной цели содержимое такого файла мне не подходит.

Что подскажете?

Пробуйте запускать pg_basebackup с параметром -R со слейва. Тогда строка подключения будет корректной (по крайней мере для Linux это работает).
Интересно, почему не выделите для репликации отдельного пользователя с правами REPLICATION (а используете postgres)?
Планируете ли использовать файл .pgpass (pgpass.conf для Windows)?
...
Рейтинг: 0 / 0
pg_basebackup и recovery.conf
    #39104739
Фотография grufos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ursido,

Спасибо за идею...
я посмотрел внутрь файла в HEX коды, и увидел, что файл в кодировку UNICODE !!!
Срочно всё это убрал в OEM, и чудо произошло!
Сервер стартовал.

К сожалению диагностика службы никакая и это грустно :(
Надо быть очень внимательным... пошел править код создания этого файла.
...
Рейтинг: 0 / 0
pg_basebackup и recovery.conf
    #39104744
Фотография grufos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ursidoИнтересно, почему не выделите для репликации отдельного пользователя с правами REPLICATION (а используете postgres)?
у меня есть такой пользователь.
просто в данном случае я делаю именно полное восстановление из бэкапа, а это именно postgres - user службы.

ursidoПланируете ли использовать файл .pgpass (pgpass.conf для Windows)?
пока не думал над этим. Почитаю и поразмышляю.
...
Рейтинг: 0 / 0
pg_basebackup и recovery.conf
    #39104747
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
grufosК сожалению диагностика службы никакая и это грустно :(

Про работу PG под Windows на этом форуме неоднократно сообщали.
Если очень коротко, то во многих случаях Вы будете первооткрывателем.
Мякго говоря Windows - не основная ОС для работы PG. Поэтому работа с ней по остаточному принципу.
...
Рейтинг: 0 / 0
pg_basebackup и recovery.conf
    #39104757
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
grufosу меня есть такой пользователь.
просто в данном случае я делаю именно полное восстановление из бэкапа, а это именно postgres - user службы.


Пробуйте в параметрах pg_basebackup указывать пользователя REPLICATION (--username=<ваш_пользователь_репликации>). Все (создание и восстановление) должно работать.
...
Рейтинг: 0 / 0
pg_basebackup и recovery.conf
    #39104772
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
grufosпросто в данном случае я делаю именно полное восстановление из бэкапа, а это именно postgres - user службы.

Пожалуйста, проверьте внимательно. В Ваших настройках pg_basebackup указан параметр: --username=postgres . Что соответствует именно пользователю БД. От имени какого пользователя ОС запускается pg_basebackup не уточнено (и, по-моему, не важно для выполнения команды).
...
Рейтинг: 0 / 0
pg_basebackup и recovery.conf
    #39104832
Фотография grufos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ursidoПожалуйста, проверьте внимательно.
Проверил. действительно нет необходимости указывать пользователя postgres. достаточно прав пользователя с ролью REPLICATION.
Изменил.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / pg_basebackup и recovery.conf
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]