gifts2017

Построение отказоустойчевого кластера 1С 8.1 с использованием PostgreSQL

Опубликовал Александр Сединкин (alexcid) в раздел Администрирование - Системное

Построение отказоустойчевого кластера 1С 8.1 с использованием PostgreSQL, обмен опытом.

Всем привет. Данная статья призвана помочь всем страждущим и сэкономить Ваше время в поисках и тестировании.

Встала перед нами (т.е. ИТ отделом) задача построить failover кластер на Linux CentOS + PostgreSQL.

В класической схеме такой кластер использует 2 ... n вычислительных серверов и единое хранилище. Данную схему рассматривать не будем, поскольку это слишком просто и дороже. Рассмотрим случай, когда необходимо обойтись без общего хранилища.

Для построения такого кластера мы были вынуждены прибегнуть к репликации БД. Вот здесь и возникла проблема. Бесплатных систем репликации масса, но не одна из них не смогла нам помочь. Рассмотрим все что мы испытали.

1. Pgpool I и Pgpool II - оба варианта были оттестированы на промежуточных и последних релизах, у всех одна проблема рассинхронизация бэкендов, одним словом при большой нагрузке, т.е. 1000 документов в минуту например, pgpool ложиться. Вывод нестабилен.

2. Slony-I, он же Mamoth от commanpromt - все очень круто и надежно, но! 1С 8.1 в силу своих соображений имеет таблицы, которые не имеют ни UNIQUE INDEX, ни PRIMARY KEY, без которых эти системы работать не смогут. Есть возможность создать так называемый serial key, но это уже  вмешательство в структуру БД 1С, что может привести к проблемам при обновлении конфигурации, ну и с юридической точки зрения не правмочно. Вывод несовместим.

3. Pgcluster, он же Cybercluster от Cybertec (Shonig & Shonig Gmbh) - интересная система, втсраивается как патч в исходники постгрес, т.е. для начала нужно взять ветку 8.3.3 постгрес, накатить патчи от 1С, а затем накатить патч pgcluster или cybercluster. Не работатет синхронизация объктов типа BINARY (тип BYTEA). Проблема на данный момент не решена. Велась переписка с компанией Cybertec г-ом Shonig'om, но пока не увеначлась успехом. Вывод несовместим.

4. Skytools Londiste - таже ситуация, что и Slony-I

Скорее всего я что-то забыл. Но я обещая вспомнить и описать это в следующей статье.

 

 

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. Игорь <...> (I_G_O_R) 26.08.09 22:00
интересно кто еще использует PostgreSQL, глюков много или нет? быстродействие как?
2. Александр Забалуев (zabaluev) 27.08.09 11:10
А вывод какой, как делать то? Какое решение?
3. Игорь (vikorn) 27.08.09 12:26
(1) я использую, нормально работает, быстродействие поменьше чем у mssql 2005, но я так думаю - это из-за кривых рук разрабов, потому как написанный самими софт работает нормально
4. Александр Сединкин (alexcid) 27.08.09 14:48
На мой взгляд PostgreSQL очень мощная СУБД и ее настройка во многом зависит от "прямых рук" настраивающего. У нас например Postgres используется в production с 2007 года, в реальных магазинах (гипермаркеты) где довольно таки приличная нагрузка и на торговый зал и на бэк-офис. Жаловаться не могу.
Сравнивать быстродействие с MSSQL 2005 нет смысла, поскольку архитектура самих СУБД разная. Postgres это класический версионник, поэтому скорость удаления и записи во многом зависит от настроек. Мы например отключили autovacuum и установили vacuum как регламентное задание по ночам, например БД объемом 56 ГБ чиститься порядка 20 мин.
1С изначально заточен под MS, поэтому мы прилагаем не мало усилий в сам код конфигурации и ставим режим управляемых блокировок где это необходимо.
5. СоболиныйГлаз (СоболиныйГлаз) 31.08.09 09:09
(4) А возможно-ли посмотреть ваш postgresql.conf? И насколько примерно выросла производительность при отключении автовакуума?
6. Александр Сединкин (alexcid) 03.09.09 16:19
(5) В принципе можно, только какой версии 8.2.х или 8.3.х? Производительность выросла не на много, но мы и не приследовалий такой цели при отключении автовакуума, а вот блокировок стало гораздо меньше (точной статистики нет), на порядок.
7. Андрей Жданов (azhdan) 21.12.10 16:43
В процессе работы СУБД в лог пишутся вот такие данные
roznica © - 2010-12-20 10:15:24 EET: NOTICE: CREATE TABLE will create implicit sequence "tt125_f_1_seq" for serial column "tt125.f_1"

может кто в курсе что это и насколько это критично?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа