Форум программистов, компьютерный форум CyberForum.ru

PostgreSQL

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Viktor_99
0 / 0 / 0
Регистрация: 07.06.2016
Сообщений: 82
#1

Настройка репликации - PostgreSQL

21.07.2016, 11:51. Просмотров 1819. Ответов 34
Метки нет (Все метки)

Помогите разобраться, как настроить Репликацию в PostgreSQL операционная система Windows 7

Делал следующим образом:
На стороне основного сервера

1) Создал пользователя User с правами, с которыми может создавать потоковую репликацию и резервные копии

2) В файле postgresql.conf сделал следующие изменения:

#max_wal_senders = 2
#wal_keep_segments = 256
#wal_level = hot_standby
#checkpoint_segments = 16 (данной строки не было, я прописал её отдельно)

3) В файле pg_hba дописал в конце ip адрес 2-ого сервера (именно дописал и ничего не менял)

host replication User 162.254.214.35/32 trust

(/32 в конце не знаю, нужно ли доставлять?)

-------------------------------------------------------------------------------------------------------------------
В резервном сервере:

1) В файле postgresql.conf изменил

#hot_standby = off на hot_standby = on

2) В файле recovery.conf дописал

standby_mode = 'on'
primary_conninfo = 'host=192.168.0.3 port=5433 user=User'
--------------------------------------------------------------------------------------------------------------------
Больше ничего не делал
Но ничего не работает.... Может кто подскажет, что я упустил или что сделал не так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.07.2016, 11:51     Настройка репликации
Посмотрите здесь:

Настройка странной схемы репликации - PostgreSQL
Добрый день, есть такой вот вопрос, касательно того как можно организовать репликацию данных между серверами PostgreSql. Схема сейчас...

Server 2008 Настройка Репликации WS 2008r2 - Windows Server
Ребят прошу помощи, тема такая. есть контроллер доменов на 2008 сервере R2. необходимо настроить его репликацию. как это сделать, и можно...

Настройка репликации MySQL на OEL - MySQL
Добрый день! Есть проблема. Стоит задача настроить репликацию между 2-я базами: Master и Slave. Есть методичка, по которой надо делать....

Ошибка репликации - Windows Server
Проблема с репликацией SYSVOL. Как исправить эту ошибку, от чего произошло, как быть, куда копать?))) Впервые сталкиваюсь с контроллером...

Выбор типа репликации - SQL Server
Добрый день, уважаемая публика. Подскажите, пожалуйста, ответы на следующие вопросы. Задача: есть 2 сервера, находящихся в разных...

по теме репликации слиянием - SQL Server
привет я создал репликацию слиянием и тд. вроде все замечательно но все же есть 2 вопроса 1-й вопрос по поводу настроики...

Ошибка репликации транзакций - SQL Server
Здравствуйте, ребята! Я настроила вчера репликацию транзакций, сервера MSSQL Server 2008 в локальной сети. Реплицируется одна таблица....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grgdvo
544 / 480 / 138
Регистрация: 02.09.2012
Сообщений: 1,411
21.07.2016, 11:57     Настройка репликации #2
Вот недавно писал, посмотрите. Там правда речь о linux, но думаю сможете адаптировать
Viktor_99
0 / 0 / 0
Регистрация: 07.06.2016
Сообщений: 82
21.07.2016, 12:12  [ТС]     Настройка репликации #3
на самом деле, я пытался разобраться со статьёй которая была заточена под винду http://www.pvsm.ru/postgresql/30364

и то не получилось
grgdvo
544 / 480 / 138
Регистрация: 02.09.2012
Сообщений: 1,411
22.07.2016, 03:30     Настройка репликации #4
просмотрел статью. вроде все шаги правильные. у меня нет возможности проверить на windows. попробуйте еще раз, возможно какой-нибудь параметр пропустили.
Viktor_99
0 / 0 / 0
Регистрация: 07.06.2016
Сообщений: 82
22.07.2016, 11:17  [ТС]     Настройка репликации #5
У меня есть кое какие непонятки по данной статье.

Останавливаем сервис Postgresql 9.2 на резервном сервере и очищаем папку с данными, которые создаются при установке PostgreSQL, например D:database. После этого запускаем бекап из командной строки:

"C:PostgreSQLbinpg_basebackup.exe" --host=192.168.1.1 --port=5432 --username=repl -D "D:database"


