Гайд 1С: Использование прямого чтения через Read-Only реплики (AlwaysOn / PG)
- Тяжелые аналитические отчеты и выгрузки в BI/DWH замедляют проведение оперативных документов в основной базе.
- Конкуренция за блокировки между фоновыми отчетами и кассовыми/складскими рабочими местами.
- Простаивание вычислительных мощностей вторичных узлов отказоустойчивых кластеров СУБД.
1. Настройка маршрутизации только для чтения (MS SQL AlwaysOn)
Сконфигурируйте список маршрутизации Read-Only Routing List на первичном узле доступности:
ALTER AVAILABILITY GROUP [AG-1C]
MODIFY REPLICA ON N'SQL-NODE-01' WITH
(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST = (N'SQL-NODE-02', N'SQL-NODE-01')));
ALTER AVAILABILITY GROUP [AG-1C]
MODIFY REPLICA ON N'SQL-NODE-02' WITH
(SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY));2. Подключение кластера 1С к реплике (механизм 8.3)
В платформе 1С:Предприятие 8.3 распределение чтения настраивается на уровне Свойств информационной базы в консоли кластера:
- Создайте дополнительную информационную базу в кластере 1С, указывающую на Listener кластера с параметром строки подключения
ApplicationIntent=ReadOnly(для MSSQL) или напрямую на IP реплики PostgreSQL. - Настройте пользователей аналитических отчетов на вход в данную выделенную базу.
3. Вынос тяжелых отчетов через внешние источники данных
Подключайте вторичную реплику СУБД в рабочей конфигурации через Внешние источники данных (ODBC), выполняя чтение напрямую из таблиц СУБД без участия транзакционного контекста мастера.
Частые вопросы (FAQ)
Поддерживает ли платформа 1С автоматическую маршрутизацию отдельных запросов на реплику внутри одной базы?
Штатно в едином сеансе платформа направляет все запросы к основному узлу мастера. Разделение чтения реализуется созданием параллельного контура баз, фоновых сервисов интеграции или через Внешние источники данных.
Возникает ли отставание данных (Replication Lag) на реплике?
При асинхронном режиме репликации отставание может составлять от нескольких миллисекунд до десятков секунд при пиковых нагрузках, поэтому реплику нельзя использовать для оперативного контроля остатков.
Блокирует ли чтение на реплике процесс применения WAL/LDF логов?
В AlwaysOn и PostgreSQL с включенным snapshot isolation/hot_standby_feedback длительные выборки могут вызывать конфликт применения репликации (Snapshot replication conflict) или приводить к раздуванию WAL на мастере.
Требуется ли отдельная лицензия 1С для сервера, работающего только с репликой?
Да, если к рабочим процессам rphost на этом сервере подключаются пользовательские сеансы или фоновые задания 1С, требуются серверные и клиентские лицензии 1С.