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

    pondělí 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)
    neděle 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
    úterý 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
    úterý 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)
    neděle 25. září 2011 7:19