Это обязательно делать?
grgdvo
544 / 480 / 138
Регистрация: 02.09.2012
Сообщений: 1,411
22.07.2016, 12:11     Настройка репликации #6
да! смысл такой, что вы фиксируете состояние базы на мастере, переносите ее на слейв, и дальше уже они договариваются о переносе разницы между ними.
Viktor_99
0 / 0 / 0
Регистрация: 07.06.2016
Сообщений: 82
22.07.2016, 14:30  [ТС]     Настройка репликации #7
Спасибо! Вот только не пойму что это за файл "C:PostgreSQLbinpg_basebackup.exe"

и где эта папка? "D:database" может это проста папка data?

у себя я найти не смог
grgdvo
544 / 480 / 138
Регистрация: 02.09.2012
Сообщений: 1,411
22.07.2016, 15:47     Настройка репликации #8
на сайте в инструкции в именах файлов похоже пропущен символ слеша "/"
должно быть C:\PostgreSQL\bin\pg_basebackup.exe
и да - это просто папка data (ее изменили при установке скорее всего)
Viktor_99
0 / 0 / 0
Регистрация: 07.06.2016
Сообщений: 82
25.07.2016, 11:15  [ТС]     Настройка репликации #9
так понятнее, а основной и резервный сервера должны находиться в сети во время настройки?

Добавлено через 48 минут
и ещё вопрос, в папке data нужно удалять все файлы? Даже конфигурационные?

Добавлено через 14 минут
и вот почему-то не могу остановить на винде сервер!
пробовал через эту команду C:\Program Files\PostgreSQL\9.5\bin\pg_ctl.exe stop -D
и через эту net stop имя_службы
grgdvo
544 / 480 / 138
Регистрация: 02.09.2012
Сообщений: 1,411
25.07.2016, 15:42     Настройка репликации #10
Цитата Сообщение от Viktor_99 Посмотреть сообщение
так понятнее, а основной и резервный сервера должны находиться в сети во время настройки?
да должны.
Цитата Сообщение от Viktor_99 Посмотреть сообщение
и ещё вопрос, в папке data нужно удалять все файлы? Даже конфигурационные?
нет, удалять ничего не надо. лучше сделайте ее копию (если позволяет место и речь идет о важных данных). например, на слейве переименуйте в data.bak, а вместо нее создайте новую data. конфигурационные файлы тоже храните, вдруг слейву непосчастливиться стать мастером.
Цитата Сообщение от Viktor_99 Посмотреть сообщение
и вот почему-то не могу остановить на винде сервер!
с виндой у меня туго. предположу, что надо смотреть а) в логи самого постгреса ; б) в логи винды
может там что-то сообщается.
Viktor_99
0 / 0 / 0
Регистрация: 07.06.2016
Сообщений: 82
26.07.2016, 12:04  [ТС]     Настройка репликации #11
Спасибо! "Занавес" немного приоткрылся.
Ещё вопрос, когда запускаем бекап на резервном сервере:
"C:PostgreSQLbinpg_basebackup.exe" --host=192.168.1.1 --port=5432 --username=repl -D "D:database"

"C:PostgreSQLbinpg_basebackup.exe" - это путь мастера

"D:database" а это путь туда, куда нужно сделать бекап

Я правильно понял?
grgdvo
544 / 480 / 138
Регистрация: 02.09.2012
Сообщений: 1,411
27.07.2016, 03:21     Настройка репликации #12
Нет, зачем запускать бекап на резервном сервере?? Смысл такой, есть мастер-сервер, в котором лежат основные данные. Их нужно перенести на резервный сервер и обеспечить репликацию. Мы на мастер-сервере делаем basebackup, переносим эти данные на резервный сервер. На резервном сервере описываем способ, каким будут забираться новые данные с мастера (file-based log shipping, streaming replication и т.п.). Далее запускаем резервный сервер в работу, он должен связаться с мастером и получать уже только недостающие данные.

Добавлено через 6 минут
Ааа!! понял, что они имели в виду в инструкции.
Да, в pg_basebackup.exe указывается пусть к мастеру (192.168.1.1 в данном случае)
Тогда, D:\database скорее всего у них подразумевалась директория, которая будет использоваться для хранения данных слейва (резервная копия).
Это они избрали такой путь переноса базового бакапа - вполне логично!
mailomsk
1 / 1 / 0
Регистрация: 23.09.2016
Сообщений: 33
23.09.2016, 10:24     Настройка репликации #13
Доброго времени суток!
По инструкции попробовал настроить репликацию на виртуальных ПК с ОС Windows server 2008
Задача такова, настроить резервное копирование БД 1с и если мастер выходит из строя то можно запуститься с резервного.
В конфиге PG 9.5 #checkpoint_segments = нет
Натыкаюсь на грабли при выполнении следующего:
"C:\Program Files\PostgresPro\9.5\bin\pg_basebackup.exe" --host=192.168.1.1 --port=5432 --username=repl -D "E:\Bases1c_SQL\Openfire"
Копирование проходит с ошибками:
pg_basebackup: не удалось получить конечную позицию в журнале транзакций с сервера:
и вот дальше такая ошибка "./postgresql.old": Permission denied
К моему большому сожалению я так и не понял как правильно написать команду
archive_command = 'copy "%p" «e:\Backup\%f»'
Делал как в руководстве PG не стартует, делал как в руководстве с заменой %p и %f на путь до pg_xlog и с указанием имени файла.

Буду очень признателен в помощи по настройке PG
grgdvo
544 / 480 / 138
Регистрация: 02.09.2012
Сообщений: 1,411
23.09.2016, 16:11     Настройка репликации #14
Цитата Сообщение от mailomsk Посмотреть сообщение
Копирование проходит с ошибками:
pg_basebackup: не удалось получить конечную позицию в журнале транзакций с сервера:
и вот дальше такая ошибка "./postgresql.old": Permission denied
Надо проверить все права на все файлы в директории с данными.

Цитата Сообщение от mailomsk Посмотреть сообщение
К моему большому сожалению я так и не понял как правильно написать команду
поробуйте "e:\\Backup\\%f", то есть надо экранировать слеш.
какие значения параметров wal_level, archive_mode ?
mailomsk
1 / 1 / 0
Регистрация: 23.09.2016
Сообщений: 33
23.09.2016, 20:05     Настройка репликации #15
Цитата Сообщение от grgdvo Посмотреть сообщение
какие значения параметров wal_level, archive_mode ?
hot_standby
on
Все настраивал по примеру, кроме #checkpoint_segments так как в версии 9.5.4 не нашел такого параметра.
Пробую настроить на небольшой базе Openfire.
Цитата Сообщение от grgdvo Посмотреть сообщение
поробуйте "e:\\Backup\\%f", то есть надо экранировать слеш.
Если Вам не трудно объясните мне пожалуйста:
Правильная ли у меня команда получается
'copy "C:\Program Files\PostgresPro\9.5\data\pg_xlog\00000001000000A900000065" "E:\\Backup_PosgreSQL\\00000001000000A900000065"'
или такая
'copy "C:\\Program Files\\PostgresPro\\9.5\\data\\pg_xlog\\00000001000000A900000065" "E:\\Backup_PosgreSQL\\00000001000000A900000065"'
Возможно моя ошибка была в том, что правил файл конфига через pgAdmin и указывал закрывающий знак <'>
grgdvo
544 / 480 / 138
Регистрация: 02.09.2012
Сообщений: 1,411
24.09.2016, 15:47     Настройка репликации #16
я бы пробовал второй вариант, причем оставил бы подстановочные параметры
Код
archive_command = 'copy "%p" "e:\\Backupo_PostgreSQL\\%f"'
Цитата Сообщение от mailomsk Посмотреть сообщение
кроме #checkpoint_segments так как в версии 9.5.4 не нашел такого параметра.
В 9.5.x - это min_wal_size и max_wal_size

Если что-то не будет работать, поглядывайте еще в логи (log) сервера. Там частенько пишут, что же конкретно происходит.
mailomsk
1 / 1 / 0
Регистрация: 23.09.2016
Сообщений: 33
26.09.2016, 14:40     Настройка репликации #17
В логах PG
2016-09-26 15:31:50 +07 СООБЩЕНИЕ: команда архивации завершилась ошибкой с кодом 1
2016-09-26 15:31:50 +07 ПОДРОБНОСТИ: Команда архивации с ошибкой: copy "pg_xlog\000000010000000000000009" "e:\Backupo_PostgreSQL\000000010000000000000009"
2016-09-26 15:31:50 +07 ПРЕДУПРЕЖДЕНИЕ: заархивировать файл журнала транзакций "000000010000000000000009" не удалось много раз подряд; следующая попытка будет сделана позже!

