Úvodná » ako » Zálohovanie a obnovenie databázy SQL Server z príkazového riadku

    Zálohovanie a obnovenie databázy SQL Server z príkazového riadku

    Najdôležitejšou súčasťou plánu údržby SQL Server je zálohovanie vašich databáz pravidelne. Ak chcete zálohovať databázu, nemôžete jednoducho skopírovať príslušné súbory MDF a LDF databázy, na ktorých má SQL Server zámok. Namiesto toho musíte vytvoriť skutočný záložný súbor cez SQL Server.

    Aj keď to môže byť vykonané vyvíjaním plánu údržby vo vnútri SQL Management Studio, voľné Express vydania SQL Serveru neposkytujú toto rozhranie. Ak chcete toto vyriešiť, môžete ľahko zálohovať databázy spustením príkazu nižšie pri prihlásení ako správca systému Windows:

    SqlCmd -E -S Server_Name -Q "BACKUP DATABASE [Názov_obrázky] TO DISK =" X: PathToBackupLocation [Názov_obrázky] .bak ""

    Nižšie uvedené príklady vám pomôžu.

    Predvolená inštancia SQL Server:

    SqlCmd -E -S MyServer -Q "ZÁKLADNÁ DATABÁZA [MyDB] DO DISK =" D: BackupsMyDB.bak ""

    Pomenovaná inštancia SQL Server:

    SqlCmd -E -S MyServerMyInstance -Q "BACKUP DATABASE [MyDB] DO DISK =" D: BackupsMyDB.bak ""

    Vyššie uvedené vytvoriť úplne obnoviť záložnú kópiu "MyDB" do súboru "D: BackupsMyDB.bak", ktoré možno použiť na obnovu po havárii. Samozrejme, môžete zmeniť umiestnenie zálohy a súbor na ľubovoľné, čo potrebujete, ale uistite sa, že zadáte umiestnenie priečinka, ktorý existuje na lokálnom počítači. Tento záložný súbor je potom možné skopírovať na páskovú jednotku alebo iné externé miesto zálohovania.

    Najčastejšou otázkou je "Môže byť vytvorený záložný súbor na mapovanú jednotku alebo miesto UNC?" A rýchla odpoveď nie je. Dôvodom je, že služba SQL Server Windows Service sa spúšťa ako používateľský účet, ktorý má prístup iba k miestnemu počítaču. Môžete zmeniť účet, na ktorom služba beží, ale je to z bezpečnostných dôvodov veľmi odradené.

    Obnovenie zálohovania databázy z príkazového riadku

    Ak chcete obnoviť databázu zo záložného súboru, jednoducho použite príkaz:

    SqlCmd -E -S Názov_servera -Q "OBNOVAŤ DATABÁZU [Názov_obrázky] FROM DISK =" X: PathToBackupFile [Názov_souboru] .bak ""

    Napríklad:

    SqlCmd -E -S MyServer -Q "OBNOVENÁ DATABÁZA [MyDB] Z DISK =" D: BackupsMyDB.bak ""

    Vyššie uvedený príkaz obnoví zálohu "MyDB" z údajov uložených v záložnom súbore "D: BackupsMyDB.bak". Všetky zmeny vykonané v MyDB od vytvorenia záložného súboru sa stratia.

    Dôležitá vec, ktorú si musíte pamätať pri používaní vyššie uvedeného príkazu je, že je určený na použitie na rovnakom serveri SQL, na ktorom bol vytvorený príslušný záložný súbor. Súbory zálohovania SQL ukladajú informácie "za scénami", ktoré kontrolujú, kde a ako sú kopírované dátové súbory v záložnom súbore. Ak obnovujete zálohu z iného servera SQL Server, umiestnenia cien v záložnom súbore sa nemusí zhodovať so serverom, na ktorý sa obnovujete, a dôjde k chybe. Zatiaľ čo to môže byť spracované okolo, je oveľa jednoduchšie obnoviť zálohy vytvorené na inom serveri SQL pomocou nástroja SQL Management Studio.

    Poznámka: vyššie uvedené príkazy budú fungovať na SQL 2005 a novších verziách (akékoľvek vydanie). Pre SQL 2000 a staršie, nahradiť 'SqlCmd' s 'oSql'.