Rozwiązany Backup baz danych z dockera MSSQL

Discussion in 'Archiwizacja i przywracanie' started by CrazyMario, Apr 5, 2021.

Loading...
Tags:
  1. CrazyMario
    Offline

    CrazyMario Entry Technician Q Associate

    Joined:
    Jul 5, 2018
    Messages:
    45
    Local Time:
    2:44 AM
    Ratings:
    +2 / 0 / -0
    Followers:
    1
    QNAP:
    TS-x53D
    Ethernet:
    1 GbE
    TS-x53D 1 GbE
    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):
    1.  
    2. DECLARE @name VARCHAR(50) -- database name  
    3. DECLARE @path VARCHAR(256) -- path for backup files  
    4. DECLARE @fileName VARCHAR(256) -- filename for backup  
    5.  
    6. -- specify database backup directory
    7. SET @path = '/MSSQL/Backup/Cloud/'  
    8.  
    9. DECLARE db_cursor CURSOR READ_ONLY FOR  
    10. SELECT name
    11. FROM master.sys.databases
    12. WHERE name NOT IN ('master','model','msdb','tempdb')  -- exclude these databases
    13. AND state = 0 -- database is online
    14. AND is_in_standby = 0 -- database is not read only for log shipping
    15.  
    16. OPEN db_cursor  
    17. FETCH NEXT FROM db_cursor INTO @name  
    18.  
    19. WHILE @@FETCH_STATUS = 0  
    20. BEGIN  
    21.    SET @fileName = @path + @name + '.BAK'  
    22.    BACKUP DATABASE @name TO DISK = @fileName  
    23.  
    24.    FETCH NEXT FROM db_cursor INTO @name  
    25. END  
    26.  
    27.  
    28. CLOSE db_cursor  
    29. DEALLOCATE db_cursor
    30.  
    Model serwera: QNAP TS-453D
     
  2. pigers
    Offline

    pigers Do NOT CARE - always ask Silas ! Administrator

    Joined:
    Jul 26, 2013
    Messages:
    11,420
    Local Time:
    2:44 AM
    Ratings:
    +1,774 / 40 / -20
    Followers:
    8
    QNAP:
    TS-653D
    Ethernet:
    1 GbE
    TS-653D 1 GbE
    nowe archiwum zostanie dodane do instniejącego pliku (by design)

    Code (Text):
    1. BACKUP DATABASE @name TO DISK = @fileName
    dodaj na końcu
    Code (Text):
    1. with init
     
  3. CrazyMario
    Offline

    CrazyMario Entry Technician Q Associate

    Joined:
    Jul 5, 2018
    Messages:
    45
    Local Time:
    2:44 AM
    Ratings:
    +2 / 0 / -0
    Followers:
    1
    QNAP:
    TS-x53D
    Ethernet:
    1 GbE
    TS-x53D 1 GbE
    W tej części - czy totalnie na końcu ??
    Code (Text):
    1.  
    2. WHILE @@FETCH_STATUS = 0  
    3. BEGIN  
    4.    SET @fileName = @path + @name + '.BAK'
    5.    BACKUP DATABASE @name TO DISK = @fileName
    6.    FETCH NEXT FROM db_cursor INTO @name
    7.    with init
    8. END  
    9.  
     
  4. pigers
    Offline

    pigers Do NOT CARE - always ask Silas ! Administrator

    Joined:
    Jul 26, 2013
    Messages:
    11,420
    Local Time:
    2:44 AM
    Ratings:
    +1,774 / 40 / -20
    Followers:
    8
    QNAP:
    TS-653D
    Ethernet:
    1 GbE
    TS-653D 1 GbE
    Code (Text):
    1. BACKUP DATABASE @name TO DISK = @fileName with init
     
  5. CrazyMario
    Offline

    CrazyMario Entry Technician Q Associate

    Joined:
    Jul 5, 2018
    Messages:
    45
    Local Time:
    2:44 AM
    Ratings:
    +2 / 0 / -0
    Followers:
    1
    QNAP:
    TS-x53D
    Ethernet:
    1 GbE
    TS-x53D 1 GbE
    Dzięki, od razu leci test.
    --- Połączono posty, Apr 5, 2021, Data oryginalnego postu: Apr 5, 2021 ---
    Code (Text):
    1.  
    2. Msg 319, Level 15, State 1, Server xxxxxxxxx, Line 20
    3. 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ę. !!!!!