vault backup: 2024-07-11 09:18:53

This commit is contained in:
Struchkov Mark 2024-07-11 09:18:53 +03:00
parent 5ab7075901
commit 920dc2c2cd
No known key found for this signature in database
GPG Key ID: A3F0AC3F0FA52F3C
3 changed files with 14 additions and 15 deletions

View File

@ -25,7 +25,11 @@
"recentFilesStore": [ "recentFilesStore": [
{ {
"filepath": "_inbox/Репликация в PostgreSQL.md", "filepath": "_inbox/Репликация в PostgreSQL.md",
"timestamp": 1720678349645 "timestamp": 1720678627912
},
{
"filepath": "_inbox/Настройка репликации в PostgreSQL.md",
"timestamp": 1720678625577
}, },
{ {
"filepath": "_inbox/Репликация БД.md", "filepath": "_inbox/Репликация БД.md",
@ -38,10 +42,6 @@
{ {
"filepath": "_inbox/Write-Ahead Log.md", "filepath": "_inbox/Write-Ahead Log.md",
"timestamp": 1720678245537 "timestamp": 1720678245537
},
{
"filepath": "_inbox/Журналы в MySQL.md",
"timestamp": 1720678244355
} }
], ],
"bookmarkedFileStore": [], "bookmarkedFileStore": [],

View File

@ -4,6 +4,10 @@
"basename": "Репликация в PostgreSQL", "basename": "Репликация в PostgreSQL",
"path": "_inbox/Репликация в PostgreSQL.md" "path": "_inbox/Репликация в PostgreSQL.md"
}, },
{
"basename": "Настройка репликации в PostgreSQL",
"path": "_inbox/Настройка репликации в PostgreSQL.md"
},
{ {
"basename": "Репликация БД", "basename": "Репликация БД",
"path": "_inbox/Репликация БД.md" "path": "_inbox/Репликация БД.md"
@ -195,10 +199,6 @@
{ {
"basename": "Кластер RabbitMQ", "basename": "Кластер RabbitMQ",
"path": "_inbox/Кластер RabbitMQ.md" "path": "_inbox/Кластер RabbitMQ.md"
},
{
"basename": "Флаги очередей в RabbitMQ",
"path": "_inbox/Флаги очередей в RabbitMQ.md"
} }
], ],
"omittedPaths": [], "omittedPaths": [],

View File

@ -23,10 +23,6 @@ PostgreSQL реплика это бинарная копия мастера.
Добавление реплики требует остановки работы приложения, чтобы никакие записи не менялись в БД. Хотя, если данные пишутся не так часто, то новая реплика может просто догнать отставание в мастер, которое образуется за время подключения слейва. Добавление реплики требует остановки работы приложения, чтобы никакие записи не менялись в БД. Хотя, если данные пишутся не так часто, то новая реплика может просто догнать отставание в мастер, которое образуется за время подключения слейва.
![](Pasted%20image%2020240606094952.png) ![](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: Async:
- synchronus_commit = - synchronus_commit =
@ -39,7 +35,9 @@ Sync/Semi-symc:
- synchronus_standby_names = \[FIRST \/ ANY\] N (replicas_list) - 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) ![](Pasted%20image%2020240606100439.png)
@ -49,6 +47,7 @@ Sync/Semi-symc:
## Дополнительные материалы ## Дополнительные материалы
- [Настройка репликации в PostgreSQL](Настройка%20репликации%20в%20PostgreSQL.md) - [Настройка репликации в PostgreSQL](Настройка%20репликации%20в%20PostgreSQL.md)
- [BDR User Guide - PostgreSQL wiki](https://wiki.postgresql.org/wiki/Logical_Log_Streaming_Replication) - [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/) - [Отладка и устранение проблем в 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/) - [An Overview of Logical Replication in PostgreSQL | Severalnines](https://severalnines.com/blog/overview-logical-replication-postgresql/)