TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
Skrypt do backupu bazy w SQL Express , DmK 14/07/09 11:28 Z uwagi na brak agenta w SQL Express 2008 wygrzebałem z netu skrypt który taki bakup umożliwia. Jednak czy ktoś jest w stanie tak go zaktualizować, aby brał pod uwagę konkretną bazę? Dzięki za pomoc. Skrypt poniżej (o ile się wklei) :
Author
Brian Knight
**/
SET QUOTED_IDENTIFIER OFF
USE master
GO
SET NOCOUNT ON
DECLARE @dayofweek varchar(20)
SELECT
@dayofweek = CASE datepart(dw, getdate())
WHEN 1 THEN 'Sunday'
WHEN 2 THEN 'Monday'
WHEN 3 THEN 'Tuesday'
WHEN 4 THEN 'Wednesday'
WHEN 5 THEN 'Thursday'
WHEN 6 THEN 'Friday'
WHEN 7 THEN 'Saturday'
END
DECLARE @OutputPath varchar(500)
DECLARE @DatabaseBackupFile varchar(500)
DECLARE @FolderName varchar(25)
DECLARE @DatabaseName varchar(25)
DECLARE @strSQL varchar(2000)
DECLARE @hostname varchar(255)
SET @hostname = (select replace(convert(varchar(255),serverproperty('SERVERNAME')), '\','_'))
/**
MODIFY THIS PATH TO YOUR NEEDS:
**/
SET @OutputPath = 'D:\backupftp\sets\sqlexpress'
DECLARE cur_Backup CURSOR FOR
select name from sysdatabases where name !='tempdb'
OPEN cur_Backup
-- Fetch the db names from Cursor
FETCH NEXT FROM cur_Backup INTO @DatabaseName
WHILE @@FETCH_STATUS = 0
BEGIN
SET @DatabaseBackupFile = @OutputPath + '\' + @hostname + '-' + @DatabaseName + '-' + @dayofweek + '.bak'
print @DatabaseBackupFile
SET @strSQL = 'BACKUP DATABASE '+@DatabaseName+' TO DISK = "'+ @DatabaseBackupFile+ '" WITH RETAINDAYS = 7, NOFORMAT, INIT, NAME = N''Full Database Backup'', SKIP, NOREWIND, NOUNLOAD, STATS = 10'
PRINT @strSQL
EXEC (@strSQL)
FETCH NEXT FROM cur_Backup INTO @DatabaseName
END
-- Distroy Cursor
CLOSE cur_Backup
DEALLOCATE cur_Backup
SET NOCOUNT OFF- ten skrypt , gorii 14/07/09 11:32
robi backup wszystkich utworzonych baz oprócz tempdb, jeśli chcesz tylko jedną konkretną to najszybciej zmienić warunek
<name !='tempdb'> na <name = 'mojabaza'>
szkoda że nie dali schedulera do SQL Express, też się z tym borykam, ale darowanemu koniowi...- sprawdzę, dzięki , DmK 14/07/09 11:38
szybkie pytanie, czy to zadziała również w tej wersji:
<name = 'mojabaza','mojabaza1','mojabaza2'>
?- o tak: , gorii 14/07/09 11:42
name in ( 'baza1', 'baza2', 'baza3' )- dzięki , DmK 14/07/09 11:51
chyba przyda mi się powtórka z SQL..... jeszcze raz dzięki za pomoc, a skrypt może się komuś również przydać.
- po co CI tak rozbudowany ja mam u siebie na 2005 takie cos: , smagar 14/07/09 12:57
zapisz jako C:\scripts\backup.sql
declare @a datetime, @TMP varchar(300)
set @a = getdate()
--print replace(convert(char(10), @a, 102),'.','')
set @TMP = ('backup database simple_master to disk = ''d:\backup\simple\simple_master_'+replace(convert(char(10), @a, 102),'.','')+'.bak''')
execute (@TMP)
set @TMP = ('backup database bd_simple to disk = ''d:\backup\simple\bd_simple_'+replace(convert(char(10), @a, 102),'.','')+'.bak''')
execute (@TMP)
zmień tylko simple_master i bd_simple na swoje i zrob plik backup.bat z zawartoscia:
D:
cd D:\backup\simple
del *.* /q
sqlcmd -S (local)\SIMPLE -U sa -P XXXXX-i C:\scripts\backup.sql
sa user super admin
XXXXX hasło
w harmonogramie windowsa ustaw wywoływanie pliku bat- acha, , smagar 14/07/09 12:59
ja jescze arcserve zbieram pliki codzienie na macierz wiec kasuje w pliku bat ty mozesz nie kasowac a z harmonogramu innym skryptem je raz na tydzien przenosic sobie albo pakowac. - dzięki , DmK 14/07/09 15:03
ogólnie to co powyżej to wyszukałem na szybko w necie, chętnie skorzystam z czegoś mniej rozbudowanego. Powyższe sprawdze dopiero jutro, ale dzięki jeszcze raz. Pozdrawiam- jak masz jedną bazę to kilka linijek i smiga ładnie , smagar 14/07/09 16:22
declare @a datetime, @TMP varchar(300)
set @a = getdate()
--print replace(convert(char(10), @a, 102),'.','')
set @TMP = ('backup database simple_master to disk = ''d:\backup\simple\simple_master_'+replace(convert(char(10), @a, 102),'.','')+'.bak''')
execute (@TMP)- mam 3 bazy , DmK 14/07/09 18:35
ale pewnie to nie będzie problem, żeby to powyżej dopasować. Posklejam, powycinam i będzie działać ;) Najważniejsze, że ruszyło z kopyta bo dość mam ręcznego backaupu. Z drugiej strony szukanie w google szło mi gorzej niż słabo, bo zanim skrypt znalazłem minęło trochę czasu.
|
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|