Источник | Публичный аккаунт JiekeXu DBA road (ID: JiekeXu_IT)
Если вам нужно перепечатать, свяжитесь с нами для авторизации | (Персональный идентификатор WeChat: JiekeXu_DBA)
Привет всем, я Цзекесюй, известный в мире как «Брат Цян», выиграл Oracle ACE Pro Название: Мо Тяньлунь MVP, ежегодная премия «Moli Star» Мо Тяньлуня, владеет Oracle 11g OCP/OCM Аутентификация, MySQL 5.7/8.0 OCP Сертификация и PCA、PCTA、OBCA、OGCA、KCP В ожидании многих сертификатов сертификации отечественных баз данных, давайте поговорим с вами сегодня PostgreSQL Гао Кэиспользоватьплан,Добро пожаловать, нажмите синий текст вверху.“JiekeXu Подпишитесь на мою официальную учетную запись WeChat, затем нажмите на три точки в правом верхнем углу рядом с надписью «Установить как звездочку», чтобы вы могли получать больше полезных статей как можно скорее, спасибо!
PostgreSQL — очень популярная в последние два года база данных с открытым исходным кодом. Большинство ее функций предоставляются в виде легковесных плагинов, и многие технологии высокой доступности также предоставляются в виде плагинов. Как реляционная база данных с открытым исходным кодом, она широко любима многими разработчиками и имеет блестящее будущее. Я несколько недель просматривал Интернет и проверил много информации. Говорят, что Repmgr и Patroni — это два решения с высокой доступностью. которые наиболее часто используются. Итак, сегодня давайте поговорим о PostgreSQL. Каковы решения для обеспечения высокой доступности?
• Keepalived контролирует дрейф VIP через vrrp. Он также имеет такие функции, как сторожевой таймер и проверка работоспособности, а также может предоставлять унифицированные модули внешнего доступа.
• HAProxy Может выполнять проверку работоспособности с уровня земли, балансировку нагрузки, это также способ обнаружения и обработки логики с высокой надежностью.
• использовать Впул соединенийуправлятьи Распределение агентов
http://www.pgbouncer.org/install.html
Streaming Репликация: Основная библиотека находится в WAL Записи журнала передаются на подчиненный сервер по мере их создания без ожидания. приезжать WAL файл заполнен。Поток по умолчаниюкопироватьдаасинхронныйиз。
Архитектура «главный-подчиненный»: в этой архитектуре,Один главный узел обрабатывает все операции записи.,И данные Воля в реальном времени копироватьприезжать на один или несколько подчиненных узлов.,Подчиненные устройства могут обрабатывать запросы только для чтения.,Улучшите производительность чтения。Может Конфигурациясинхронныйиасинхронныймодель。
• В реальном времени: главный узел меняется почти в реальном времени по сравнению с ведомым узлом, а согласованность данных высокая. • Расширение чтения: подчиненный узел может обрабатывать запросы только на чтение и повышать производительность чтения. • Простота настройки: Относительно просто настраивать и управлять.
• Риск потери данных (асинхронный режим). В асинхронном режиме сбой главного узла может привести к потере данных. • Задержка: в синхронном режиме существует дополнительная задержка для операций записи. • Ручная обработка аварийного переключения: по умолчанию аварийное переключение требует ручной обработки.
Logical Репликация: логическое копирование. Объект данных, основанный на идентичности объекта данных. Копировать (обычно это первичный ключ) копировать объект данных и метод его изменения. Логика копировать заставляет использовать модель публикации и подписки, в которой один или несколько подписчиков подписываются на один узел издателя из одного. В одной или нескольких публикациях подписчики извлекают данные из публикаций, на которые они подписаны, и впоследствии могут повторно опубликовать эти данные в Позволяет каскадно копировать, что является более сложной конфигурацией.
• Гибкость: вы можете выборочно выбирать определенные данные таблицы, подходящие для сегментирования данных и обновления между версиями. • гетерогенныйкопировать:поддерживатьразные версиииз PostgreSQL Между издатами копировать. • Обновление без простоев: может использоваться для обновления базы данных без простоев.
• Конфигурациясложный:Конфигурацияиуправлять Билиукопироватьсложный。 • Накладные расходы на производительность. Накладные расходы на производительность при логическом копировании могут быть выше, чем у потоков, особенно при изменении большого объема данных. • Согласованность данных. При высокой нагрузке может возникнуть риск несогласованности данных.
Patroni — это решение высокой доступности на основе Python, которое использует etcd, Consul или распределенные согласованные хранилища, такие как ZooKeeper или Kubernetes, для автоматического переключения при сбое.
• Patroni отслеживает активность главных узлов и узлов-реплик и может изменять конфигурацию всех членов кластера. Он может обрабатывать требования синхронизации и плановые переключения, а также незапланированные переключения при сбое. Patroni автоматизирует эти сложные задачи. Кроме того, он гарантирует, что всегда выполняются определенные условия, чтобы полностью исключить необратимое повреждение ваших данных. У каждого экземпляра PostgreSQL есть специальный экземпляр Patroni для его мониторинга и управления.
• Сложность: необходимо настроить и управлять несколькими компонентами (такими как etcd, Consul или ZooKeeper). • Потребление ресурсов. Дополнительные компоненты увеличат потребление ресурсов системы, а также усложнят эксплуатацию и обслуживание.
https://developer.aliyun.com/article/775029
https://patroni.readthedocs.io/en/latest/
repmgr да EDB Набор инструментов с открытым исходным кодом от компании (аналогичный MySQL из МХА) для управления PostgreSQL серверный кластер выполнить аварийное переключение. Это позволяет использовать инструменты для улучшения PostgreSQL Встроенная функция горячего резервного копирования.,Чтобы настроить оборудованиеиспользуйтесервер,Мониторинг копирования и выполнение административных задач,Например, аварийное переключение и операции ручного переключения.
управление командой Repmgr (менеджер репликации). Ежедневные операции в основном выполняются через Repmgr. В его функции входит просмотр состояния кластера, переключение, клонирование резервной базы данных, повторное присоединение вышедших из строя узлов и т. д.
Мониторинг и запись производительности кластера Передача обнаруживает сбой основного сервера и выбирает наиболее подходящий сервер для выполнения аварийного переключения. Уведомления о событиях в кластере передаются пользовательским сценариям, которые могут выполнять такие задачи, как отправка оповещений по электронной почте. repmgrd В зависимости от роли локальной базы данных ее функции также различаются: Основная база данных: Repmgrd контролирует только локальную базу данных и отвечает за автоматическое восстановление, а также синхронное и асинхронное переключение. Резервная база данных: Repmgrd отслеживает локальную базу данныхихозяинбаза данные, отвечающие за автоматическое переключение, копировать слот удалить.
• использовать для устранения возможной перегрузки сети между основной базой данных кластера и резервной базой данных.、Задерживать、Влияние маршрутизации и других проблем,В результате основная библиотека по-прежнему работает нормально.,Резервная база данных не может связаться с основной базой данных из-за сценария
https://www.repmgr.org/
PAF даа на основе Corosync и Pacemaker Решение высокой доступности обеспечивает автоматическое переключение при сбое и функции мониторинга узлов.
• Надежность: основано на проверенном опыте Corosync и Pacemaker Обеспечить высокую надежность.
• Автоматическое переключение при сбое: обеспечивает автоматическое переключение при сбое и функции мониторинга узлов.
• Масштабируемость: размещение можно расширить до нескольких узлов.
• Конфигурациясложный:нуждаться Конфигурацияиуправлять Corosync и Кардиостимулятор увеличивает сложность системы.
• Потребление ресурсов: дополнительные компоненты увеличивают потребление системных ресурсов.
Pgpool-II дасуществовать PostgreSQL сервери PostgreSQL база промежуточное программное обеспечение данных, которое работает между клиентами, это что-то вроде BSD и MIT Распространяется по лицензии.
• Pgpool-II сохранить с PostgreSQL серверизконнект, и в том же атрибуте (т. е. использовать имя пользователя, базу данные, версия протокола) Сбрасывать их при появлении новых подключений. Это снижает накладные расходы на соединение и повышает общую пропускную способность системы.
• Pgpool-II Может управлять несколькими PostgreSQL сервер. Сделайте функцию использовать копировать доступной в 2 Создавайте резервные копии в реальном времени на одном или нескольких физических дисках, чтобы обслуживание могло продолжаться без остановки сервера в случае сбоя диска.
• есликопировать Понятнобаза данных, а затем выполнить на любом сервере SELECT Запрос Воля возвращает те же результаты. Пгпул-II выгодаиспользоватькопировать функцию, распределяется между несколькими серверами SELECT Запрос на уменьшение каждого PostgreSQL сервер из нагрузки, тем самым улучшая общую пропускную способность системы. В лучшем случае производительность увеличивается, а сервер PostgreSQL увеличивается пропорционально количеству. балансировка нагрузка работает лучше всего, когда большое количество пользователей одновременно выполняют несколько запросов.
• и PostgreSQL Максимальное количество одновременных подключений да имеет ограничение, и после подключения такого количества Воля получил отказ в подключении. Однако установка максимального количества подключений увеличит потребление ресурсов и повлияет на производительность системы. pgpool-II Также существует ограничение на максимальное количество подключений.,Но выстраиваются дополнительные связи Воля,Вместо немедленного возврата ошибки.
• сторожевой пес может координировать работу нескольких Pgpool-II, чтобы создать мощную кластерную систему и избежать единых точек отказа или разделения мозга. сторожевой пес может быть полезен другим pgpool-II Узлы выполняют проверки работоспособности, чтобы обнаружить Pgpoll-II из-за неисправности. если активно Pgpool-II В случае сбоя режим ожидания Pgpool-II Можно повысить до мероприятия Pgpool-II и берет на себя виртуальную IP。
• В памяти кэш запросов позволяет сохранить пару SELECT утверждение и его результат. Если вход одинаковый из ВЫБРАТЬ, затем Pgpool-II Возвращаемое значение из кэша. Поскольку это не предполагает SQL Анализировать или анализировать PostgreSQL издоступ,Таким образом, использование кэша памяти происходит очень быстро. с другой стороны,в некоторых случаях,это может быть медленнее, чем обычный путь,Потому что это добавляет некоторые накладные расходы на хранение кэшированных данных.
• пул соединений:поставлятьпул соединений Функция,улучшить базу данныхпроизводительность。 • балансировка нагрузка: Может использоваться в нескольких PostgreSQL Распределяйте запросы запросов между экземплярами. • Автоматическое переключение при отказе: поддержка автоматического переключения при отказе и разделение чтения и записи.
• Сложность: Управление конфигурацией относительно сложное. • Накладные расходы на производительность: при большой нагрузке Pgpool-II Это само по себе может стать узким местом. • Согласованность: требуется дополнительная обработка проблем согласованности данных.
https://www.pgpool.net/mediawiki/index.php/Documentation
https://www.pgpool.net/mediawiki/index.php/Downloads
Citus Воля PostgreSQL Преобразование в распределенную базу данныхсистема,Использование сегментирования данных и параллельной обработки запросов повышает производительность и масштабируемость. Автоматическое копирование при совмещении потоковой передачи при сбое,Достичь высокой надежности и согласованности данных.
• Распределенная база данных:Воля PostgreSQL Превратиться в Распределенную база данных, улучшить производительность и масштабируемость. • Высокая доступность. В сочетании с автоматическим потоковым переключением при сбое достигается высокая доступность и согласованность данных. • Горизонтальное расширение: базу данных можно расширять горизонтально путем добавления узлов.
• сложныйсекс:Конфигурацияиуправлять Распределенная база данные более сложны. • Стоимость: требуется больше аппаратных ресурсов, и стоимость выше. • Конкретные сценарии: подходят для конкретных бизнес-сценариев, таких как крупномасштабная обработка данных и большое количество одновременных запросов.
Преимущество: несколько хостов предоставляют возможности чтения и записи для улучшения использования. недостаток: слишком сложный, трудно разрешить конфликты записи, увеличивается вероятность несогласованности данных и существует риск потери данных. Настоятельно рекомендуется использовать решение с одним главным устройством, а решение с несколькими главными устройствами использовать только в крайнем случае, поскольку его очень сложно решить и риск высок. К распространенным решениям для копирования с несколькими хозяевами относятся: BDR (двунаправленное копирование), xDB, PostgreSQL-XL, PostgreSQL-XC. / PostgreSQL-XC2、Rubyrep、Bucardo。
BDR(двустороннийкопировать)、xDB、PostgreSQL-XL、PostgreSQL-XC / PostgreSQL-XC2、Rubyrep、Bucardo
Двунаправленная репликация: двусторонняя синхронизация между несколькими узлами. зрелая. Доступна начиная с PG 9.4. Это относительно старая технология, и в последние годы в Интернете нет соответствующих статей.
BDR Из ранних версий с открытым исходным кодом, но последняя версия с закрытым исходным кодом, это решение было впервые предоставлено 2ndQuadrant Разработка из.
• EnterpriseDB использовать Java Разработал собственное решение двустороннего копирования под названием xDB — проект с закрытым исходным кодом, поэтому информации в Интернете недостаточно.
• этода PostgreSQL-XC из А филиал, руководитель вперед подлежит 2ndQuadrant поддерживать. это отстанет от сообщества PostgreSQL из Итерация версии. Понятно, что оно основано на PostgreSQL 10.6,и PostgreSQL-12 Не совместимо. подходит для OLAP , но не подходит для высоких TPS。
• PostgreSQL-XC Зависит отEnterpriseDB и NTT Это разработанное решение с открытым исходным кодом для синхронизации и копирования, предназначенное для обеспечения записываемых расширений, синхронизации, симметрии и прозрачности. PostgreSQL Кластерное решение.
• Это да Арн Телеман (Arndt Леманн) разработал асинхронное главное/основное копирование, которое утверждает, что имеет простейшие функции конфигурации и может работать на разных платформах (включая Windows). Автоматически настраивайте необходимые триггеры, таблицы журналов и т. д. ;Автоматически обнаруживать вновь добавленные таблицы и синхронизировать их содержимое. ;Автоматическое изменение последовательности конфигурации во избежание дублирования конфликтов ключей.
• Bucardo да End Point Компания из Jon Jensen и Greg Sabino Mullane Разработка решений на основе триггеров. Букардо изSolution уже существует Воля почти 20 Годы, но установка сложная, часто прерывается и возникают ошибки. верно Perl 5,DBI,DBD :: Pg,DBIx :: Safe иззависимость.
http://www.pgbouncer.org/install.html
https://developer.aliyun.com/article/775029
https://patroni.readthedocs.io/en/latest/
https://www.repmgr.org/
https://www.pgpool.net/mediawiki/index.php/Documentation
https://www.pgpool.net/mediawiki/index.php/Downloads
https://www.modb.pro/db/459891
https://blog.csdn.net/weixin_37692493/article/details/117032458
Полный текст,Надеюсь, это поможет вам.,Если вы найдете это полезным,Вы можете поделиться им с друзьями вокруг вас,коллега,Поделитесь с теми, кто вам дорог,Учитесь вместе и добивайтесь прогресса вместе~~~