powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Репликация / нужен совет
13 сообщений из 13, страница 1 из 1
Репликация / нужен совет
    #39628369
nodorgrom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Для общего понимания:
подняты 2 виртуалки:
А) CentOS release 6.9 (Final)
Б) CentOS Linux release 7.4.1708 (Core)


На виртуалке А поднят psql (PostgreSQL) 8.4.20. Кластер из трёх баз: ( по факту две ненужные ) + репликация slonyI ( не уверен, что она работает и не знаю как с ней работать ).

Задача состоит в том, что все это досталось мне в наследство и нужно бы мигрировать на виртуалку Б с седьмым centos и свежей постгрес. Но мигрировать нужно посредством репликации. Т.е. нужно настроить так что бы psql 8.4 был мастером, а psql10 реплика и уже после полной синхронизации можно было бы отключить psql 8.4 и перенастроить все сервисы на psql10, но загвоздка в том, что 8.4 не имеет возможности репликации из коробки, потому и используется слони. А мне по факту не нужны ни роли slony ни что либо связанное со слони. Мне нужны только данные.
Посоветуйте пожалуйста оптимальный вариант безболезненной миграции.
...
Рейтинг: 0 / 0
Репликация / нужен совет
    #39628399
nodorgrom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наткнулся на полезную статью , но тут идет именно pg_dumpall, что бэкапит и схему и роли и функции и т.д. Я в принципе пробовал и с pg_dump только одну базу, сразу на slave сервер, но у меня выдаются в стандартный выход куча error'ров связанные со slony и некой role ...nnn.replica
...
Рейтинг: 0 / 0
Репликация / нужен совет
    #39628410
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nodorgromЗдравствуйте!
Для общего понимания:
подняты 2 виртуалки:
А) CentOS release 6.9 (Final)
Б) CentOS Linux release 7.4.1708 (Core)


На виртуалке А поднят psql (PostgreSQL) 8.4.20. Кластер из трёх баз: ( по факту две ненужные ) + репликация slonyI ( не уверен, что она работает и не знаю как с ней работать ).

Задача состоит в том, что все это досталось мне в наследство и нужно бы мигрировать на виртуалку Б с седьмым centos и свежей постгрес. Но мигрировать нужно посредством репликации . Т.е. нужно настроить так что бы psql 8.4 был мастером, а psql10 реплика и уже после полной синхронизации можно было бы отключить psql 8.4 и перенастроить все сервисы на psql10, но загвоздка в том, что 8.4 не имеет возможности репликации из коробки, потому и используется слони. А мне по факту не нужны ни роли slony ни что либо связанное со слони . Мне нужны только данные.
Посоветуйте пожалуйста оптимальный вариант безболезненной миграции.

думаецца речь при меж8.4--10.х репликации может идти только об триггерной репликации. т.е или о слони или о другом таком же триггерном прибамбасе. пичаль
...
Рейтинг: 0 / 0
Репликация / нужен совет
    #39628431
nodorgrom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwwq,

а вот как в stackoverflow советует парень не пойдет? Нельзя ли забэкапить как либо only tables? Вот например pg_dump --help выдает ключ ( -t, --table=TABLE dump the named table(s) only ), т.е. ок я готов перечислить хоть 100 таблиц, лишь бы не присутствовали эти sequences или как их там. Или я не о том?
...
Рейтинг: 0 / 0
Репликация / нужен совет
    #39628441
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nodorgrom,

это не я поставил условие "посредством репликации" --

что делается обычно при наличии ограничения на время простоя, несовместимого со временем переноса данных дампом влоб.

репликация триггерная внутре себя содержит обычно первичную реплпикацию посредством copy (считай -- тот же дамп/ресторе, с осложнениями на синхро очередей) и последующую докатку ивентами.
когда лаг становится малым -- останавливают приложение -- с мастера докатывается очередь ивентов. и вы переключаетесь на бывшего "слейва" (снеся триггера репликации, если это например лондайст)..

в сети были подробнее.
...
Рейтинг: 0 / 0
Репликация / нужен совет
    #39628703
gav21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nodorgrom,

Если простой не страшен, используйте связку pg_dump, pg_dumpall.
Сделайте пробный дамп в файл и восстановите на новой версии.
Изучите ошибки которые могут появится (ошибки при восстановлении могут быть, например, при назначении прав(овнеров) если нет указанных ролей)
pg_dump гибкий, можно дампить схемы и данные, можно только схемы, выборочно таблицы и т.п.
...
Рейтинг: 0 / 0
Репликация / нужен совет
    #39628908
nodorgrom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gav21, спасибо!
В принципе, downtime это второстепенно.
Будет ли корректно восстановлен дамп на новом сервере с новой версией если я буду pg_dump'ом дампить только таблицы с данными?
Я читал, что pg_dump как раз и нужен для таких случаев, т.к. copy-paste на уровне файловой системы не будет воспринято корректно на сервере, на котором планируется восстановление
...
Рейтинг: 0 / 0
Репликация / нужен совет
    #39628927
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nodorgromgav21, спасибо!
В принципе, downtime это второстепенно.
Будет ли корректно восстановлен дамп на новом сервере с новой версией если я буду pg_dump'ом дампить только таблицы с данными?
Я читал, что pg_dump как раз и нужен для таких случаев, т.к. copy-paste на уровне файловой системы не будет воспринято корректно на сервере, на котором планируется восстановление

На уровне файлового backup/restore, Вы не сможете сделать upgrade на psql10.
Только через pg_dump/pg_dumpall
...
Рейтинг: 0 / 0
Репликация / нужен совет
    #39628971
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nodorgromБудет ли корректно восстановлен дамп на новом сервере с новой версией если я буду pg_dump'ом дампить только таблицы с данными?
Если вы используете pg_dump старшей версии - то да, должен корректно быть снят и восстановлен.

Вариант альтернативный:
ставите на новый хост одновременно бинарники и новой и старой версии postgresql (возможно, собранные вручную, хотя в морге 8.4 бинарники кажется даже есть). Настраиваете из 8.4 warm standby реплику - потоковой репликации в 8.4 нет, но архивация wal уже есть и можно использовать её: https://www.postgresql.org/docs/8.4/static/warm-standby.html
В нужный час гасите мастер 8.4, докопируете все его WAL, ждёте их обработку на реплике, гасите эту реплику (и перемещаете recovery.conf), выполняете через pg_upgrade --link обновление до нужной версии, стартуете базу новой версии.
В случае ошибки стартуете мастер 8.4 обратно как он был, переналиваете реплику, исправляете причину ошибки и пробуете заново.
5-15 минут даунтайма, смотря насколько быстро будет работать analyze новой базы - зависит от дисков и размера базы.
...
Рейтинг: 0 / 0
Репликация / нужен совет
    #39629052
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Lejnin...

На уровне файлового backup/restore, Вы не сможете сделать upgrade на psql10.
Только через pg_dump/pg_dumpall

Пардон, пропустил что pg_upgrade поддерживает 8.4.X
...
Рейтинг: 0 / 0
Репликация / нужен совет
    #39629378
nodorgrom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мужчины, подскажите с SEQUENCE
дело сдвинулось с мертвой точки.

Итого:
1 база 50+ таблиц, общий размер ~20Gb

План действий:
1) скопировать ( pg_dump ) все таблицы с 8.4 на 10.х psql ( только данные, без ролей, функций и т.п. )
2) на psql 10.х проверить доступны ли данные? ( select something )
3) Если все ок, то на psql ( виртуалка А ) снести все что связано с postgres
4) yum update, yum install postgres...
5) pg_dumpall с виртуалки Б на виртуалку А
6) pg_restore main_base < pg84dump
7) Создание логической ( потоковой ) репликации master-slave
8) проверка
9) отключение мастера
10) перенастройка всего что смотрело на psql 8.4
11) если все ОК, то перевод psql 10.x со слейва на мастера

как считаете, выглядит "работоспособным"?

И еще один немаловажный вопрос, собственно про SEQUENCE
Правильно ли я понимаю, что это отголоски 8+ версий? Ведь есть дефолтные bigserial, serial...
или все таки еще используется это?
Спрашиваю, потому что при дампе на виртуалке Б я вижу две таблицы, одна основная ( тестовая ), а вторая это id_seq для тестовой.
...
Рейтинг: 0 / 0
Репликация / нужен совет
    #39629384
nodorgrom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
про последовательности хорошая ( по моему мнению ) статья
...
Рейтинг: 0 / 0
Репликация / нужен совет
    #39629659
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nodorgromИ еще один немаловажный вопрос, собственно про SEQUENCE
Правильно ли я понимаю, что это отголоски 8+ версий? Ведь есть дефолтные bigserial, serial...
serial и bigserial - синтаксический сахар вокруг неявного создания sequence и int/bigint с автоматической установкой default в этот сиквенс.
Стандартные GENERATED BY DEFAULT AS IDENTITY - аналогично вокруг сиквенсов.
И это не таблицы.

nodorgrom1 база 50+ таблиц, общий размер ~20Gb
План действий:
Не понимаю смысл чуть менее чем всех манипуляций.
0) настроить 10 на новой системе, создать пустую БД с нужными юзерами
1) pg_dump (см --no-privileges если юзера разные) и pg_restore
2) переключить приложение и проверить что оно нормально завелось
Если нужна реплика - её можно завести одновременно с настройкой новой системы. Или если она должна будет встать на том хосте где сейчас 8.4 - то сперва переставить систему и затем поднять реплику из pg_basebackup

Всего-то 20 гигов при гибких требованиях к даунтайму проще будет дампом тягать.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Репликация / нужен совет
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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