MS SQL настройка бэкапов на NAS

Материал из WiKi - IQ Company
Версия от 07:22, 27 марта 2026; R.klimov (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Цель - обеспечить возможность SQL Server выполнять бэкапы на сетевое хранилище (NAS), к которому по умолчанию нет доступа у виртуальной учетной записи службы.

Важные замечания перед началом

  • Виртуальная учетная запись MSSQLSERVER не имеет доступа к сетевым ресурсам.
  • Для работы с NAS необходимо указать реальную учетную запись Windows.
  • ❗ Не рекомендуется выдавать этой учетной записи административные права — достаточно прав на доступ к нужной сетевой папке.
  • Выполняйте перезапуск службы в период минимальной нагрузки (например, в обеденное время).

Настройка учетной записи службы SQL Server

  1. Откройте Службы [WIN+R выполнить services.msc]
  2. Найдите службу: SQL Server (MSSQLSERVER)
  3. Откройте свойства службы → вкладка "Вход в систему" (С учётной записью)
  4. Укажите учетную запись, которая:
    • имеет доступ к NAS (сетевой папке),
    • Не имеет прав администратора.
  5. Нажмите Применить.

Перезапуск службы

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

  1. Перезапустите службу SQL Server (MSSQLSERVER).
  2. Рекомендуется это делать:
    • в обеденное время
    • или в окно обслуживания

Включение xp_cmdshell

Подключитесь к серверу через SQL Server Management Studio (SSMS)


И выполните:

EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'xp_cmdshell',1
GO
RECONFIGURE
GO

📌 Что это делает:

  • Включает расширенные настройки сервера
  • Разрешает использование xp_cmdshell, что позволяет SQL Server выполнять команды ОС (в том числе монтировать сетевые диски)

⚠️ Безопасность

  • xp_cmdshell — потенциально опасная функция.
  • Используйте только при необходимости. Желательно ограничить доступ к её выполнению.
  • отключать после настройки (если не требуется постоянно).

Монтирование сетевого диска

В SSMS выполните:

EXEC xp_cmdshell 'net use Z: \\192.168.1.83\_backups /user:nasuser naspassword'

Пояснения:

  • Z: — буква диска (можно выбрать любую свободную)
  • \\192.168.1.83\_backups — путь к сетевой папке
  • nasuser — пользователь NAS
  • для домена: domain\username
  • naspassword — пароль

Проверка подключения

Можно проверить, что диск смонтирован:

EXEC xp_cmdshell 'net use'

Использование в бэкапах

После монтирования диск будет доступен:

  • В GUI SQL Server (при выборе пути для бэкапа)
  • В T-SQL:
BACKUP DATABASE [ИмяБД]
TO DISK = 'Z:\backup.bak'

Размонтирование диска (при необходимости)

Данная команда может понадобится при сетевом сбое во время загрузки бэкапов.

При выполнении задачи может появится ошибка в ms sql "данный сетевой путь недоступен" данная команда как раз решит нашу проблему с зависшим бэкапом

EXEC xp_cmdshell 'net use Z: /delete'