Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Backup всех баз на сервере по расписанию  [new]
lex452
Member

Откуда:
Сообщений: 590
Подскажите как организовать Backup всех баз на сервере по расписанию?
Способ с созданием job с шагами для каждой базы, не очень подходит, так как баз реально много.
Подскажите может есть какое-то средство для автоматизации этого?
11 сен 14, 13:11    [16563533]     Ответить | Цитировать Сообщить модератору
 Re: Backup всех баз на сервере по расписанию  [new]
Glory
Member

Откуда:
Сообщений: 104751
lex452
Подскажите может есть какое-то средство для автоматизации этого?

Maintenance Plan

lex452
Способ с созданием job с шагами для каждой базы, не очень подходит, так как баз реально много

Можно написать цикл по списку баз с формированием команды backup
11 сен 14, 13:13    [16563542]     Ответить | Цитировать Сообщить модератору
 Re: Backup всех баз на сервере по расписанию  [new]
982183
Member

Откуда: VL
Сообщений: 3386
А если втупую заархивировать файлы БД.
11 сен 14, 14:43    [16564115]     Ответить | Цитировать Сообщить модератору
 Re: Backup всех баз на сервере по расписанию  [new]
982183
Member

Откуда: VL
Сообщений: 3386
Много это сколько?
100? 1000?
Общий объем какой?
11 сен 14, 15:20    [16564322]     Ответить | Цитировать Сообщить модератору
 Re: Backup всех баз на сервере по расписанию  [new]
Maxx_UA
Guest
982183
А если втупую заархивировать файлы БД.
а если начать читать документацию ?
11 сен 14, 15:21    [16564330]     Ответить | Цитировать Сообщить модератору
 Re: Backup всех баз на сервере по расписанию  [new]
o-o
Guest
Maxx_UA
982183
А если втупую заархивировать файлы БД.
а если начать читать документацию ?

ну или если читать влом, да руки чешутся, почему бы не попробовать, да?
982183, угадайте с 3х раз, что это за another process держит файлы

К сообщению приложен файл. Размер - 15Kb
11 сен 14, 15:54    [16564623]     Ответить | Цитировать Сообщить модератору
 Re: Backup всех баз на сервере по расписанию  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
lex452,

https://ola.hallengren.com/sql-server-backup.html
11 сен 14, 21:59    [16566055]     Ответить | Цитировать Сообщить модератору
 Re: Backup всех баз на сервере по расписанию  [new]
Alex_496
Member [заблокирован]

Откуда: https://www.dvbi.ru
Сообщений: 3869
lex452,

DECLARE @all_Db_backUp BIT
DECLARE @DBname VARCHAR(50)
DECLARE @path_for_backups VARCHAR(500)
DECLARE @backup_fileName VARCHAR(500) 
DECLARE @fileDate VARCHAR(20)             

-- удаление предыдущих бэкапов
-- если xp_cmdshell не включен изначально, надо включить заранее
-- EXEC xp_cmdshell 'DEL E:\SQL_BackUp\*.* /q'

SET @path_for_backups = 'E:\SQL_BackUp\'  
SET @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)+'__'+REPLACE(LEFT(CONVERT(VARCHAR(20),GETDATE(),114),5) , ':', '_')


IF @all_Db_backUp=1 -- если нужно бэкап всех рабочих баз
  BEGIN
    DECLARE db_cursor CURSOR FOR  
      SELECT name 
        FROM master.dbo.sysdatabases 
          WHERE name NOT IN ('master','model','msdb','tempdb')    -- все БД, кроме системных, и которые в данный момент онлайн
                AND DATABASEPROPERTYEX(name, 'status') = 'ONLINE'

    OPEN db_cursor   
    FETCH NEXT FROM db_cursor INTO @DBname   
    WHILE @@FETCH_STATUS = 0   
      BEGIN   
        SET @backup_fileName = @path_for_backups + @DBname + '_' + @fileDate + '.bak'  
        BACKUP DATABASE @DBname TO DISK = @backup_fileName  WITH COMPRESSION
        FETCH NEXT FROM db_cursor INTO @DBname   
      END   
    CLOSE db_cursor   
    DEALLOCATE db_cursor
  END

ELSE
  BEGIN
    SET @DBname = 'DataManagement'
    SET @backup_fileName = @path_for_backups + @DBname + '_' + @fileDate + '.bak'    
    BACKUP DATABASE @DBname TO DISK = @backup_fileName  WITH COMPRESSION
  END

-- копирование в папку по сетевому пути
-- EXEC xp_cmdshell 'xcopy E:\SQL_BackUp\  /-y    Z:\SQL_BackUps\'
11 сен 14, 22:16    [16566094]     Ответить | Цитировать Сообщить модератору
 Re: Backup всех баз на сервере по расписанию  [new]
982183
Member

Откуда: VL
Сообщений: 3386
o-o
ну или если читать влом, да руки чешутся, почему бы не попробовать, да?
982183, угадайте с 3х раз, что это за another process держит файлы

xcopy пробовали?
Хотя бесспорно - извращение.
13 сен 14, 12:37    [16571656]     Ответить | Цитировать Сообщить модератору
 Re: Backup всех баз на сервере по расписанию  [new]
o-o
Guest
982183,
SQL Server is not like a word processing application. It manages its own files internally in order to guarantee the ACID (Atomic, Consistent, Isolated, Durable) properties of its databases. In a nutshell, to ensure that a transaction completes successfully, SQL Server maintains very tight access control over its files and it modifies theses files as it sees fit.

If you simply copy the data file, ignoring the locks and ignoring the transactions that may be currently in progress, it means that when you attempt to attach that database later you will have a database file that is in an inconsistent state. It will generate errors.

Only if you are in a situation where the database is completely unchanging, ever, could you reliably copy the file and attach it later. However, if there is even a remote possibility of a transaction being open on the system when you copy the file, you're extremely likely to have an unsuccessful backup. The only safe way to ensure no transactions are running when you run your Windows backup tool would be to take the database offline first.
13 сен 14, 21:35    [16572729]     Ответить | Цитировать Сообщить модератору
 Re: Backup всех баз на сервере по расписанию  [new]
982183
Member

Откуда: VL
Сообщений: 3386
Естественно ночью, когда никого нет.
Если есть такая возможность.
14 сен 14, 17:16    [16573745]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить