Aktywne Wpisy
Jaque +23
wgl dzisiaj byłem w Dino pierwszy i ostatni raz. Jak baba na mięsnym ogarnela, że nie ogarniam wagi, to najpierw powiedziała że ja ukr a potem że w szkole w podstawówce to było. #!$%@? z mięsnego będzie mnie uczyć.
Puszczanin +244
Kopie będą na dysku D:\backupSQL Chciałbym aby codziennie tworzył się plik z datą i godziną. Próbowałem już kilku gotowców, ale nic z tego.
Serwer .\SQLExpress
Muszę jeszcze włączyć jakąś opcję w SQL Management aby backup się robił?
#sql #sqlserver #informatyka #serwery
Masz problem ze skryptem, czy z harmonogramem? Skrypt może wyglądać np. tak:
DECLARE @dbname VARCHAR(50)
DECLARE @BackupFolder varchar(255)
DECLARE @d VARCHAR(20)
DECLARE @ExpireDate datetime
set @BackupFolder = 'C:\DATA2\Backup\'
set @dbname = 'DEMO'
-- data
SELECT @d = CONVERT(VARCHAR(20),GETDATE(),112)
-- ścieżka do backupu
set @BackupPath = @BackupFolder + @dbname + '.BAK'
-- czas expiracji
SET @ExpireDate = DATEADD(hh, 1, GETDATE())
-- backup
BACKUP DATABASE @dbname TO DISK = @BackupPath WITH EXPIREDATE
To co podałem to plik sql. Express chyba nie ma agenta, który pozwala na wywołanie kodu sql zgodnie z harmonogramem.
Musisz więc utworzyć plik bat, gdzie ten skrypt podasz jako parametr i takie wywołanie dodać do harmonogramu zadań w windows.
https://stackoverflow.com/questions/21554062/executing-set-of-sql-queries-using-batch-file
Must declare the scalar variable "@BackupPath".
Msg 137, Level 15, State 2, Server Marcin-KOMP\SQLEXPRESS, Line 17
Must declare the scalar variable "@BackupPath".
Msg 319, Level 15, State 1, Server Marcin-KOMP\SQLEXPRESS, Line 17
Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be
Komentarz usunięty przez autora
Must declare the scalar variable "@BackupFolder".
Msg 137, Level 15, State 2, Server Marcin-KOMP\SQLEXPRESS, Line 12
Must declare the scalar variable "@BackupFolder".
Strasznie to oporne
DECLARE @BackupFolder varchar(255)
DECLARE @BackupPath varchar(255)
DECLARE @d VARCHAR(20)
DECLARE @ExpireDate datetime
tak te deklaracje powinny wygladać
Yep, wycinałem z bardziej rozbudowanego skryptu i pominąłem. Ale komunikat jest jasny a kod prosty do poprawienia.
Możesz zamienić ten kod sql na procedurę i zamiast mieć przypisaną na stałe wartość w zmiennej @dbname to przesunąć ją do parametru procedury. No trzeba zmienić fragment składający ścieżkę @BackupPath, żeby ten folder tam się zawierał.