Настройка серверов для 1С: Microsoft SQL Server, PostgreSql, IBM DB2 Express-C, файловая система - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

Настройка серверов для 1С: Microsoft SQL Server, PostgreSql, IBM DB2 Express-C, файловая система

SQL сервер предназначен для работы баз данных предприятия. Использует язык запросов, который позволяет обрабатывать данные с высокой скоростью. Благодаря своей многофункциональности способен обрабатывать большие объемы информации для различных клиент-серверных приложений. Технология успешно зарекомендовала себя в работе с платформой 1С Предприятие 8. Для внедрения используются различные разновидности и версии SQL серверов: Microsoft SQL Server, PostgreSql, IBM DB2 Express-C.
Если у Вас не больше пяти сетевых пользователей, и никто не жалуется на скорость работы программы 1С. Поздравляю! У Вас и так всё хорошо и настраивать SQL сервер нет ни какого смысла. Другое дело, когда пользователей много, установлено мощное производительное "железо", корректно работает сеть, а пользователи то и дело жалуются на работу 1С по сети: документы проводятся медленно, отчёты строятся еле-еле, а поиск по справочникам длиться очень долго. Значит, у Вас тормозит и виснет 1С...

При использовании файловых версий системы с увеличением количества рабочих мест или усложнением операций (большие объемы данных для отчетности или формирования реестров, журналов документов, большое количество одновременных запросов на формирование отчетов и т.п.) снижается производительность работы: требуется все больше времени на выполнение тех же задач. При этом увеличение ресурсов сервера или пропускной способности сети ощутимого роста производительности не дает. Решением является переход на клиент-серверный вариант работы 1С:Предприятия.

Аргументы в пользу SQL Server:

Более высокая производительность за счет использования индексирования и секционирования таблиц в СУБД
Автоматическое задействование аппаратных ресурсов по мере роста нагрузки, параллельное выполнение запросов
Рациональное использование дискового пространства за счет возможности сжатия данных в базе SQL Server до 50% от исходного объема – реже требуется приобретение новых носителей по мере роста объемов хранимых данных
Более высокая степень надежности за счет технологий обеспечения отказоустойчивости и резервного копирования данных в SQL Server

Преимущества версии 1С:Предприятия с технологиями SQL Server:

Если количество пользователей 1С:Предприятия превышает 5-15 человек, то при использовании файловой версии вы можете испытывать существенные неприятные задержке в отклике системы на ваши запросы. Более быстрая работа программ 1С с СУБД SQL Server по сравнению с файловой версией, позволит сотрудникам лучше справляться со своими обязанностями
Надежное хранение данных бухгалтерского и оперативного учета
Наличие сертификатов ФСТЭК и ФСБ, подтверждающих высокий уровень обеспечения безопасности данных в SQL Server
Достаточно большое количество специалистов 1С и SQL на рынке – совместное решение 1С:Предприятие + SQL Server на рынке вот уже почти 13 лет, и развитая система обучения и сертификации специалистов по обоим направлениям позволяет подтвердить квалификацию специалиста

Безопасность данных бухгалтерского и оперативного учета, высокий уровень которой поможет обеспечить SQL Server за счет того, что:

SQL Server – это СУБД, спроектированная как безопасная по умолчанию и безопасная в развертывании, позволит повысить защищенность данных SQL Server может автоматически шифровать данные. Даже если получить доступ к файлам СУБД на физическом уровне, информация защищена. Используя SQL Server, доступ к данным можно предоставлять только тем, кому это действительно нужно. Используются средства эффективного управления проверкой подлинности пользователей и авторизацией доступа к данным. С помощью средств управления, входящих в состав SQL Server, можно проводить эффективный аудит действий с базами данных, что позволяет создавать необходимую отчетность и соответствовать нормативным требованиям. Наиболее популярными внедрениями клиент-серверных технологий для 1С сервера являются Microsoft SQL (для Windows) и PostgreSQL (Linux  и Windows).

