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

PostgreSQL

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

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

21.07.2016, 11:51. Просмотров 2298. Ответов 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. Как исправить эту ошибку, от чего произошло, как быть, куда копать?))) Впервые сталкиваюсь с контроллером...

34
grgdvo
589 / 520 / 151
Регистрация: 02.09.2012
Сообщений: 1,543
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) сервера. Там частенько пишут, что же конкретно происходит.
1
mailomsk
3 / 3 / 0
Регистрация: 23.09.2016
Сообщений: 80
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 минуты
Последний вопрос: По мануалу настраивается именно потоковая репликация?
0
grgdvo
589 / 520 / 151
Регистрация: 02.09.2012
Сообщений: 1,543
26.09.2016, 22:55 #18
Цитата Сообщение от mailomsk Посмотреть сообщение
Последний вопрос: По мануалу настраивается именно потоковая репликация?
Немного не понял... про какой мануал вы пишите??

Вообще репликацию можно делать различными способами (сравнение здесь).
Мы сейчас здесь рассматриваем способы связанные с передачей WAL'ов на соседний сервер. В официальной документации этому посвящен раздел Log-Shipping Standby Servers.
Так вот эту передачу WAL'ов можно делать разными способами:
а) через архивирование (archive_command и т.д.)
б) через потоковую репликацию
Оба метода по смыслу делают одно и то же (передают WAL с синхронизацией), но настраиваются они совершенно по разному, имеют разные преимущества и недостатки. Да! у них есть общая часть - нужно до слейва перенести базовый бакап с мастера, чтобы потом сервера могли с некоторой контрольной точки начать синхронизацию своих WAL'ов.
0
mailomsk
3 / 3 / 0
Регистрация: 23.09.2016
Сообщений: 80
27.09.2016, 07:08 #19
Цитата Сообщение от grgdvo Посмотреть сообщение
Немного не понял... про какой мануал вы пишите??
под ОС windows
0
grgdvo
589 / 520 / 151
Регистрация: 02.09.2012
Сообщений: 1,543
27.09.2016, 09:28 #20
Да, там расписана настройка потоковой репликации. Архивирование логов включено дополнительно.
Только с версткой они там местами накосячили, слешей не хватает в командных строках.
0
mailomsk
3 / 3 / 0
Регистрация: 23.09.2016
Сообщений: 80
27.09.2016, 10:31 #21
Цитата Сообщение от grgdvo Посмотреть сообщение
Да, там расписана настройка потоковой репликации. Архивирование логов включено дополнительно.
Только с версткой они там местами накосячили, слешей не хватает в командных строках.
Можно еще немного Вас помучить своими расспросами??
для резервного копирования БД 1с в колличестве 12 шт общим объемом под 300гб. Данный способ можно считать наиболее приемлемым?? Или лучше рассматривать иные настройки репликации!
0
grgdvo
589 / 520 / 151
Регистрация: 02.09.2012
Сообщений: 1,543
27.09.2016, 14:57 #22
Риски здесь такие (вкратце):
1. Насколько я знаю в версиях 1C PostgreSQL будет работать только потоковая репликация. Честно говоря на прямую с 1C я редко сталкиваюсь, но успешные примеры настройки в интернете показывают, что это продолжает работать. Думаю вы знаете, что нужно использовать именно измененный PostgreSQL, выпущенный самой 1С. Другие версии не пашут.
2. Вообще репликация достаточно капризная технология (за ней нужно следить, иначе потом будете долго разгребать). Но ее бесспорное преимущество, что можно существенно сократить объем теряемых данных при аварии основного сервера (при правильной настройке и работе в худшем случае последние незавершенные транзакции, в терминах бухгалтерии, например, не провели 10 последних документов).
3. Репликация может быть заменена на непрерываное архивирование логов, если не нужно hot_standby. То есть, если вы готовые потратить время (и ваши бухгалтера готовы ждать некоторое время, требуемое на восстановление работы), чтобы поднять базу из архива, то лучше остановиться на архивировании. Объем теряемых данных сопоставим с п.1 (опять же, если все работает и мы следим, что оно действительно работает).
4. Если требования к теряемым в случае аварии данным не сильно велики (тут как построена работа бухгалтерии), то можно жить на обычных бакапах, которые просты в реализации и в принципе стабильны в работе. То есть: работа закончилась, в 22:00 запустили бакапирование, пока никого нет. Ну здесь риск потери данных увеличивается до суток. Есть возможность бакапировать чаще - ну значит можете сократить время.

Учитывая сказанное, также учитывая ваши 12 баз, да еще объем 300 гигабайт, да еще 1C (а это всегда огонь!!!), то по-хорошему надо искать возможность реализовать 1 + 2 ну или 2, если не так важна скорость восстановления после сбоя. Причем делать это хотя бы на два разных сервера. Все таки важность данных на мой взгляд перевешивает все остальное, а значит обычные бакапы не катят.

Как-то так.
0
mailomsk
3 / 3 / 0
Регистрация: 23.09.2016
Сообщений: 80
21.10.2016, 18:20 #23
Доброго времени суток!
Возможно установить на 1 ПК (в данном случае на ПК который выполняет роль ведомого сервера)
Поднять дополнительно сервер PG для установки отдельных БД 1с и работы с ними.
Если 2 разные версии PG то устанавливается и можно работать, а вот если версия одна!
Если подскажете другой способ поднятия двух рабочих PG на 1 машине буду благодарен за поддержку!
0
grgdvo
589 / 520 / 151
Регистрация: 02.09.2012
Сообщений: 1,543
22.10.2016, 07:04 #24
Много различных экземпляров (instance) PG может одновременно работать на одном и том же узле (host).
Для запуска достаточно соблюсти два условия:
1) естественно различные директории с данными
2) разные порты прослушивания
Возможно для 1С будут какие-то тонкости при установке - у них модифицированные версии PG, но вроде не должно.
Также возможно придется подкорректировать параметры системы и параметры самого PG по части тонкой настройки
(зависит от ваших объемов данных и нагрузки).
0
mailomsk
3 / 3 / 0
Регистрация: 23.09.2016
Сообщений: 80
30.10.2016, 18:25 #25
Доброго времени суток! Подскажите по какой возможной причине не стартует PG ведомый (в ОС) в журнале запись что хз что случилось смотри в логе PG в логе только вот такая запись
2016-10-30 16:00:10 MSK СООБЩЕНИЕ: работа системы БД была прервана в процессе восстановления, время в журнале: 2016-10-30 14:05:30 MSK
2016-10-30 16:00:10 MSK ПОДСКАЗКА: Если это происходит постоянно, возможно, какие-то данные были испорчены и для восстановления стоит выбрать более раннюю точку.
2016-10-30 16:00:11 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:12 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:13 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:14 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:15 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:16 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:17 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:18 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:19 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:20 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:21 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:22 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:23 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:25 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:26 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:27 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:28 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:29 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:30 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:31 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:32 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:33 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:34 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:35 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:36 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:37 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:38 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:39 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:40 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:41 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:42 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:43 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:44 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:45 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:46 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:47 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:48 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:49 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:50 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:51 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:52 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:53 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:54 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:55 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:56 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:57 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:58 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:00:59 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:01:00 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:01:01 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:01:02 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:01:03 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:01:04 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:01:05 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:01:06 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:01:07 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:01:08 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:01:09 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:01:10 MSK ВАЖНО: система баз данных запускается
2016-10-30 16:01:27 MSK СООБЩЕНИЕ: переход в режим резервного сервера
2016-10-30 16:01:28 MSK СООБЩЕНИЕ: запись REDO начинается со смещения 899/A5000060
2016-10-30 16:01:28 MSK СООБЩЕНИЕ: согласованное состояние восстановления достигнуто по смещению 899/A5001090
2016-10-30 16:01:28 MSK СООБЩЕНИЕ: запись нулевой длины по смещению 899/A60003C0
2016-10-30 16:01:28 MSK СООБЩЕНИЕ: система БД готова к подключениям в режиме "только чтение"
2016-10-30 16:01:28 MSK СООБЩЕНИЕ: начало передачи журнала с главного сервера, с позиции 899/A6000000 на линии времени 1
Добавлено через 32 минуты
На Мастере никто не работает! 1с сервер выключен, данные в принципе не меняются!
На Слейве после попытки запуска PG и сообщении об ошибке в процессах висят 4-5 процессов PG!

Добавлено через 2 минуты
После повторной попытки запуска PG-Slave ошибка в журнале ОС
2016-10-30 20:37:45 +07 ВАЖНО: файл блокировки "postmaster.pid" уже существует
2016-10-30 20:37:45 +07 ПОДСКАЗКА: Другой экземпляр postmaster (PID 3152) работает с каталогом данных "D:/Bases1c_arh"?
Добавлено через 7 минут
Вообще ничего не понимаю! Служба GP не запущена! на Slave
Но PG работает!

Добавлено через 2 минуты
M-192.168.1.1-PG служба запущена и работает
S-192.168.1.2-PG служба не запускается но PG работает
Могу подключиться к PG как с M так и с S

Добавлено через 15 минут
Версиии на M и на S Одинаковые PostgresPro 1C_9.4.9_X64bit_1C

Добавлено через 16 минут
Рестарт S сервера помогло!

Добавлено через 1 час 1 минуту
Подскажите пожалуйста по поводу занимаемого места на диске резервных копий wal!
Включил archive_mode = on
archive_command = 'copy "%p" "d:\\pg_xlog_backup\\%f"'
Размер папки pg_xlog_backup вырос до 100 г.б.
Размер pg_xlog не превышает 2 г.б.
На M запустил только Vacuum Full