Добавлено через 36 минут
А вот что происходит если я пытаюсь перенести с мастера на слейв командой:
"C:\Program Files\PostgresPro\9.5\bin\pg_basebackup.exe" --host=192.168.1.1 --port=5432 --username=repl -D "E:\Bases1c_SQL\Openfire"
2016-09-26 16:04:29 +07 ПРЕДУПРЕЖДЕНИЕ: pg_stop_backup всё ещё ждёт все требуемые сегменты WAL для архивации (прошло 480 сек.)
2016-09-26 16:04:29 +07 ПОДСКАЗКА: Проверьте, правильно ли работает команда archive_command. pg_stop_backup можно отменить безопасно, но резервная копия базы данных будет непригодна без всех сегментов WAL.
2016-09-26 16:04:29 +07 LOG: could not send data to client: An existing connection was forcibly closed by the remote host.
В папке pg_xlog появились файлы
00000001000000000000000C.00000028.backup
а в pg_xlog\archive_status
00000001000000000000000A.ready и 00000001000000000000000C.00000028.backup.ready
Это не полный список появившихся файлов

Добавлено через 23 минуты
Прошу прощенья за свою невнимательность!!!

Добавлено через 2 часа 3 минуты
Последний вопрос: По мануалу настраивается именно потоковая репликация?
grgdvo
544 / 480 / 138
Регистрация: 02.09.2012
Сообщений: 1,411
26.09.2016, 22:55     Настройка репликации #18
Цитата Сообщение от mailomsk Посмотреть сообщение
Последний вопрос: По мануалу настраивается именно потоковая репликация?
Немного не понял... про какой мануал вы пишите??

Вообще репликацию можно делать различными способами (сравнение здесь).
Мы сейчас здесь рассматриваем способы связанные с передачей WAL'ов на соседний сервер. В официальной документации этому посвящен раздел Log-Shipping Standby Servers.
Так вот эту передачу WAL'ов можно делать разными способами:
а) через архивирование (archive_command и т.д.)
б) через потоковую репликацию
Оба метода по смыслу делают одно и то же (передают WAL с синхронизацией), но настраиваются они совершенно по разному, имеют разные преимущества и недостатки. Да! у них есть общая часть - нужно до слейва перенести базовый бакап с мастера, чтобы потом сервера могли с некоторой контрольной точки начать синхронизацию своих WAL'ов.
mailomsk
1 / 1 / 0
Регистрация: 23.09.2016
Сообщений: 33
27.09.2016, 07:08     Настройка репликации #19
Цитата Сообщение от grgdvo Посмотреть сообщение
Немного не понял... про какой мануал вы пишите??
под ОС windows
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2016, 09:28     Настройка репликации
Еще ссылки по теме:

Репликации SQL Server - SQL Server
Здравствуйте. У меня возникла проблема с репликациями SQL Server. У меня стоят две виртуальные машины virtual box на каждой Windows...

механизмы репликации базы - Базы данных
Привет. Подскажиет как работают механизмы репликации. Задача такая: есть табличка, там поля id и verStamp, id - соответственно...

Служба репликации файлов - Windows Server
Помогите разобраться, и помогите что мне нужно сделать. Я начинающий сисадмин у меня есть два сервера один файловый сервер, а другой...

Interbase Освобождение памяти после репликации - Delphi БД
Всем привет. Версия Delphi XE6, база данных FireBird. В своей программе реализовал механизм репликации. Устроена она у меня таким образом....

XML как средство репликации - Базы данных
Кто-нибудь пробовал использовать XML как средство репликации между разнотипными базами? Идея в следующем. Есть две базы данных. Н-р,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
grgdvo
544 / 480 / 138
Регистрация: 02.09.2012
Сообщений: 1,411
27.09.2016, 09:28     Настройка репликации #20
Да, там расписана настройка потоковой репликации. Архивирование логов включено дополнительно.
Только с версткой они там местами накосячили, слешей не хватает в командных строках.
Yandex
Объявления
27.09.2016, 09:28     Настройка репликации
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru