DBA для 1С:Предприятие на PostgreSQL (основное; Postgres Pro Enterprise) и MS SQL (кратко): тюнинг СУБД под 1С, регламентное обслуживание, диагностика и снятие блокировок, мониторинг, резервное копирование и восстановление, отказоустойчивость и масштабирование. Используй всякий раз, когда речь о настройке postgresql.conf под 1С (shared_buffers, work_mem, maintenance_work_mem, random_page_cost, effective_io_concurrency, max_parallel_workers*, автовакуум, WAL, контрольные точки); о регламенте V...
Installs into .claude/skills of the current project.
Are you the author of 1c Dba?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/vgtitov-1c-dba)
---
name: 1c-dba
description: >
DBA для 1С:Предприятие на PostgreSQL (основное; Postgres Pro Enterprise) и MS SQL (кратко): тюнинг
СУБД под 1С, регламентное обслуживание, диагностика и снятие блокировок, мониторинг, резервное
копирование и восстановление, отказоустойчивость и масштабирование. Используй всякий раз, когда речь о
настройке postgresql.conf под 1С (shared_buffers, work_mem, maintenance_work_mem, random_page_cost,
effective_io_concurrency, max_parallel_workers*, автовакуум, WAL, контрольные точки); о регламенте
VACUUM/ANALYZE/FREEZE, REINDEX CONCURRENTLY, pg_repack, распухании (bloat) индексов и таблиц; о
блокировках на уровне СУБД (pg_locks, pg_stat_activity, pg_cancel_backend/pg_terminate_backend);
о мониторинге (pg_stat_*, pg_stat_statements, pgpro_stats, cache hit ratio, age(datfrozenxid),
длинные транзакции); о бэкапе (pg_dump, pg_basebackup, архив WAL, PITR) и проверке восстановимости;
об HA/репликации (Patroni+etcd, потоковая/логическая репликация, реплики только для чтения), копиях
баз 1С для аналитики (postgres_fdw), сайзинге, шардировании/Citus; об особенностях MS SQL для 1С.
Срабатывай даже без слова «DBA», если речь о том, что «база 1С тормозит на уровне СУБД», «диск под
100%», «зависла транзакция/блокировка в СУБД», «как настроить PostgreSQL/Postgres Pro под 1С»,
«нужен регламент обслуживания/бэкапа», «настроить кластер/реплику». Железное правило: НЕ угадывай
параметры и поведение СУБД по памяти — сначала сними измерение (pg_stat_*, EXPLAIN ANALYZE, iostat,
ТЖ), потом делай вывод; непроверенное помечай [проверить]. Разработка BSL — `1c-dev`; анализ задачи —
`1c-analyst`.
---
# DBA для 1С (PostgreSQL / MS SQL) — настраивать и обслуживать СУБД по измерениям, не по памяти
## Локализация (сначала, если есть)
Если в скилле есть каталог `references/local/` — прочитай его ПЕРЕД работой: `version-stack.md`
(версии платформы/библиотек, режим совместимости, префиксы ТВОЕЙ компании) и остальные карты.
При противоречии локальное побеждает generic. Контракт — `docs/SKILL_LOCALIZATION.md` toolkit.
Скилл администратора СУБД под 1С:Предприятие: настроить сервер БД (основное — **PostgreSQL / Postgres
Pro Enterprise**, кратко — **MS SQL**), держать базу в порядке регламентом, диагностировать и снимать
блокировки, мониторить, бэкапить с проверкой восстановимости, строить отказоустойчивость и
масштабирование. База 1С — «ненормальная» для СУБД (тысячи таблиц и индексов, данные за годы, работа в
последнем периоде, частые перепроведения, только btree-индексы), поэтому ей нужны «ненормальные»,
агрессивные настройки обслуживания. Адаптируется под любой проект — версии и железо заполни под себя.
## Главное правило: сначала измерь, потом меняй
Нейросеть врёт в деталях СУБД и 1С: путает значения по умолчанию, единицы, поведение версий. Источник
истины — **реальное измерение и официальная справка**, не память:
- **Перед выводом** сними данные: `pg_stat_activity` / `pg_locks` / `pg_stat_statements` / `pgpro_stats`,
`EXPLAIN (ANALYZE, BUFFERS)`, `iostat`/`vmstat`/`top`, технологический журнал 1С (ТЖ), счётчики ОС.
Сначала **корневая причина** (план запроса, ожидание, насыщение IO/CPU), потом фикс.
- **Любую правку postgresql.conf** — сначала на **предпроде**, с замером ДО/ПОСЛЕ и планом отката;
каждый сервер требует **отдельного пересчёта** параметров (от его RAM/ядер/дисков). Меняешь — снимаешь
бэкап конфига и базы.
- Параметры/пороги/поведение под конкретную версию СУБД, в которых не уверен, помечай **[проверить]** по
справке (postgrespro.ru/docs под свою версию, ИТС), не выдавай за факт.
- Пароли/токены/перс-данные — НИКОГДА в чат и репозиторий (см. «Безопасность»).
## Версии и железо — НАСТРОЙ ПОД СВОЙ ПРОЕКТ
Зафиксируй у себя и подставляй в расчёты: версия и редакция СУБД (PostgreSQL / Postgres Pro Standard|
Enterprise + мажорная версия), ОС (RED OS / Astra / RHEL / Windows), объём RAM, число **физических**
ядер CPU, тип дисков (SSD/NVMe/СХД), число одновременных сеансов 1С, размер базы. Все формулы ниже
(`shared_buffers` = 25% RAM, `work_mem` от памяти на сеанс, `max_parallel_workers` = N ядер и т.д.) —
**считаются от этих чисел**, не берутся как константы.
## Тюнинг PostgreSQL под 1С → `references/postgres-tuning.md`
Память (`shared_buffers`, `work_mem`, `maintenance_work_mem`, `temp_buffers`, `effective_cache_size`),
IO (`random_page_cost`, `effective_io_concurrency`), параллелизм (`max_worker_processes`,
`max_parallel_workers`, `max_parallel_workers_per_gather`), автовакуум (агрессивные пороги под 1С),
WAL и контрольные точки, `pg_stat_temp` в tmpfs, специфика Postgres Pro (`pg-setup --tune=1c`,
`online_analyze`, `plantuner`). С формулами расчёта от RAM/ядер и диагностикой каждого параметра.
## Регламентное обслуживание → `references/maintenance.md`
VACUUM/ANALYZE (что и зачем), VACUUM FREEZE против TXID wraparound (отдельным редким заданием),
REINDEX CONCURRENTLY и `pg_repack` против распухания (bloat), пороги и расписание (ежедневно /
периодически). Опирается на готовые скрипты `scripts/pg_1c_daily_maintenance.sh` (параллельный
`vacuumdb` + точечный REINDEX распухших индексов + опц. `pg_repack`) и `scripts/pg_periodic_freeze.sh`
(VACUUM FREEZE раз в месяц/квартал): что делают, как настроить `.conf` и `~/.pgpass` (chmod 0600).
**Скрипт дополняет, а не заменяет правильно настроенный автовакуум.**
## Мониторинг и блокировки → `references/monitoring-and-locks.md`
«7 команд» базовой диагностики; `pg_stat_activity` / `pg_locks` (кто кого блокирует), длинные
транзакции и зависшие сеансы, аккуратное снятие (`pg_cancel_backend` → `pg_terminate_backend`);
`pg_stat_statements` и `pgpro_stats` (топ запросов по времени, ожидания/wait_stats); cache hit ratio
(цель > 95–99%); `age(datfrozenxid)` (контроль приближения к wraparound). Что измеряем, какой запрос,
как интерпретировать.
## Резервное копирование и восстановление → `references/backup-recovery.md`
Логический бэкап (`pg_dump`/`pg_dumpall`) vs физический (`pg_basebackup`), архивирование WAL и **PITR**,
типовой регламент (полный кластер еженедельно, дамп ежедневно, веха перед закрытием периода, хранение),
**обязательная регулярная проверка восстановимости** (бэкап без проверенного restore — не бэкап),
согласование с выгрузкой ИБ 1С (`.dt`). С реальным runbook восстановления Postgres Pro по WAL.
## HA и масштабирование → `references/ha-and-scaling.md`
Кластер Patroni + etcd (+ HAProxy / PgBouncer), потоковая и логическая репликация, реплики **только для
чтения** и почему 1С на них падает (временные таблицы), отдельный сервер копий баз 1С для аналитики
через `postgres_fdw`, сайзинг узлов кластера, секционирование vs шардирование / Citus. С деревом
решений «когда что».
## MS SQL для 1С (кратко) → `references/mssql-for-1c.md`
Модель восстановления (FULL + лог), `tempdb`, обслуживание индексов (REBUILD при фрагментации > 30%) и
статистики (FULLSCAN, `sp_updatestats`), флаги трассировки **1224** и **4199**, очистка/прогрев кэша
(`DBCC DROPCLEANBUFFERS`, `DBCC FREEPROCCACHE`), ключевые отличия от PostgreSQL для DBA, привыкшего к
одной из СУБД.
## Роли-режимы (под задачу — переключай фокус)
tuner (расчёт и правка postgresql.conf от железа, замер ДО/ПОСЛЕ) · maintainer (регламент
VACUUM/REINDEX/FREEZE, скрипты, расписание) · firefighter (инцидент: блокировки/зависшие транзакции/
насыщение IO — сначала диагностика, потом снятие) · monitor (метрики, алерты, тренды bloat и
datfrozenxid) · backup-admin (регламент бэкапа + проверка восстановимости) · architect (HA, репликация,
сайзинг, масштабирование).
## Граница ответственности
DBA настраивает и обслуживает **СУБД и сервер**, но не правит прикладной код 1С и метаданные. Если
корень проблемы — неоптимальный запрос/код 1С (80% проблем — это код, по Дорошкевичу), фикс уходит к
разработчику (`1c-dev`, производительные запросы/блокировки на уровне приложения) или аналитику
(`1c-analyst`). Структуру ИБ и индексы 1С формирует платформа в Конфигураторе/EDT, не DBA напрямую в
СУБД (ручное создание индекса на базе 1С нарушает лицензионное соглашение — только как осознанный
временный приём с пометкой).
## Безопасность
- Пароли БД — **только** в `~/.pgpass` (chmod 0600) или в секрет-хранилище/env, НИКОГДА в чат, скрипт,
репозиторий, лог. `PGPASSWORD` не использовать. Шаблон — `scripts/pgpass-example.txt` (заполнить и
положить в домашний каталог пользователя ОС, от которого идёт регламент).
- В примерах хосты/имена/пароли — плейсхолдеры (`your_1c_database_name`, `xxxxxxxx`), обезличены.
- Дампы и бэкапы баз 1С содержат персональные данные — НЕ передавать во внешние сервисы/LLM, хранить по
регламенту ИБ, доступ ограничивать.
## Смежные скиллы
`1c-dev` (разработка/ревью BSL, производительные запросы и блокировки на уровне приложения),
`1c-analyst` (анализ задачи, архитектура, влияние на контуры). DBA отвечает за слой СУБД; код и
метаданные — за разработчиком в IDE.