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

Откуда:
Сообщений: 1
Взял на этом форуме скрипт для архивирования всех баз, скрипт замечательно работает.
Но появилась задача одну из баз не архивировать, подскажите пожалуйста, как дополнить скрипт, чтобы архивировались все базы, но определенная пропускалась?
Ниже скрипт:

declare @dirPath varchar(260)
declare @dirPathDatabase varchar(260)
declare @fileName varchar(260)
declare @destFilePath varchar(260)
declare @timeStamp varchar(30)
declare @CMD2000 varchar(260)

select @dirPath = 'e:\Bak' 

IF SUBSTRING(@@version,23,4)='2000'
 DECLARE databases_cursor CURSOR 
 FOR SELECT name FROM master.dbo.sysdatabases
 WHERE (status & 32 <> 32) 
 AND (status & 64 <> 64) 
 AND (status & 128 <> 128) 
 AND (status & 256 <> 256) 
 AND (status & 512 <> 512)
 and name != 'tempdb'
ELSE
 DECLARE databases_cursor CURSOR 
 FOR SELECT name from master.sys.databases
 WHERE state=0 and name != 'tempdb'



select @timeStamp = convert(char(8),getdate(),112) + '_' + replace(convert(char(8),getdate(),8),':','_')

OPEN databases_cursor
DECLARE @DatabaseName sysname
FETCH NEXT FROM databases_cursor INTO @DatabaseName 
WHILE (@@FETCH_STATUS <> -1)
BEGIN
 select @fileName = @DatabaseName + '_Backup_' + @timeStamp
 select @destFilePath = @dirPath + '\' + @DatabaseName + '\' + @filename + '.bak' 
 select @dirPathDatabase = @dirPath + '\'+ @DatabaseName

 IF SUBSTRING(@@version,23,4)='2000'
 BEGIN
 select @CMD2000 = 'mkdir ' + @dirPathDatabase
 exec master.dbo.xp_cmdshell @CMD2000
 END
 ELSE
 EXECUTE master.dbo.xp_create_subdir @dirPathDatabase 
 BACKUP DATABASE @DatabaseName TO DISK = @destFilePath WITH NOFORMAT, NOINIT,NAME = @fileName, SKIP, REWIND, NOUNLOAD, STATS = 10
 FETCH NEXT FROM databases_cursor INTO @DatabaseName 
END
CLOSE databases_cursor
DEALLOCATE databases_cursor


Сообщение было отредактировано: 4 янв 15, 23:26
4 янв 15, 22:41    [17085621]     Ответить | Цитировать Сообщить модератору
 Re: Изменить скрипт архивирования всех баз  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32174
Trophy
Но появилась задача одну из баз не архивировать, подскажите пожалуйста, как дополнить скрипт, чтобы архивировались все базы, но определенная пропускалась?
Видите условие "and name != 'tempdb'"?
Вот это оно и есть.

Вы бы лучше разбирали найденные скрипты, а не запускали их, не глядя, безопаснее будет.
4 янв 15, 22:49    [17085629]     Ответить | Цитировать Сообщить модератору
 Re: Изменить скрипт архивирования всех баз  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Есть такая штука -- Maintenance Plan называется. Делает примерно то же самое.
4 янв 15, 23:27    [17085687]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить