From 920dc2c2cd9efb228efeff05b6977efb648b8e3a Mon Sep 17 00:00:00 2001 From: Struchkov Mark Date: Thu, 11 Jul 2024 09:18:53 +0300 Subject: [PATCH] vault backup: 2024-07-11 09:18:53 --- .obsidian/plugins/home-tab/data.json | 10 +++++----- .obsidian/plugins/recent-files-obsidian/data.json | 8 ++++---- _inbox/Репликация в PostgreSQL.md | 11 +++++------ 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/.obsidian/plugins/home-tab/data.json b/.obsidian/plugins/home-tab/data.json index 7924804b..15bc37e1 100644 --- a/.obsidian/plugins/home-tab/data.json +++ b/.obsidian/plugins/home-tab/data.json @@ -25,7 +25,11 @@ "recentFilesStore": [ { "filepath": "_inbox/Репликация в PostgreSQL.md", - "timestamp": 1720678349645 + "timestamp": 1720678627912 + }, + { + "filepath": "_inbox/Настройка репликации в PostgreSQL.md", + "timestamp": 1720678625577 }, { "filepath": "_inbox/Репликация БД.md", @@ -38,10 +42,6 @@ { "filepath": "_inbox/Write-Ahead Log.md", "timestamp": 1720678245537 - }, - { - "filepath": "_inbox/Журналы в MySQL.md", - "timestamp": 1720678244355 } ], "bookmarkedFileStore": [], diff --git a/.obsidian/plugins/recent-files-obsidian/data.json b/.obsidian/plugins/recent-files-obsidian/data.json index 4811e6c4..9fe9f302 100644 --- a/.obsidian/plugins/recent-files-obsidian/data.json +++ b/.obsidian/plugins/recent-files-obsidian/data.json @@ -4,6 +4,10 @@ "basename": "Репликация в PostgreSQL", "path": "_inbox/Репликация в PostgreSQL.md" }, + { + "basename": "Настройка репликации в PostgreSQL", + "path": "_inbox/Настройка репликации в PostgreSQL.md" + }, { "basename": "Репликация БД", "path": "_inbox/Репликация БД.md" @@ -195,10 +199,6 @@ { "basename": "Кластер RabbitMQ", "path": "_inbox/Кластер RabbitMQ.md" - }, - { - "basename": "Флаги очередей в RabbitMQ", - "path": "_inbox/Флаги очередей в RabbitMQ.md" } ], "omittedPaths": [], diff --git a/_inbox/Репликация в PostgreSQL.md b/_inbox/Репликация в PostgreSQL.md index 347239ed..a1e2dae1 100644 --- a/_inbox/Репликация в PostgreSQL.md +++ b/_inbox/Репликация в PostgreSQL.md @@ -23,10 +23,6 @@ PostgreSQL реплика – это бинарная копия мастера. Добавление реплики требует остановки работы приложения, чтобы никакие записи не менялись в БД. Хотя, если данные пишутся не так часто, то новая реплика может просто догнать отставание в мастер, которое образуется за время подключения слейва. ![](Pasted%20image%2020240606094952.png) - -Logical Log Streaming Replication – это способ трансформировать Write-Ahead Log. Например, мы не хотим реплицировать все таблицы из данной базы, а хотим реплицировать только часть. Logical Log Streaming Replication позволяет мастеру объяснить, что из таблиц будет уезжать на слэйв. - -Logical Decoding – способ визуализировать то, что находится в PostgreSQL Write-Ahead Log. На самом деле, если мы можем напечатать в каком-то виде то, что у нас происходит на слэйве, точнее, что нам пришло через Write-Ahead Log, это значит, что мы можем программно реализовать все то, что делает libslave. Получили insert, update, delete, у нас “дернулся” нужный callback, мы узнали про изменения. Это и есть Logical Decoding. ## Синхронизация Async: - synchronus_commit = @@ -39,7 +35,9 @@ Sync/Semi-symc: - synchronus_standby_names = \[FIRST \/ ANY\] N (replicas_list) - позволяет настроить от скольких реплик ожидается ответ ## Логическая репликация -- [PostgreSQL: Documentation: 16: Chapter 31. Logical Replication](https://www.postgresql.org/docs/current/logical-replication.html) +Logical Log Streaming Replication – это способ трансформировать Write-Ahead Log. Например, мы не хотим реплицировать все таблицы из данной базы, а хотим реплицировать только часть. Logical Log Streaming Replication позволяет мастеру объяснить, что из таблиц будет уезжать на слэйв. + +Logical Decoding – способ визуализировать то, что находится в PostgreSQL Write-Ahead Log. На самом деле, если мы можем напечатать в каком-то виде то, что у нас происходит на слэйве, точнее, что нам пришло через Write-Ahead Log, это значит, что мы можем программно реализовать все то, что делает libslave. Получили insert, update, delete, у нас “дернулся” нужный callback, мы узнали про изменения. Это и есть Logical Decoding. ![](Pasted%20image%2020240606100439.png) @@ -49,6 +47,7 @@ Sync/Semi-symc: ## Дополнительные материалы - [Настройка репликации в PostgreSQL](Настройка%20репликации%20в%20PostgreSQL.md) - [BDR User Guide - PostgreSQL wiki](https://wiki.postgresql.org/wiki/Logical_Log_Streaming_Replication) -- [Site Unreachable](http://www.postgresql.org/docs/9.4/static/logicaldecoding.html) Аналог [libslave](libslave.md) в MySQL +- [PostgreSQL: Documentation: 16: Chapter 31. Logical Replication](https://www.postgresql.org/docs/current/logical-replication.html) +- [PostgreSQL: Documentation: 9.4: Logical Decoding](https://www.postgresql.org/docs/9.4/logicaldecoding.html). Аналог [libslave](libslave.md) в MySQL - [Отладка и устранение проблем в PostgreSQL Streaming Replication / Хабр](https://m.habr.com/ru/company/oleg-bunin/blog/414111/) - [An Overview of Logical Replication in PostgreSQL | Severalnines](https://severalnines.com/blog/overview-logical-replication-postgresql/) \ No newline at end of file