База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как сделать резервные копии SQL Server и копировать их по сети?
- В этой теме 1 ответ, 2 участника, последнее обновление 2 часа, 52 минуты назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
21 января 2026 в 7:00 #35538
как средствами sql делать резервные копии и копировать по сети
-
21 января 2026 в 7:00 #35539
Андрей, привет!
Резервное копирование баз данных MS SQL Server делается с помощью команды T-SQL BACKUP DATABASE (для полной копии) и BACKUP LOG (для журнала транзакций). Вот базовый пример создания полной резервной копии базы данных:
BACKUP DATABASE [ИмяБазы] TO DISK = N'\СетевойПутьПапкаИмяФайла.bak' WITH FORMAT, INIT, NAME = N'Резервная копия базы ИмяБазы';
Обрати внимание, что путь к файлу резервной копии может быть сетевым (UNC-путь), например: `\serverbackupИмяБазы.bak`. Для этого SQL Server должен иметь права на запись в эту сетевую папку.
Если нужно делать резервное копирование по сети, то:
1. Создай на сервере, где хранится резервная копия, общую папку с правами на запись для учетной записи, под которой работает SQL Server (обычно это сервисный аккаунт).
2. В команде BACKUP DATABASE укажи UNC-путь к этой папке.
3. Убедись, что SQL Server имеет доступ к сетевому ресурсу (проверь права и сетевые настройки).
Пример команды для резервного копирования с сетевым путем:
BACKUP DATABASE [MyDatabase] TO DISK = N'\BackupServerSQLBackupsMyDatabase_20260121.bak' WITH FORMAT, INIT, NAME = N'Full backup of MyDatabase';
Если нужно автоматизировать копирование резервных копий по сети, можно использовать:
— Планировщик заданий SQL Server (SQL Server Agent) для запуска скриптов резервного копирования.
— В случае SQL Server Express, где нет SQL Server Agent, можно использовать планировщик Windows (Task Scheduler) с bat-скриптом, который запускает sqlcmd с командой резервного копирования.
— Для копирования файлов по сети можно использовать утилиту robocopy из Windows, которая позволяет делать инкрементальное копирование и синхронизацию папок.
Пример bat-файла для резервного копирования и копирования по сети:
sqlcmd -S localhost -Q "BACKUP DATABASE [MyDatabase] TO DISK = N'C:BackupsMyDatabase.bak' WITH INIT" robocopy C:Backups \BackupServerSQLBackups /MIR /R:3 /W:10 /LOG:C:Backupsbackup_log.txt
Здесь:
— `sqlcmd` выполняет резервное копирование локально.
— `robocopy` синхронизирует папку с резервными копиями на сетевой ресурс.
Если SQL Server работает под локальной системой (LocalSystem), то доступ к сетевым ресурсам может быть ограничен. В таком случае рекомендуется запускать службу SQL Server под доменной учетной записью с нужными правами.
Также можно настроить планы обслуживания (Maintenance Plans) в SQL Server Standard и выше, где есть встроенные средства для резервного копирования и копирования файлов.
Резюме:
— Используй T-SQL BACKUP DATABASE с указанием сетевого пути.
— Убедись, что SQL Server имеет права на запись в сетевую папку.
— Для автоматизации используй SQL Server Agent или планировщик Windows.
— Для копирования файлов по сети можно использовать robocopy.
https://infostart.ru/1c/articles/101210/ — типы резервного копирования в MS SQL
https://winitpro.ru/index.php/2020/02/26/backup-i-vosstanovlenie-baz-dannyx-mssql/ — подробное руководство по резервному копированию и восстановлению в MS SQL Server
https://winitpro.ru/index.php/2011/04/18/rezervnoe-kopirovanie-v-windows-server-2008-r2-pri-pomoshhi-robocopy/ — использование robocopy для копирования по сетиЕсли нужна помощь с конкретным скриптом или настройкой — пиши, могу помочь с кодом.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.