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

Obsah:

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

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

Video: Zálohovanie a obnovenie databázy SQL Server z príkazového riadku
Video: Why I Quit YouTube - YouTube 2024, Apríl
Anonim

Najdôležitejšou súčasťou plánu údržby SQL Server je pravidelné zálohovanie databáz. 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 neponúkajú 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 [Name_of_Database] TO DISK=’X:PathToBackupLocation[Name_of_Database].bak'”

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

Predvolená inštancia SQL Server:

SqlCmd -E -S MyServer –Q “BACKUP DATABASE [MyDB] TO DISK=’D:BackupsMyDB.bak'”

Pomenovaná inštancia SQL Server:

SqlCmd -E -S MyServerMyInstance –Q “BACKUP DATABASE [MyDB] TO 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.

Bežná otázka 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 to, že služba SQL Server Windows Service sa spúšťa ako používateľský účet, ktorý má prístup iba k lokálnemu počítaču. Môžete zmeniť účet, na ktorom služba beží, ale je to z bezpečnostných dôvodov veľmi odrádzané.

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 Server_Name –Q “RESTORE DATABASE [Name_of_Database] FROM DISK=’X:PathToBackupFile[File_Name].bak'”

Napríklad:

SqlCmd -E -S MyServer –Q “RESTORE DATABASE [MyDB] FROM 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 budú stratené.

Dôležité je mať na pamäti pri použití vyššie uvedeného príkazu, ž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é riadia, kde a ako sa kopírujú 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 nemusia zhodovať so serverom, na ktorý sa obnovujete, a dôjde k chybe. Zatiaľ čo to môže byť spracované, je oveľa jednoduchšie obnoviť zálohovanie vytvorené na inom serveri SQL pomocou nástroja SQL Management Studio.

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

Odporúča: