Witam. Uruchomiłem jakiś czas temu backup baz danych z kontenera MSSQL -> skryptem znalezionym tu na forum. Crontab uruchamia skrypt jak najbardziej poprawnie, tworzą się pliki wszystkich baz danych z kontenera - we wskazanych miejscach. Na początku tworzyły się pliki ze znacznikiem czasowym, żeby je rozróżnić - czyli wszystko gra. Ze skryptu wywaliłem parametr dotyczący tworzenia plików ze znacznikiem czasowym, sądząc że tworzone pliki będą nadpisywały te poprzednie. Potrzebuję tylko jedną wersję pliku danego dnia o danej godzinie - ponieważ katalog z utworzonymi backupami leci poprzez Xopero do chmury. No i niestety się pomyliłem. Raz utworzony plik rozrasta się tylko rozmiarem, każdy kolejny tworzony nie zastępuje poprzedniego.... W jaki sposób można zmodyfikować ten skrypt aby kasował wszystkie poprzednie pliki z tego katalogu i tworzył tylko kopię wszystkich dostępnych baz danych. Code (Text): DECLARE @name VARCHAR(50) -- database name DECLARE @path VARCHAR(256) -- path for backup files DECLARE @fileName VARCHAR(256) -- filename for backup -- specify database backup directory SET @path = '/MSSQL/Backup/Cloud/' DECLARE db_cursor CURSOR READ_ONLY FOR SELECT name FROM master.sys.databases WHERE name NOT IN ('master','model','msdb','tempdb') -- exclude these databases AND state = 0 -- database is online AND is_in_standby = 0 -- database is not read only for log shipping OPEN db_cursor FETCH NEXT FROM db_cursor INTO @name WHILE @@FETCH_STATUS = 0 BEGIN SET @fileName = @path + @name + '.BAK' BACKUP DATABASE @name TO DISK = @fileName FETCH NEXT FROM db_cursor INTO @name END CLOSE db_cursor DEALLOCATE db_cursor Model serwera: QNAP TS-453D
nowe archiwum zostanie dodane do instniejącego pliku (by design) Code (Text): BACKUP DATABASE @name TO DISK = @fileName dodaj na końcu Code (Text): with init
W tej części - czy totalnie na końcu ?? Code (Text): WHILE @@FETCH_STATUS = 0 BEGIN SET @fileName = @path + @name + '.BAK' BACKUP DATABASE @name TO DISK = @fileName FETCH NEXT FROM db_cursor INTO @name with init END
Dzięki, od razu leci test. --- Połączono posty, Apr 5, 2021, Data oryginalnego postu: Apr 5, 2021 --- Code (Text): Msg 319, Level 15, State 1, Server xxxxxxxxx, Line 20 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 terminated with a semicolon. --- Połączono posty, Apr 5, 2021 --- Za 2 razem poszło już bez błędów. Dziękuję. !!!!!