# Бэкап MSSQL на NAS

Недавно столкнулся с задачей — настроить резервное копирование MSSQL базы на сетевую шару по SMB. Сервер SQL работает под доменной учётной записью, а SMB‑шара доступна по локальному логину/паролю NAS. Создание локальной учётной записи не подошло (сервер — контроллер домена), поэтому решение — перед бэкапом монтировать шару как диск, после — демонтировать.

{% stepper %}
{% step %}

### 1) Включаем возможность запускать команды из SQL — xp\_cmdshell

Вначале разрешим SQL серверу запускать внешние команды через процедуру *xp\_cmdshell*. Выполните в SQL:

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

В GUI: щелкните правой кнопкой по экземпляру SQL, затем выберите «Акцепты»,&#x20;

<figure><img src="https://3216958497-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMVEZPJ5d41hvQaO13ts%2Fuploads%2FZfqDIfqdwAwPO4EL5seJ%2F%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA1.png?alt=media&#x26;token=fe504b73-106d-43d7-a3b4-edea7b0f4b7b" alt=""><figcaption></figcaption></figure>

откроется экран — выберите «Конфигурация сервера».

<figure><img src="https://3216958497-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMVEZPJ5d41hvQaO13ts%2Fuploads%2F0u22raS3F5KCCoSUduSZ%2F%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA2.png?alt=media&#x26;token=ca52b331-2e17-4a9e-a593-954d6e9f6aec" alt=""><figcaption></figcaption></figure>

Свойство «XPCmdShellEnable» переключите в True и нажмите ОК.
{% endstep %}

{% step %}

### 2) Монтируем сетевую шару как диск (до бэкапа)

Перед началом бэкапа выполняем команду (в контексте SQL — через xp\_cmdshell):

```sql
EXEC xp_cmdshell 'net use X: \\nasserver\share /user:nasuser naspassword'
```

Параметры:

* X: — буква монтируемого диска
* \nasserver\share — путь к SMB-шаре (не трогать)
* nasuser — имя пользователя (для домена: domain\username)
* naspassword — пароль

После успешного выполнения шарa будет доступна как X:.
{% endstep %}

{% step %}

### 3) Делаем бэкап на смонтированный диск

Выполняйте обычную команду бэкапа, указав путь на X:\\&#x20;
{% endstep %}

{% step %}

### 4) После бэкапа — демонтируем диск

Когда бэкап завершён, отсоедините сетевой диск:

```sql
EXEC xp_cmdshell 'net use X: /delete'
```

В GUI это будет выглядеть приблизительно так:

<figure><img src="https://3216958497-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMVEZPJ5d41hvQaO13ts%2Fuploads%2FC0xGMMBm9deQ8lJt5nSF%2F%D0%A0%D0%B8%D1%81%D1%83%D0%BD%D0%BE%D0%BA3.png?alt=media&#x26;token=ef567cdd-f8c7-4cb5-85ad-749fdfb6e2c9" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Способ сработал: бэкап на NAS по SMB с паролем успешно выполняется.
{% endhint %}

Источник: <https://internet-lab.ru/mssql_backup_nas>
