Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
Всем привет! Начальство "сказало" переходить на бесплатную СУБД, сейчас все крутится на MS SQL 2000. Рассматриваем FireBird и PostgreSQL. Напарник ищет плюсы/минусы FireBird, я соотвественно PostgreSQL. Все нравилось пока не нашел ничего по поводу асинхронной двухсторонней репликации, напарник говорит, что в FB есть. Плохо искал или действительного ничего нет? slonyII - мертв? PGCluster - синхронная pgpool-II - ничего не нашел про асинхронность, значит нету. У нас 8 филиалов и документы изменяются на разных узлах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 12:03 |
|
||
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
Асинхронный master<->master? Как вы себе это представляете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 12:33 |
|
||
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
Как merge в MS SQL. Один и тот же документ может исправляться на любом узле. Способ разрешения конфликтов на усмотрение разработчика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 12:42 |
|
||
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
Готового решения асинхронного мультимастера с мануальным разрешением конфликтов в PostgreSQL не существует -- нужно делать самому. Помочь в этом могут, например, SkyTools, смотреть в сторону Londiste (движок для организации потабличной репликации с возможностью двухстороннего сравнения таблиц) и PgQ (обобщенная очередь в PostgreSQL). https://developer.skype.com/SkypeGarage/DbProjects/SkyTools . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 12:54 |
|
||
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
izнужно делать самомуГрустно:-(. Не подскажите, разрабатываются такие продукты ,если да, то как скоро их можно пощупать? Боюсь, что написание своей репликации может занять больше времени, чем перевод БД с MS SQL->PostgreSQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 13:09 |
|
||
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
Мультимастер в постгресе большая идеологическая проблема, поскольку постгрес версионник. Представьте, что на каждом сервере один и тот же документ существует в нескольких версиях (в незафиксированных транзациях), да еще нужно выполнить синхронизацию между серверами. Даже в теории выполнить синхронизацию можно только тогда, когда ни на одном из серверов нет ни одной модифицирующей транзакции на таблице документов или связанных таблицах. Резюме - для создания распределенной системы используйте блокировочные СУБД, а не версионники. Если же хотите открытый движок с очень высокой производительностью, гляньте на berkeley db и sqlite, хотя разработка на них будет посложнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 13:57 |
|
||
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
MBGРезюме - для создания распределенной системы используйте блокировочные СУБД, а не версионники. Если же хотите открытый движок с очень высокой производительностью, гляньте на berkeley db и sqlite, хотя разработка на них будет посложнее. Короче, если писать распределенную систему на PostgreSQL надо изобретать навороченный велосипед под названием "Репликация" или создавать на другой СУБД, где это уже реализовано. Всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 14:10 |
|
||
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
pg_man MBGРезюме - для создания распределенной системы используйте блокировочные СУБД, а не версионники. Если же хотите открытый движок с очень высокой производительностью, гляньте на berkeley db и sqlite, хотя разработка на них будет посложнее. Короче, если писать распределенную систему на PostgreSQL надо изобретать навороченный велосипед под названием "Репликация" или создавать на другой СУБД, где это уже реализовано. Всем спасибо. Ну если есть интерес к синхронной мультимастер репликации, то можете посмотреть на Cybercluster . Cybertec is a PostgreSQL replication solution which makes sure that the database cluster is consistent at every point in time. We rely on a shared-nothing architecture which is perfectly suitable for synchronous multimaster replication. Сам не пробовал и услышал про такое довольно недавно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 14:48 |
|
||
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
ThamerlanНу если есть интерес к синхронной мультимастер репликации, то можете посмотреть на Cybercluster А если связи не будет, потом подымать бэкапы, синхронизировать...и все практически вручную. Хотя если все это автоматизировать получится асинхронная репликация:-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 15:04 |
|
||
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
pg_man ThamerlanНу если есть интерес к синхронной мультимастер репликации, то можете посмотреть на Cybercluster А если связи не будет, потом подымать бэкапы, синхронизировать...и все практически вручную. Хотя если все это автоматизировать получится асинхронная репликация:-) Допилить не получится. Синхронная репликация работает на двухфазном коммите транзакций, т.е. каждая транзакция выполняется _на всех_ узлах кластера. Соответственно, не удастся распределить нагрузку между серверами или сделать этот процесс асинхронным. Смысл названного решения в создании серверов горячего резерва (притом необходимо наличие надежного канала между всеми серверами, что требует установки всех серверов в одном дата-центре). Предполагается, что можно запросы select выполнять на любом из серверов, но в случае, когда используются обращения к хранимым процедурам, не получится и это, поскольку хранимая процедура может не только возвращать наборы данных, но и модифицировать хранимые данные и структуру БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 15:43 |
|
||
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
MBGМультимастер в постгресе большая идеологическая проблема, поскольку постгрес версионник. Представьте, что на каждом сервере один и тот же документ существует в нескольких версиях (в незафиксированных транзациях), да еще нужно выполнить синхронизацию между серверами. Даже в теории выполнить синхронизацию можно только тогда, когда ни на одном из серверов нет ни одной модифицирующей транзакции на таблице документов или связанных таблицах.почему идеологическая проблема ? %) документ существует только в зафиксированном виде и синхронизировать нужно именно его, документы в незафиксированных транзациях - не существуют. ps: хотя я может быть просто не понимаю о чём идёт речь %) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 17:00 |
|
||
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
Ёш MBGМультимастер в постгресе большая идеологическая проблема, поскольку постгрес версионник. Представьте, что на каждом сервере один и тот же документ существует в нескольких версиях (в незафиксированных транзациях), да еще нужно выполнить синхронизацию между серверами. Даже в теории выполнить синхронизацию можно только тогда, когда ни на одном из серверов нет ни одной модифицирующей транзакции на таблице документов или связанных таблицах.почему идеологическая проблема ? %) документ существует только в зафиксированном виде и синхронизировать нужно именно его, документы в незафиксированных транзациях - не существуют. ps: хотя я может быть просто не понимаю о чём идёт речь %) Транзакция, которая будет выполнять синхронизацию, тоже до коммита не существует. Например, в 11:59 начинаем транзакцию сохранения новой версии документа, а в 12:00 начинаем транзакцию синхронизации. В 12:01 на сервер сохраняется новая версия документа, но транзакция синхронизации эту новую версию не видит, поскольку внутри транзакции состояние базы "заморожено" на момент начала транзакции. В 12:02 завершается транзакция синхронизации. Вот вам и принципиальная проблема - непонятно даже, как идеологически решать, то ли надо откатывать транзакцию синхронизации, то ли подтверждать. В любом случае сложно предсказать, какая же версия документа окажется на каждом из серверов после их синхронизации. Даже на момент начала синхронизации не удастся точно определить, какая версия документа находится на сервере, так как могут существовать транзакции, изменяющие этот документ, а предсказать заранее, будут ли эти транзакции зафиксированы, нельзя. Конечно, можно накладывать блокировки разных уровней на синхронизируемые таблицы, но это нарушит нормальную работу системы, да к тому же не поможет разобраться с уже начатыми транзакциями, которые на время блокировки приостановят выполнение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 17:22 |
|
||
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
MBG Транзакция, которая будет выполнять синхронизацию, тоже до коммита не существует. Например, в 11:59 начинаем транзакцию сохранения новой версии документа, а в 12:00 начинаем транзакцию синхронизации. В 12:01 на сервер сохраняется новая версия документа, но транзакция синхронизации эту новую версию не видит, поскольку внутри транзакции состояние базы "заморожено" на момент начала транзакции. В 12:02 завершается транзакция синхронизации. Вот вам и принципиальная проблема - непонятно даже, как идеологически решать, то ли надо откатывать транзакцию синхронизации, то ли подтверждать. В любом случае сложно предсказать, какая же версия документа окажется на каждом из серверов после их синхронизации. Даже на момент начала синхронизации не удастся точно определить, какая версия документа находится на сервере, так как могут существовать транзакции, изменяющие этот документ, а предсказать заранее, будут ли эти транзакции зафиксированы, нельзя. Конечно, можно накладывать блокировки разных уровней на синхронизируемые таблицы, но это нарушит нормальную работу системы, да к тому же не поможет разобраться с уже начатыми транзакциями, которые на время блокировки приостановят выполнение. Че-то странное Вы пишете, уважаемый. А какая нам фтопку разницо? Есть изменения - должны быть реплицированы на все базы, есть удаления - аналогично, есть вставки - та же фигня. У нас работает на Оракле (тоже вроде не блокировщик) асинхронная мультимастер репликация и не жужжит. Нормально работает. Хуже с софтом - там много заморочек, например FK, или триггера, коороые зависят от последовательности выполнений... в общем, проблем очень много, но совершенно в другой области. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 17:44 |
|
||
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
Andrey Daeron Че-то странное Вы пишете, уважаемый. А какая нам фтопку разницо? Есть изменения - должны быть реплицированы на все базы, есть удаления - аналогично, есть вставки - та же фигня. Если вы пишете свою систему репликации, разница есть. Если берете готовую, тогда дело совести - разбираться, как работает или "на авось". Andrey Daeron У нас работает на Оракле (тоже вроде не блокировщик) асинхронная мультимастер репликация и не жужжит. Нормально работает. Хуже с софтом - там много заморочек, например FK, или триггера, коороые зависят от последовательности выполнений... в общем, проблем очень много, но совершенно в другой области. И как написанную без учета репликации БД в оракл запустить на мультимастере? Даже не стоит обсуждать. В блокировочнике проще. Раз уж вы упомянули оракл, то в качестве примера назову недавно ими купленную berkeleydb - там подобных заморочек с репликацией нет и быть не может. Насколько мне известно, mysql использует подобную низкоуровневую систему. А в оракле это реализуется намного сложнее, и необходимо переписывать базу (функции, триггеры и т.п.). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 18:03 |
|
||
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
Извиняюсь немного не в тему.... У FB с репликацией еще хуже чем у PostgreSQL у FB нет никаких встроенных средств, существуют только костыли внешние PS Или я плохо искал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2008, 07:39 |
|
||
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
darkpiperPS Или я плохо искал плохо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2008, 07:57 |
|
||
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
MBG И как написанную без учета репликации БД в оракл запустить на мультимастере? Даже не стоит обсуждать. В блокировочнике проще. Раз уж вы упомянули оракл, то в качестве примера назову недавно ими купленную berkeleydb - там подобных заморочек с репликацией нет и быть не может. Насколько мне известно, mysql использует подобную низкоуровневую систему. А в оракле это реализуется намного сложнее, и необходимо переписывать базу (функции, триггеры и т.п.). Еще раз. Я не вижу принципиальных различий между блокировочником и версионником в данном контексте. Если БД не расчитана на мультимастер, то будь-то Оракл, Постгрес или MS SQL и BDB - будут проблемы, при решении которых структура БД изменится. Если репликация встроена в БД или являются синхронной - тогда всё гораздо проще, тогда механизмы репликации просто скрыты от глаз программиста/пользователя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2008, 09:15 |
|
||
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
А как насчет этого ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2008, 09:51 |
|
||
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
alex212А как насчет этого ?Кто нибудь пробывал? Как поставить под Windows, а то *nix-ов боюсь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2008, 12:16 |
|
||
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
Bucardo Limitations Bucardo, like all replication systems, has limitations, including: * Requires Postgres 8.1 or better, with Pl/Perl and Pl/pgsql. Version 8.2 or better is recommended. * Requires recent versions of Perl and DBD::Pg. * Replicates tables only, not the entire database. * Does not replicate DDL. * Cannot handle more than two master nodes at a time (no master-master-master replication yet). * Requires a primary key on each table to be replicated. * Step by step data changes are not tracked, so busy sites with large network disconnect times may require expensive locking to "catch back up" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2008, 22:44 |
|
||
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
Bucardo Limitations * Cannot handle more than two master nodes at a time (no master-master-master replication yet). Что мешает назначить "главный" сервер и по очереди синхронизировать данные? Bucardo Limitations * Step by step data changes are not tracked, so busy sites with large network disconnect times may require expensive locking to "catch back up"Вот это не понял, объясните пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2008, 07:52 |
|
||
|
Асинхронная двухсторонняя репликация
|
|||
|---|---|---|---|
|
#18+
pg_man alex212А как насчет этого ?Кто нибудь пробывал? Как поставить под Windows, а то *nix-ов боюсь? Документацию читать уже не модно? Currently, Bucardo has only been tested on Linux distributions. In theory, it should work fine on most other unix-like systems. It will not run on Windows without some minor modifications to code involving system calls. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2008, 10:33 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=35157559&tid=2004564]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 341ms |

| 0 / 0 |