Добавлено через 1 минуту
Встречалось упоминание о (Внимание, они могут забить все место на диске, нужно настроить очистку при переполнении)
Как это сделать??
0
grgdvo
589 / 520 / 151
Регистрация: 02.09.2012
Сообщений: 1,543
31.10.2016, 00:01 #26
Цитата Сообщение от mailomsk Посмотреть сообщение
Встречалось упоминание о (Внимание, они могут забить все место на диске, нужно настроить очистку при переполнении)
Как это сделать??
например, pg_archivecleanup или archive_cleanup_command настроить
только внимательно прочитайте, что ей на вход надо подсовывать
1
mailomsk
3 / 3 / 0
Регистрация: 23.09.2016
Сообщений: 80
01.11.2016, 08:36 #27
Доброго времени суток!
На S-сервере сегодня появилась такая ошибка в лог файле
2016-11-01 10:52:56 +07 СООБЩЕНИЕ: начало передачи журнала с главного сервера, с позиции 8D9/99000000 на линии времени 1
2016-11-01 10:52:56 +07 ВАЖНО: не удалось извлечь данные из потока WAL: ОШИБКА: запрошенный сегмент WAL 00000001000008D900000099 уже удалён
Можно ли устранить не создавая репликацию с нуля!
Спасибо1

Добавлено через 18 минут
wal_keep_segments = 256
checkpoint_segments = 16
wal файлов 304 шт. размер 4,7 г.б.

Добавлено через 2 минуты
Увеличить количество checkpoint_segments??

Добавлено через 1 час 17 минут
Буду признателен в помощи по правильной настройке!
На Master включаю
archive_mode = on
archive_command = 'copy "%p" "p:\\pg_xlog_backup\\%f"' Каталог размером в 500г.б. iscsi (доступен всем серверам)
Исправил значения
wal_keep_segments = с 256 на 500
checkpoint_segments = с 16 на 50

На Slave
В файле recovery.conf
standby_mode='on'
primary_conninfo='host=192.168.1.1 port=5432 user=repl password=repl'
trigger_file = 'D:\Bases1c_arh\end_trig'

Как в него правильно записать и нужно ли! И как расположить команды в файле.
restore_command = 'cp /path/to/archive/%f %p'
для ОС windows
restore_command = 'copy "p:\\pg_xlog_backup\\%f" "%p"'

*archive_cleanup_command = 'pg_archivecleanup /path/to/archive %r'
для ОС windows
как правильно записать команду я к сожалению не знаю
И с какой переодичностью архив будет подчищаться.
0
grgdvo
589 / 520 / 151
Регистрация: 02.09.2012
Сообщений: 1,543
01.11.2016, 16:09 #28
Не вижу в конфигах, какое значение wal_level у вас выставлено? и вы какой метод репликации реализуете, потоковая репликация или архивирование логов?
По хорошему бы проанализировать логи, определить момент, когда первый раз произошла рассинхронизация слейва и мастера. Там же по логам скорее всего станет ясно, что произошло и почему не хватило wal_keep_segments=256.
wal_keep_segments можно действительно увеличить (если архивирование логов), а вот checkpoint_segments на слейве я бы не стал пока увеличивать.
архив подчищается (вызывается archive_cleanup_command) при restartpoint - это как checkpoint, только формируется при archive или standby режиме сервера.
0
mailomsk
3 / 3 / 0
Регистрация: 23.09.2016
Сообщений: 80
01.11.2016, 16:18 #29
Цитата Сообщение от grgdvo Посмотреть сообщение
Не вижу в конфигах, какое значение wal_level у вас выставлено? и вы какой метод репликации реализуете, потоковая репликация или архивирование логов?
По хорошему бы проанализировать логи, определить момент, когда первый раз произошла рассинхронизация слейва и мастера. Там же по логам скорее всего станет ясно, что произошло и почему не хватило wal_keep_segments=256.
wal_keep_segments можно действительно увеличить (если архивирование логов), а вот checkpoint_segments на слейве я бы не стал пока увеличивать.
архив подчищается (вызывается archive_cleanup_command) при restartpoint - это как checkpoint, только формируется при archive или standby режиме сервера.
wal_level = 'hot_standby'
Репликация потоковая!
Архивирование на всякий случай!
Перезагружал оба сервера!
Настройки на обоих серверах идентичные так как происходит копирование всего мастера!
Только корректируются файлы на слейве!
0
grgdvo
589 / 520 / 151
Регистрация: 02.09.2012
Сообщений: 1,543
01.11.2016, 16:48 #30
Цитата Сообщение от mailomsk Посмотреть сообщение
Репликация потоковая!
Может были моменты, когда рвалась и не восстанавливалась связь между мастером и слейвом, в результате пошла рассинхронизация при передаче логов. Или мастер перегружался, слейв становился мастером, потом обратное возвращение мастера происходило с ошибкой. В результате тоже проблемы с синхронизацией возникали.
0
01.11.2016, 16:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2016, 16:48
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

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