|
Репликация / нужен совет
|
|||
---|---|---|---|
#18+
Здравствуйте! Для общего понимания: подняты 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 ни что либо связанное со слони. Мне нужны только данные. Посоветуйте пожалуйста оптимальный вариант безболезненной миграции. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2018, 13:31 |
|
Репликация / нужен совет
|
|||
---|---|---|---|
#18+
Наткнулся на полезную статью , но тут идет именно pg_dumpall, что бэкапит и схему и роли и функции и т.д. Я в принципе пробовал и с pg_dump только одну базу, сразу на slave сервер, но у меня выдаются в стандартный выход куча error'ров связанные со slony и некой role ...nnn.replica ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2018, 14:13 |
|
Репликация / нужен совет
|
|||
---|---|---|---|
#18+
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.х репликации может идти только об триггерной репликации. т.е или о слони или о другом таком же триггерном прибамбасе. пичаль ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2018, 14:26 |
|
Репликация / нужен совет
|
|||
---|---|---|---|
#18+
qwwq, а вот как в stackoverflow советует парень не пойдет? Нельзя ли забэкапить как либо only tables? Вот например pg_dump --help выдает ключ ( -t, --table=TABLE dump the named table(s) only ), т.е. ок я готов перечислить хоть 100 таблиц, лишь бы не присутствовали эти sequences или как их там. Или я не о том? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2018, 14:52 |
|
Репликация / нужен совет
|
|||
---|---|---|---|
#18+
nodorgrom, это не я поставил условие "посредством репликации" -- что делается обычно при наличии ограничения на время простоя, несовместимого со временем переноса данных дампом влоб. репликация триггерная внутре себя содержит обычно первичную реплпикацию посредством copy (считай -- тот же дамп/ресторе, с осложнениями на синхро очередей) и последующую докатку ивентами. когда лаг становится малым -- останавливают приложение -- с мастера докатывается очередь ивентов. и вы переключаетесь на бывшего "слейва" (снеся триггера репликации, если это например лондайст).. в сети были подробнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2018, 15:01 |
|
Репликация / нужен совет
|
|||
---|---|---|---|
#18+
nodorgrom, Если простой не страшен, используйте связку pg_dump, pg_dumpall. Сделайте пробный дамп в файл и восстановите на новой версии. Изучите ошибки которые могут появится (ошибки при восстановлении могут быть, например, при назначении прав(овнеров) если нет указанных ролей) pg_dump гибкий, можно дампить схемы и данные, можно только схемы, выборочно таблицы и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2018, 19:14 |
|
Репликация / нужен совет
|
|||
---|---|---|---|
#18+
gav21, спасибо! В принципе, downtime это второстепенно. Будет ли корректно восстановлен дамп на новом сервере с новой версией если я буду pg_dump'ом дампить только таблицы с данными? Я читал, что pg_dump как раз и нужен для таких случаев, т.к. copy-paste на уровне файловой системы не будет воспринято корректно на сервере, на котором планируется восстановление ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2018, 10:34 |
|
Репликация / нужен совет
|
|||
---|---|---|---|
#18+
nodorgromgav21, спасибо! В принципе, downtime это второстепенно. Будет ли корректно восстановлен дамп на новом сервере с новой версией если я буду pg_dump'ом дампить только таблицы с данными? Я читал, что pg_dump как раз и нужен для таких случаев, т.к. copy-paste на уровне файловой системы не будет воспринято корректно на сервере, на котором планируется восстановление На уровне файлового backup/restore, Вы не сможете сделать upgrade на psql10. Только через pg_dump/pg_dumpall ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2018, 10:52 |
|
Репликация / нужен совет
|
|||
---|---|---|---|
#18+
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 новой базы - зависит от дисков и размера базы. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2018, 12:00 |
|
Репликация / нужен совет
|
|||
---|---|---|---|
#18+
Vadim Lejnin... На уровне файлового backup/restore, Вы не сможете сделать upgrade на psql10. Только через pg_dump/pg_dumpall Пардон, пропустил что pg_upgrade поддерживает 8.4.X ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2018, 13:02 |
|
Репликация / нужен совет
|
|||
---|---|---|---|
#18+
мужчины, подскажите с 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 для тестовой. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2018, 17:52 |
|
Репликация / нужен совет
|
|||
---|---|---|---|
#18+
про последовательности хорошая ( по моему мнению ) статья ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2018, 17:58 |
|
Репликация / нужен совет
|
|||
---|---|---|---|
#18+
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 гигов при гибких требованиях к даунтайму проще будет дампом тягать. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2018, 10:09 |
|
|
start [/forum/topic.php?fid=53&msg=39628927&tid=1995833]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 116ms |
0 / 0 |