The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Утилита pg_easy_replicate, упрощающая перенос БД между серверами PostgreSQL

21.06.2023 13:20

Опубликована утилита pg_easy_replicate, позволяющая легко настроить логическую репликацию данных между двумя СУБД PostgreSQL. Утилита может оказаться полезной для минимизации времени простоя при переносе базы данных на другой сервер или переходе на новую значительную ветку PostgreSQL. Также pg_easy_replicate может применяться для упрощения проведения экспериментов и нагрузочных тестов с синхронизированной копией рабочей БД на другом сервере. Код проекта написан на языке Ruby и распространяется под лицензией MIT.

Pg_easy_replicate автоматизирует настройку репликации и поддерживает режим переключения серверов, при котором исходный сервер переводится в режим только для чтения после завершения репликации и полной синхронизации двух БД, что позволяет избежать потери данных и минимизировать время остановки приложений при выполнении таких работ как замена версий СУБД или замена серверов. Возможна выборочная репликация групп таблиц из одной БД на разные серверы. Надёжность утилиты проверена в рабочих системах сервиса Tines.

Тем же автором дополнительно развивается утилита pg-osc, предназначенная для изменения схемы рабочей БД с минимальным временем блокировки базы. При изменении схемы применяется подмена таблиц - отдельно создаётся "теневая таблица", повторяющая первичную таблицу, затем изменяется схема теневой таблицы, переносятся данные из первичной таблицы и заменяются имена таблиц. Производимые во время переноса изменения синхронизируются при помощи триггеров и дополнительной таблицы аудита.

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Первый стабильный выпуск FerretDB, реализации MongoDB на базе СУБД PostgreSQL
  3. OpenNews: Выпуск IvorySQL 2.1, надстройки над PostgreSQL для обеспечения совместимости с Oracle
  4. OpenNews: Релиз СУБД PostgreSQL 15
  5. OpenNews: Проект Postgres WASM подготовил работающее в браузере окружение с СУБД PostgreSQL
  6. OpenNews: Конфликт, связанный с торговыми марками PostgreSQL, остаётся не урегулирован
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/59321-pg_easy_replicate
Ключевые слова: pg_easy_replicate, postgresql, replication
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (78) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 13:29, 21/06/2023 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +9 +/
     
  • 1.2, Аноним (2), 13:47, 21/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Не знаю, сомнительно как-то. По сути это скрипты от васяна. Неужели в базовой поставке ничего нет? Как вообще такие проблемы решают взрослые корпоративные дяди?
     
     
  • 2.3, soarin (ok), 13:48, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Покупают Postgres Pro
     
     
  • 3.11, Аноним (11), 14:38, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • –7 +/
    его покупают даже большие безумцы, чем любители ruby
     
     
  • 4.76, x3who (?), 00:45, 04/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    вполне норм, покупают же не протухт, а поддержку к нему
     
  • 3.22, User (??), 16:09, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну, не то, чтобы всегда помогало - т.е. добавить столбец в таблицу с константным значением - да, мгновенно, а вот при необходимости это значение на основании чего-то там посчитать да еще и какое ограничение наложить - уже костылить приходится - и хорошо когда dba эту необходимость понимает, хуже если dba нет, а разраб "моя ддл не знай, моя класса меняй, орм флувей генеряй при старте к база применяй, насяльнике! Мамой клянус, у меня в доскерах нормально сработало!"
     
  • 3.28, Аноним (28), 18:02, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • –5 +/
    в смысле пилят? зачем частной компании выкидывать деньги на это недоразумение?
     
  • 2.4, Алексей (??), 13:53, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    pg_dump, pg_restore, pg_upgrade...
     
  • 2.9, Аноним (9), 14:21, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Если это прям сильно важно, то прям действительно корпоративные и прям сильно взрослые дяди не используют Постгрю, бывают сильно другие базы данных.
     
     
  • 3.15, Аноним (15), 15:06, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ещё как используют. Совместно (а не вместо) "сильно другими базами данных".
     
     
  • 4.17, Аноним (9), 15:19, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Так им и перенос не нужен грохаешь и всё.
     
  • 4.43, Прохожий (??), 01:42, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Только если в штате системные программисты имеются, тогда - да, используют. А так - себе дороже с этой недотыкомкой возиться.
     
     
  • 5.62, ыы (?), 23:18, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    у постгрес про хороший сапорт. быстрый и компетентный. а вам не помогли? соболезную...может дело в вас?
     
  • 3.32, пох. (?), 18:46, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    сильно другие легально в одну страну не продают уже. Поэтому будете жрать чодали.
     
     
  • 4.42, Прохожий (??), 01:39, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Как будто их это останавливало когда-то. Торрент-едишн - вот это их всё
     
     
  • 5.57, Аноним (57), 14:37, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    До первого маскишоу
     
  • 5.61, ыы (?), 23:17, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    кого - их?
    фантазеров с форумов вообще ничего полагаю не останавливает никогда. ни стыд, ни здравый смысл... хотя могли бы просто немножко подумать головой
     
  • 5.71, пох. (?), 18:55, 24/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Как будто их это останавливало когда-то. Торрент-едишн - вот это их всё

    это для васян-хоста.

    Потому что в торренте нет пятидесятисеми патчей доступных только через течнет (или как там он опять переименовался), а, главное - ставить их без прямой команды индуса - смерти подобно, потому что только он знает (не знает но хотя бы иногда догадывается правильно) какие из них тебе ставить категорически нельзя.

     
     
  • 6.77, x3who (?), 00:59, 04/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    да там вообще капец теперь. КМК индусы уже и ядро орухла пейшуд :(
     
     
  • 7.85, пох. (?), 12:15, 04/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    дык вон, какой-то Бабу[ин] уже назначен ораклом писать ведро - для тебя в том числе.

    А что ты хотел, если торговать пиццей на вынос выходит и доходнее и меньше нервотрепки?
    Все кто успели более-менее заработать в счастливые древние дни - уже на такой вот пенсии. Остались неудачники и галерные рабы.

     
  • 3.60, ыы (?), 23:14, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    какие?
     
  • 2.24, User (??), 16:18, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Дык за счет архитектуры обычно - "большие"\неструктурированные\часто меняющиеся по структуре данные в NoSQL выносят, на входе какая-нибудь шина данных + ETL торчит, для доступа распределенный кэш какой - и в общем оно уже и не так больно становится. В теории. На практике вот такую же логику руками пердолят каженный раз как в первый раз ).
     
  • 2.36, Атон (?), 21:07, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    корпоративные дяди еще не решали таких проблем. у них пока что проблема переехать на постгре с оракла.

    >> написали инструмент миграции с Oracle на PostgresPro Entepriise - ora2pgpro. Ну как написали? Собственно как и сам PostgresPro. Взяли опенсурсный инструмент ora2pg и ...

     
     
  • 3.63, ыы (?), 23:21, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    вы это наверняка знаете?  вы опенсорсным пользоваться пробовали?
     
     
  • 4.67, Атон (?), 08:36, 23/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > вы это наверняка знаете?

    из первых рук.

     
     
  • 5.68, ыы (?), 09:50, 23/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    ага.. тоесть слухи... "из первых рук"...
     
     
  • 6.70, Атон (?), 14:42, 24/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > ага.. тоесть слухи... "из первых рук"...

    это быстро и легко гуглится.  прямо по цитате, которую я привел.

     
     
  • 7.78, x3who (?), 01:02, 04/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    гуглить лень, просто расскажите что означают три точки во фразе "Взяли опенсурсный инструмент ora2pg и ..."
     
     
  • 8.84, Атон (?), 10:40, 04/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    и начали продавать ... текст свёрнут, показать
     
  • 2.37, Аноним (37), 21:47, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Взрослые корпоративные дяди дают задание исполнителям, и вот те уже берут (или не берут) скрипты от васяна и тестируют на отдельных серверах. Если сработает — хорошо. Нет — значит сами будут писать.
     
     
  • 3.64, ыы (?), 23:23, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    на этом передача "мысли школьников о корпоративной среде" подходит к концу. следите за новостями...
     
     
  • 4.73, нейм (?), 19:18, 25/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    лол, госушник порвался от дефолтного подхода и отрицает, спешите видеть
     
     
  • 5.75, ыы (?), 22:08, 26/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    дефолтного похода в куда? ты вообще очем сейчас?
     
     
  • 6.79, x3who (?), 01:07, 04/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    тебе дают задачу - твоя система должна сосчитать 2*2=4. Ты идёшь на рынок и выбираешь там продукт, который наиболее эффективен (т.е. делает это за наименьгие деньги). За это тебе плотють зряплату.
     
     
  • 7.86, пох. (?), 12:17, 04/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > тебе дают задачу - твоя система должна сосчитать 2*2=4. Ты идёшь на
    > рынок и выбираешь там продукт, который наиболее эффективен (т.е. делает это
    > за наименьгие деньги). За это тебе плотють зряплату.

    нет, чувак, так - не бывает.
    За это ТЕБЕ - никто платить не собирается. Любой эффективный менеджер справился бы без тебя.

     
  • 3.72, пох. (?), 18:55, 24/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Взрослые корпоративные дяди дают задание исполнителям

    Программировай! .jpg

     
  • 2.65, ыы (?), 23:28, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    вы тоже можете написать нечто подобное и запостить новость сюда. без проблем. а вот будет ли это ктото использовать кроме вас - даже не вопрос походу... есть же штатные утилиты...
     

  • 1.5, Аноним (5), 13:59, 21/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > Ruby

    С ума сошли что-ли, писать больше не на чем?

     
     
  • 2.6, Аноним (6), 14:01, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Яблочники писали. Они больше ничего не умеют. Ты бы предпочёл, чтобы на swift?
     
     
  • 3.7, Аноним (9), 14:18, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Mojo
     
  • 3.8, 1 (??), 14:20, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +6 +/
    На erlang.

    P.S. По мне так - пусть пишут, на чём умеют. А все эти вопли - "Если написано (не)на XXX - это говно" отношу просто к неумехам не могущих освоить больше одного ЯП.

     
     
  • 4.10, Аноним (6), 14:33, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Дык проблема не в освоении, проблема в интеграции и сопровождении этой дряни (хотя осваивать раби ради какой-то сомнительной поделки это маловероятно).
     
     
  • 5.12, Пушок (?), 14:38, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Да ты бы не стал ничего сопровождать на любом языке, эксперт.
     
     
  • 6.13, Аноним (6), 14:44, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Почему? К раби просто батарейки ещё более сомнительные, чем у перла. И если для перла часто нормально застрять на компонентах десятилетней давности и они продолжат работать (ничего серьёзного на нём не напишешь всё равно), то с раби это не так. Да и модель обновлений вызывает вопросов не меньше. И продукты на раби это адок ещё тот, а уж когда они устаревать начинают… Но главно тут, если раби у тебя нигде не используется, то притащить его -- это действительно огромная попоболь во всех отношениях.
     
     
  • 7.19, Аноним (19), 15:36, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ruby /'ru:bi/
     
     
  • 8.21, Аноним (6), 16:00, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Английский странный язык Чтобы хоть как-то обосновать произношение, надо знать ... текст свёрнут, показать
     
     
  • 9.26, Аноним (2), 17:09, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Любой естественный язык странный При этом в искусственных языках типа эсперанто... текст свёрнут, показать
     
     
  • 10.45, Прохожий (??), 01:54, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Кроме эсперанто есть и другие искусственные языки В том числе упрощённый англий... текст свёрнут, показать
     
  • 9.44, Прохожий (??), 01:52, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На Ютьюбе есть ролик как раз на эту тему Там носитель языка читает стихотворени... текст свёрнут, показать
     
  • 7.25, Пушок (?), 16:27, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ты написал такой хороший ответ, что мне стало неловко за свою бычку и захотелось извиниться.
     
  • 7.35, Аноним (1), 19:45, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    да ruby этот сам по себе не логичный кусок экскрементов, даже php стройней, красивей и логичней на порядок и быстрее то-же на порядок. два тормоза мутанта ruby и педон - соревнуются уже который год кто более тормозной и убогий
     
     
  • 8.38, Аноним (37), 21:49, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Так и скажи, что освоил только хеллоу ворлды на ПХП, нечего тут стыдиться Если ... текст свёрнут, показать
     
     
  • 9.52, Аноним (1), 10:42, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    php уродлив, а ruby просто убог все они мертвы и php golang его медленно убива... текст свёрнут, показать
     
     
  • 10.80, x3who (?), 01:20, 04/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не готов поддержать спор, но как по мне похабэ красивее многих современных языко... текст свёрнут, показать
     
  • 8.46, Прохожий (??), 01:57, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вполне себе нормальные языки в своих нишах ruby, python Только часто их тянут... текст свёрнут, показать
     
  • 8.47, User (??), 06:45, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ох уж эти адепты шкорости - все бы вам на-самокате-по-тротуару-с-ветерком - ну к... текст свёрнут, показать
     
  • 7.50, www2 (??), 07:55, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >И если для перла часто нормально застрять на компонентах десятилетней давности и они продолжат работать (ничего серьёзного на нём не напишешь всё равно), то с раби это не так.

    На Perl'е написаны все инструменты Percona, например. pt-online-schema-change - это вообще такой костыль, без которого MySQL ни для чего более-менее серьёзного использовать нельзя.

     
     
  • 8.81, x3who (?), 01:24, 04/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Впервые слышу о pt-online-schema-change и чем-то более-менее серьёзном на мусь... текст свёрнут, показать
     
  • 4.23, YetAnotherOnanym (ok), 16:12, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не, на эрланге можно наваять прокладку, у которой за спиной будет over9000 серверов, которые она сама обновляет, переносит, бэкапит, ресторит, запускает, перезапускает, аудитит, балансирует нагрузку и всё прочее, а клиент без лишних рефлексий коннектится к ней, как к обычному серверу.
     
  • 4.33, Аноним (1), 19:39, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    при всей общей маргинальности erlang на порядки правильней и адекватней ruby
     
  • 4.34, Аноним (1), 19:41, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >отношу просто к неумехам не могущих освоить больше одного ЯП.

    про то и речь что Васян не освоил ничего кроме ruby, потому он и неумеха и потому в /dev/null его поделие потому что умеха бы такой инструмент не выбрал

     
     
  • 5.39, Аноним (37), 21:51, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну и пиши код для синхронизации БД сам. Только не забудь потом с общественностью поделиться. Если напишешь, конечно.
     
  • 3.16, Аноним (5), 15:18, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Go или Python, живые языки. Да на C хотя бы.
     
     
  • 4.29, beck (??), 18:10, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, тоже не понимаю,  зачем руби...

    Складывается ощущение,  что это курсач или диплом какого-то студента.

     
  • 2.40, Аноним (37), 21:54, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    На Руби стоит писать хотя бы потому, что это раздражает опеннетчиков. А тем, кому ехать собирают контейнер и без разницы, на чём оно написано, пока не нужно сопровождать код или дописывать фичи.
     
     
  • 3.53, Аноним (1), 10:47, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    глупость какая))) если ты сейчас обмажешься экскрементами и будешь бегать за окнами ресторана в котором я сижу - то это тоже будет меня раздражать. ну делай так раз это твоя цель. впрочем ты уже это делаешь раз пишешь на глупом ruby)))
     
     
  • 4.58, Аноним (37), 16:00, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты, конечно, не видишь разницы между работу работать и дерьмом обмазываться. Вижу, что работать тебе пока не приходилось.
     
     
  • 5.59, Аноним (59), 19:35, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    работать используя ruby? хватит уже обмазываться дерьмом, не позорься
     
  • 3.54, Аноним (1), 10:49, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >А тем, кому ехать [...] пока не нужно сопровождать код или дописывать фичи

    выпей яду и ехай пока яд не подействует

     

  • 1.27, Аноним (28), 18:00, 21/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    костыли и велосипеды. нормальной ide до сих пор нет, а для mysql/mariadb нормальной ide уже нет. так и живём
     
     
  • 2.30, Аноним (30), 18:32, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ide для чего ?
     
  • 2.31, Васян из васяна (?), 18:38, 21/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    dbeaver чем не угодил?
     
  • 2.48, User (??), 06:51, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну, меня datagrip вполне устраивает - да и с dbeaver'ом можно было жить... pgAdmin конечно "за гранью", но и на него, гм, эн-ту-зи-ас-ты находятся.
     
     
  • 3.49, Аноним (11), 07:48, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    pgAdmin показывает текущую загрузку сервера, в отличии от
    а писать запросы и в блокноте норм
     
     
  • 4.56, User (??), 11:03, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Охтыж. Еще про (h|b)top вспомни, ага. Observability-stack тебе на что? Впрочем, блокнотописателям select * from - может быть и ни на что...
     
  • 4.82, x3who (?), 01:29, 04/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    какой версии пгадмин? Я третий уже не могу сконпелядь, а четвертый - такое себе.
     

  • 1.41, freehck (ok), 22:52, 21/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    pg_easy_replicate вероятно стоит опробовать, только запаковать в докер сначала, чтобы руби в систему не тащить

    pg-osc вероятно не стоит тащить, к percona как-то больше доверия

     
     
  • 2.51, www2 (??), 07:57, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >только запаковать в докер сначала, чтобы руби в систему не тащить

    Чтобы притащить в систему докер. Теорема Эскобара наглядно.

     
     
  • 3.55, Аноним (1), 10:50, 22/06/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    docker нормальная фигня как и lxd
     
     
  • 4.83, x3who (?), 01:30, 04/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    руби тоже нормальная для кого-то..
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру