Как эффективно и безопасно работать с базами 1С через VPN и правильно организовывать резервное копирование?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← К списку

При работе с информационными базами 1С через VPN-соединение многие пользователи сталкиваются с проблемами низкой производительности, длительных операций и сложностей с резервным копированием. Давайте вместе разберем, как организовать этот процесс максимально эффективно, профессионально и безопасно, избегая распространенных ошибок.

Основные проблемы при работе с 1С через VPN

Прежде чем перейти к решениям, давайте выясним причины, по которым работа с 1С через VPN может быть затруднительной. Основные сложности, которые мы часто наблюдаем:

  1. Низкая скорость операций: Выгрузка больших баз данных, например, в файл *.dt размером в 30 Гб, может занимать часы. Это связано с ограниченной пропускной способностью VPN-канала, сетевыми задержками и потенциально избыточным шифрованием.
  2. Риск потери данных при обновлении: Обновление конфигурации или реструктуризация базы данных через нестабильное VPN-соединение крайне рискованно. Любой обрыв связи в процессе может привести к порче информационной базы.
  3. Неэффективные методы резервного копирования: Часто пользователи пытаются делать резервные копии, выгружая базу в *.dt файл на свой локальный компьютер, что является небезопасным, медленным и непрофессиональным подходом.
  4. Отсутствие тестового контура: Внесение изменений напрямую в продуктивную базу без предварительного тестирования чревато серьезными последствиями.

Мы рассмотрим, как избежать этих проблем и построить надежную систему работы.

Решение 1: Приоритет удаленного рабочего стола (RDP) для критичных операций

Для выполнения критически важных операций, таких как обновление конфигурации, реструктуризация базы данных, или внесение значительных изменений, мы настоятельно рекомендуем использовать удаленный рабочий стол (RDP) или аналогичные решения. Разберем подробнее, почему это так важно.

  1. Стабильность и безопасность: RDP-сеанс (или аналогичные решения, такие как AnyDesk, TeamViewer, RAdmin) обеспечивает стабильное соединение непосредственно с сервером или виртуальной машиной в локальной сети заказчика. Это исключает риски, связанные с нестабильностью вашего интернет-соединения или VPN-канала. Представьте, что произойдет, если VPN-соединение оборвется во время реструктуризации 30-гигабайтной базы данных!
  2. Использование серверных ресурсов: При работе через RDP все ресурсоемкие операции (компиляция конфигурации, реструктуризация, выполнение запросов) выполняются на сервере. Это значительно ускоряет работу, поскольку не зависит от мощности вашего локального компьютера и пропускной способности канала до него.
  3. Создание тестового контура: Мы рекомендуем настаивать на создании отдельного тестового контура. Это может быть виртуальная машина или отдельная база данных на том же сервере, куда у вас будет RDP-доступ. На этом контуре вы сможете:
    • Вносить и тестировать изменения без риска повредить рабочую базу.
    • Отрабатывать процесс обновления конфигурации.
    • Позволить аналитикам и конечным пользователям тестировать новые функции.

    Работа напрямую с продуктивной базой — это путь к проблемам. Давайте действовать профессионально.

  4. Обоснование для администраторов и ИБ: Мы понимаем, что доступ по RDP может быть ограничен политиками безопасности. Мы советуем грамотно обосновать необходимость такого доступа. Например, можно попросить организовать виртуальную машину в локальной сети сервера с ограниченными правами доступа (только для запуска 1С и сохранения файлов, без доступа к внешним ресурсам). Это не нарушит безопасность, но значительно повысит эффективность вашей работы. Для базы в 30 ГБ найти 200 ГБ на рабочее место не должно быть проблемой.

Решение 2: Профессиональное резервное копирование баз данных 1С на PostgreSQL

Давайте проанализируем ситуацию с резервным копированием. Выгрузка базы в файл *.dt через конфигуратор 1С, особенно на локальный компьютер через VPN, не является надежным методом создания резервной копии и не расценивается фирмой 1С как таковая. Мы разберем, как правильно делать бэкапы, особенно для баз на PostgreSQL.

  1. Почему *.dt не подходит для бэкапа:
    • Требует монопольного доступа к базе, что останавливает работу пользователей.
    • Длительное время выполнения для больших баз.
    • Высокие требования к оперативной памяти.
    • Риск невозможности загрузки файла при наличии логических ошибок в исходной базе.
    • Предназначен, в первую очередь, для переноса баз между СУБД или файловым вариантом.
  2. Профессиональные средства PostgreSQL для бэкапа:

    Для баз 1С на PostgreSQL мы рекомендуем использовать штатные средства СУБД. Это pg_dump и pg_basebackup.

    • pg_dump:

      Этот инструмент создает логическую копию базы данных в виде SQL-скрипта или в специальном формате. Его ключевое преимущество – возможность выполнять бэкап без остановки работы пользователей. Мы можем использовать многопоточность для ускорения процесса выгрузки больших баз данных. Например, для выгрузки в custom-формате с 4 потоками:

      
      pg_dump -Fc -j 4 -f backup.dump ИмяБазыДанных
      

      Если вы хотите сжать выгрузку, но сохранить многопоточность, мы можем использовать параметр -Z 0 (без сжатия средствами pg_dump) и затем сжать файл многопоточным архиватором (например, pigz):

      
      pg_dump -Fc -Z 0 -j 4 -f backup.dump ИмяБазыДанных
      pigz backup.dump
      

      Для ускорения процесса восстановления, особенно при перестроении индексов, рекомендуем проверить параметр max_parallel_maintenance_workers в конфигурации PostgreSQL (например, установить max_parallel_maintenance_workers=4).

      Важный момент: Существуют мнения о потенциальных проблемах консистентности базы 1С, восстановленной из дампа pg_dump, особенно если в базе присутствовали ошибки на момент выгрузки. pg_dump не копирует индексы напрямую, а лишь дает команды на их перестройку при восстановлении. Тем не менее, это все равно более надежный способ, чем *.dt.

    • pg_basebackup:

      Используется для создания физической "горячей" копии всего кластера PostgreSQL. Это предпочтительнее для очень больших баз данных или для создания реплик. Этот метод создает полную копию файлов данных PostgreSQL.

  3. Автоматизация и расположение бэкапов:

    Мы настоятельно рекомендуем автоматизировать процесс резервного копирования с помощью скриптов и планировщика задач (cron в Linux, Планировщик заданий в Windows). Скрипты могут включать команды pg_dump, сжатие архивов и их перемещение на отдельное хранилище. Обратите внимание, что бэкапы должны храниться не на вашем локальном компьютере, а в безопасном месте в сети компании (сетевая папка на другом сервере, облачное хранилище, VPS-сервер), куда согласятся администраторы.

    Пример скрипта для запуска бэкапа по наличию файла в папке или по команде бота:

    
    # Пример скрипта для Linux (для Windows аналогично)
    #!/bin/bash
    DB_NAME="ИмяВашейБазы1С"
    BACKUP_DIR="/path/to/backup/folder"
    TIMESTAMP=$(date +%Y%m%d_%H%M%S)
    BACKUP_FILE="${BACKUP_DIR}/${DB_NAME}_${TIMESTAMP}.dump"
    
    echo "Начинаем резервное копирование базы ${DB_NAME}..."
    pg_dump -Fc -j 4 -f "${BACKUP_FILE}" "${DB_NAME}"
    
    if [ $? -eq 0 ]; then
        echo "Резервное копирование успешно завершено. Файл: ${BACKUP_FILE}"
        # Дополнительные действия: сжатие, перемещение в облако и т.д.
        pigz "${BACKUP_FILE}"
    else
        echo "Ошибка при резервном копировании базы ${DB_NAME}."
    fi
    

    Такой скрипт может запускаться по расписанию или по триггеру (например, если в определенной папке появился файл-флаг).

  4. Разделение ответственности:

    Мы должны понимать, что создание резервной копии и ее восстановление — это разные задачи. Вам достаточно уметь создать бэкап, а восстановление из него должно осуществляться по запросу ответственными лицами (администраторами), у которых есть соответствующие знания и умения. Это снижает риски и соответствует принципам безопасности.

Решение 3: Оптимизация производительности работы 1С через VPN

Если работа через RDP не всегда возможна или необходима, и мы вынуждены работать с 1С напрямую через VPN, давайте рассмотрим, как можно оптимизировать производительность.

  1. Оптимизация VPN-соединения:
    • Выбор протокола: Мы рекомендуем использовать современные и быстрые VPN-протоколы, такие как WireGuard или OpenVPN, которые обеспечивают высокую скорость и стабильность соединения.
    • Пропускная способность: Убедимся, что VPN-сервер находится в дата-центре, географически близком к пользователям, и имеет пропускную способность не ниже 100 Мбит/с.
    • Настройка QoS: В локальной сети мы можем настроить QoS (Quality of Service) для приоритизации трафика 1С.
    • MTU: Проверим и настроим значение MTU (Maximum Transmission Unit), так как фрагментация пакетов может значительно замедлять передачу данных через VPN.
    • Диагностика сети: Мы можем использовать инструменты диагностики, такие как ping и traceroute для измерения задержки, iperf для тестирования скорости канала, и Wireshark для анализа потерь пакетов.
  2. Оптимизация работы 1С-клиента:
    • Тонкий клиент или веб-интерфейс: Рассмотрим возможность использования тонких клиентов или веб-интерфейсов 1С вместо толстых клиентов. Эти варианты снижают нагрузку на канал, так как большая часть обработки происходит на сервере 1С.
  3. Оптимизация серверной части:
    • Антивирус: Мы должны исключить папки с базами 1С, каталоги сервера 1С и процессы PostgreSQL (или другой СУБД) из проверки антивирусом на сервере. Антивирусное ПО может существенно снижать производительность.

Общие рекомендации и безопасность

Подведем итог и проанализируем общие принципы эффективной и безопасной работы:

Следуя этим рекомендациям, мы сможем организовать эффективную, стабильную и безопасную работу с базами 1С через VPN, минимизируя риски и повышая производительность.

← К списку