Важным моментом является настройка регламента. Регламентные операции в SQL – это процедуры, которые выполняются периодически для обеспечения оптимальной работы базы данных в 1С. Они позволяют поддерживать целостность данных, оптимизировать запросы и снижать нагрузку на сервер. В данной заметке рассмотрим основные регламентные операции, их назначение и рекомендации по частоте выполнения.

1. Оптимизация индексов (Index Rebuild)
2. Обновление статистик (Update Statistics)
3. Очистка журнала регистрации (Log Cleanup)
4. Сжатие базы данных (Database Compression)
5. Резервное копирование базы данных (Database Backup)

Правильное выполнение регламентных операций в SQL является одним из ключевых аспектов для обеспечения стабильной и эффективной работы базы данных в 1С. Частоту выполнения операций следует выбирать, исходя из интенсивности использования системы, объема данных,  требований к производительности и наличия свободных ресурсов.



📰 Набор скриптов для знакомства с MS SQL Server:
Базовая информация о сервере:
-- Имена сервера и экземпляра
Select @@SERVERNAME as [Server\Instance];

-- версия SQL Server
Select @@VERSION as SQLServerVersion;

-- экземпляр SQL Server
Select @@ServiceName AS ServiceInstance;

-- Текущая БД (БД, в контексте которой выполняется запрос)
Select DB_NAME() AS CurrentDB_Name;

Теперь мы знаем какая версия SQL Server используется, имя экземпляра и сервера.
Хотя есть подозрение, что имя экземпляра Вы знали еще до подключения к нему 🙂
Версия СУБД может пригодиться для определения какие возможности у нее есть, известные баги и др.


Время работы с момента запуска:
В большинстве вопросов диагностики производительности и стабильности важно знать сколько времени уже запущен экземпляр SQL Server.

SELECT  @@Servername AS ServerName ,
       create_date AS  ServerStarted ,
       DATEDIFF(s, create_date, GETDATE()) / 86400.0 AS DaysRunning ,
       DATEDIFF(s, create_date, GETDATE()) AS SecondsRunnig
FROM    sys.databases
WHERE   name = 'tempdb';

Здесь мы получили имя сервера, дату его запуска, а также продолжительность работы сервера в днях и секундах. Для этого мы использовали дату создания базы TempDB, которая создается в момент запуска SQL Server.
Почему эта информация так важна? Сам SQL Server собирает статистику различных показателей (как используются индексы, информацию о недостающих индексах, планы запросов и др.). Чем дольше сервер работает, тем точнее собранная статистика.
Представьте, что Вы запустили сервер 5 минут назад, смотрите что информации о недостающих индексов нет. Правильно ли было полагаться на эти данные, которые были собраны за 5 минут?


Количество активных соединений:
Еще одним очень важным моментом может быть количество активных соединений со SQL Server.
-- Похожая информация, может быть получена с помощью sp_who

SELECT  @@Servername AS Server ,
       DB_NAME(database_id) AS DatabaseName ,
       COUNT(database_id) AS Connections ,
       Login_name AS  LoginName ,
       MIN(Login_Time) AS Login_Time ,
       MIN(COALESCE(last_request_end_time, last_request_start_time))
                                                        AS  Last_Batch
FROM    sys.dm_exec_sessions
WHERE   database_id > 0
       AND DB_NAME(database_id) NOT IN ( 'master', 'msdb' )
GROUP BY database_id ,
        login_name
ORDER BY DatabaseName;

Эта информация может пригодиться в следующих случаях:
Отслеживание количества соединений для контроля лицензионной "чистоты".
Для контроля подключения к базе данных.
Для сбора статистики интенсивности работы с СУБД.
Расследование проблем "зависших" соединений.
И др.

Получить список всех баз на сервере:
Все варианты дают примерно ту же самую информацию, но с разной детализацией.

Способ 1:
EXEC sp_helpdb;

Способ 2:
EXEC sp_Databases;

Способ 3:
SELECT  @@SERVERNAME AS Server ,
       name AS DBName ,
       recovery_model_Desc AS RecoveryModel ,
       Compatibility_level AS CompatiblityLevel ,
       create_date ,
       state_desc
FROM    sys.databases
ORDER BY Name;

Способ 4:
SELECT  @@SERVERNAME AS Server ,
       d.name AS DBName ,
       create_date ,
       compatibility_level ,
       m.physical_name AS FileName
FROM    sys.databases d
       JOIN sys.master_files m ON d.database_id = m.database_id
WHERE   m.[type] = 0 -- data files only
ORDER BY d.name;

Информация о бэкапах:
Резервное копирование - очень важно. Об этом уже так много было сказано, но случаев когда им пренебрегают до сих пор очень много. Узнаем дату последнего бэкапа тех баз, которые расположены на изучаемом сервере.

SELECT  @@Servername AS ServerName ,
       d.Name AS DBName ,
       MAX(b.backup_finish_date) AS LastBackupCompleted
FROM    sys.databases d
       LEFT OUTER JOIN msdb..backupset b
                   ON b.database_name = d.name
                      AND b.[type] = 'D'
GROUP BY d.Name
ORDER BY d.Name;

Кроме этого, мы можем узнать куда последние бэкапы сохранялись (будь то какой-либо каталог  или виртуальное устройство для сохранения на ленту, или что-то другое).

SELECT  @@Servername AS ServerName ,
       d.Name AS DBName ,
       b.Backup_finish_date ,
       bmf.Physical_Device_name
FROM    sys.databases d
       INNER JOIN msdb..backupset b ON b.database_name = d.name
                                       AND b.[type] = 'D'
       INNER JOIN msdb.dbo.backupmediafamily bmf ON b.media_set_id = bmf.media_set_id
ORDER BY d.NAME ,
       b.Backup_finish_date DESC;

Теперь мы знаем есть ли настроенное резервное копирование. Ну или хотя бы ручной запуск бэкапирования.
📰 Утилита ibcmd:
Ibcmd устанавливается вместе с кластером серверов 1С. Позволяет администрировать базу, создавать её, выгружать в ДТ или файлы. Через неё можно было выгружать и загружать *.dt уже относительно давно, но именно с версии платформы 23, появилась возможность делать это без промежуточной выгрузки в файл .dt, а это в разы ускоряет время выполнения. Данная утилита позволяет переносить базы между разными СУБД.

Скрипт для командной строки Windows для переноса базы с MS SQL и создания на Postgre SQL:
ibcmd infobase replicate --data=ВРЕМЕННОЕ_МЕСТОПОЛОЖЕНИЕ --dbms=MSSQLServer --database-server=ИМЯ_СЕРВЕРА_ИСТОЧНИКА --database-name=ИМЯ_БАЗЫ --database-user=ИМЯ_ПОЛЬЗОВАТЕЛЯ_СЕРВЕРА--database-password=ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ_СЕРВЕРА --target-dbms=PostgreSQL --target-database-server=ИМЯ_СЕРВЕРА_ПРИЕМНИКА --target-database-name=ИМЯ_БАЗЫ --target-database-user=ИМЯ_ПОЛЬЗОВАТЕЛЯ_СЕРВЕРА --target-database-password=ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ_СЕРВЕРА --target-create-database

Выполнять нужно перейдя в каталог платформы командой:
cd C:\Program Files\1cv8\8.3.23.1865\bin
Порядок выполнения SQL запроса:
Если Вы хотите заказать услугу «Настройка серверов для 1С версий 7.7, 8.2, 8.3 - Microsoft SQL Server, PostgreSql, IBM DB2 Express, файловая система» (код 5.х). Пожалуйста, ознакомьтесь с прайс-листом и оформите заявку через контактную форму.
____________________
Copyright©, «Программист 1С в г.Минске»
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому