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

PostgreSQL

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

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

21.07.2016, 11:51. Просмотров 1961. Ответов 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'
--------------------------------------------------------------------------------------------------------------------
Больше ничего не делал
Но ничего не работает.... Может кто подскажет, что я упустил или что сделал не так?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.07.2016, 11:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Настройка репликации (PostgreSQL):

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
grgdvo
558 / 494 / 140
Регистрация: 02.09.2012
Сообщений: 1,445
21.07.2016, 11:57 #2
Вот недавно писал, посмотрите. Там правда речь о linux, но думаю сможете адаптировать
0
Viktor_99
0 / 0 / 0
Регистрация: 07.06.2016
Сообщений: 83
21.07.2016, 12:12  [ТС] #3
на самом деле, я пытался разобраться со статьёй которая была заточена под винду http://www.pvsm.ru/postgresql/30364

и то не получилось
0
grgdvo
558 / 494 / 140
Регистрация: 02.09.2012
Сообщений: 1,445
22.07.2016, 03:30 #4
просмотрел статью. вроде все шаги правильные. у меня нет возможности проверить на windows. попробуйте еще раз, возможно какой-нибудь параметр пропустили.
0
Viktor_99
0 / 0 / 0
Регистрация: 07.06.2016
Сообщений: 83
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"


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

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

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

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

Добавлено через 14 минут
и вот почему-то не могу остановить на винде сервер!
пробовал через эту команду C:\Program Files\PostgreSQL\9.5\bin\pg_ctl.exe stop -D
и через эту net stop имя_службы
0
grgdvo
558 / 494 / 140
Регистрация: 02.09.2012
Сообщений: 1,445
25.07.2016, 15:42 #10
Цитата Сообщение от Viktor_99 Посмотреть сообщение
так понятнее, а основной и резервный сервера должны находиться в сети во время настройки?
да должны.
Цитата Сообщение от Viktor_99 Посмотреть сообщение
и ещё вопрос, в папке data нужно удалять все файлы? Даже конфигурационные?
нет, удалять ничего не надо. лучше сделайте ее копию (если позволяет место и речь идет о важных данных). например, на слейве переименуйте в data.bak, а вместо нее создайте новую data. конфигурационные файлы тоже храните, вдруг слейву непосчастливиться стать мастером.
Цитата Сообщение от Viktor_99 Посмотреть сообщение
и вот почему-то не могу остановить на винде сервер!
с виндой у меня туго. предположу, что надо смотреть а) в логи самого постгреса ; б) в логи винды
может там что-то сообщается.
0
Viktor_99
0 / 0 / 0
Регистрация: 07.06.2016
Сообщений: 83
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" а это путь туда, куда нужно сделать бекап

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

Добавлено через 6 минут
Ааа!! понял, что они имели в виду в инструкции.
Да, в pg_basebackup.exe указывается пусть к мастеру (192.168.1.1 в данном случае)
Тогда, D:\database скорее всего у них подразумевалась директория, которая будет использоваться для хранения данных слейва (резервная копия).
Это они избрали такой путь переноса базового бакапа - вполне логично!
0
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
0
grgdvo
558 / 494 / 140
Регистрация: 02.09.2012
Сообщений: 1,445
23.09.2016, 16:11 #14
Цитата Сообщение от mailomsk Посмотреть сообщение
Копирование проходит с ошибками:
pg_basebackup: не удалось получить конечную позицию в журнале транзакций с сервера:
и вот дальше такая ошибка "./postgresql.old": Permission denied
Надо проверить все права на все файлы в директории с данными.

Цитата Сообщение от mailomsk Посмотреть сообщение
К моему большому сожалению я так и не понял как правильно написать команду
поробуйте "e:\\Backup\\%f", то есть надо экранировать слеш.
какие значения параметров wal_level, archive_mode ?
0
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 и указывал закрывающий знак <'>
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2016, 20:05
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.09.2016, 20:05
Ответ Создать тему
Опции темы

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