none
Jak udělat automatickou zálohu db na MS SQL 2008

    Dotaz

  • Dobrý den,

    potřebuji udělat zálohu "databaze001" ale předtím bych potřeboval nějakým skriptem dočasně pozastavit MS SQL server, aby se dala kompletní záloha udělat.

    Jak mám postupovat?

    Zálohu bych potřeboval udělat v noci tak by se ta záloha udělala celá, třeba na externí disk.

    A druhý dotaz kde zjistím jak ta "databaze001" jakou ma velikost (abych měl dostatečně velký hdd) ?

    díky Dan

    19. září 2011 22:24

Odpovědi

  • Dobrý den,

    server není třeba zastavovat. V management studiu si rozbalte management a tam máte k dispozici tzv. maintenance plans. V nich můžete naplánovat zálohu jakékoli databáze. Pro správný běh těchto automatizovaných věcí Vám musí běžet SQL Server Agent.

    Mj. velikost databáze zjistíte tak, že na ni kliknete pravým tlačítkem v management studiu a na první záložce bude vidět její velikost. Pokud nebudete používat žádné komprese, tak záloha bude stejně velká jako samotná databáze.

     


    Marek Chmel, WBI Systems (MCTS, MCITP, MCT, CCNA)
    25. září 2011 7:19
  • A proc zasatvovat server? Zalohuje se za behu.

    Nize uvedene prikazy jsou vysekane z VBS skritpu. Je treba definovat objekt MyShell:

    set MyShell = WScript.CreateObject("WScript.Shell")

    Prikaz pro plnou zalohu:

    MyShell.Run "sqlcmd -S .\SQLEXPRESS -Q " & """BACKUP DATABASE databaze001 TO DISK = 'd:\sqlbackup\data.bak' WITH INIT""",0,1

    Prikaz pro prvni inkrementalni:

    MyShell.Run "sqlcmd -S .\SQLEXPRESS -Q " & """BACKUP LOG databaze001 TO DISK = 'd:\sqlbackup\log.bak' WITH INIT""",0,1

    Prikaz pro dalsi inkrementalni:

    MyShell.Run "sqlcmd -S .\SQLEXPRESS -Q " & """BACKUP LOG databaze001 TO DISK = 'd:\sqlbackup\log.bak'""",0,1


    BB
    20. září 2011 9:19

Všechny reakce

  • A proc zasatvovat server? Zalohuje se za behu.

    Nize uvedene prikazy jsou vysekane z VBS skritpu. Je treba definovat objekt MyShell:

    set MyShell = WScript.CreateObject("WScript.Shell")

    Prikaz pro plnou zalohu:

    MyShell.Run "sqlcmd -S .\SQLEXPRESS -Q " & """BACKUP DATABASE databaze001 TO DISK = 'd:\sqlbackup\data.bak' WITH INIT""",0,1

    Prikaz pro prvni inkrementalni:

    MyShell.Run "sqlcmd -S .\SQLEXPRESS -Q " & """BACKUP LOG databaze001 TO DISK = 'd:\sqlbackup\log.bak' WITH INIT""",0,1

    Prikaz pro dalsi inkrementalni:

    MyShell.Run "sqlcmd -S .\SQLEXPRESS -Q " & """BACKUP LOG databaze001 TO DISK = 'd:\sqlbackup\log.bak'""",0,1


    BB
    20. září 2011 9:19
  • Dobrý den,

    server není třeba zastavovat. V management studiu si rozbalte management a tam máte k dispozici tzv. maintenance plans. V nich můžete naplánovat zálohu jakékoli databáze. Pro správný běh těchto automatizovaných věcí Vám musí běžet SQL Server Agent.

    Mj. velikost databáze zjistíte tak, že na ni kliknete pravým tlačítkem v management studiu a na první záložce bude vidět její velikost. Pokud nebudete používat žádné komprese, tak záloha bude stejně velká jako samotná databáze.

     


    Marek Chmel, WBI Systems (MCTS, MCITP, MCT, CCNA)
    25. září 2011 7:19