Создаем backup всех баз даных в MSSQL 2008/2012


Для того что бы сделать резервные копии всех баз даных в Вашем MSSQL сервере 2008/2012 года, можно воспользоавться SQL следующим запросом:

DECLARE @name VARCHAR(50) -- database name
DECLARE @path VARCHAR(256) -- path for backup files
DECLARE @fileName VARCHAR(256) -- filename for backup
DECLARE @fileDate VARCHAR(20) -- used for file name

SET @path = 'c:\db-backup\' 
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)

DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name NOT IN ('master','model','msdb','tempdb')

OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name

WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + '_' + @fileDate + '.BAK'
BACKUP DATABASE @name TO DISK = @fileName

FETCH NEXT FROM db_cursor INTO @name
END

CLOSE db_cursor
DEALLOCATE db_cursor

В результате выполнения запроса, резервная копия каждой базы будет лежать в отдельном файле в папке c:\db-backup\. Естественно, перед началом нужно эту папку создать, иначе выполнение запроса закончится ошибкой.

Share Button
(Visited 922 times, 1 visits today)

2 комментария на «“Создаем backup всех баз даных в MSSQL 2008/2012”»

  1. Добрый день.
    Спасибо за готовый запрос, базы выгрузились. У нас их достаточно много.
    Но теперь нам необходимо все эти базы загрузить на другой сервер.
    Не подскажите, есть ли готовый запрос на загрузку баз, причем выборка должна быть из папки куда выгружали?

    • Я на вскидку не вспомню. Раз я не добавл эту процедуру в эту заметку, значит восстановить все бэкапы можно из интерфейса где-то.
      Скрипта, к сожалению, найти не могу.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *