If-Koubou

Архивирайте и възстановете базата данни на SQL Server от командния ред

Архивирайте и възстановете базата данни на SQL Server от командния ред (Как да)

Най-важната част от плана за поддръжка на SQL Server поддържа редовно вашите бази данни. За да архивирате база данни, не можете просто да копирате съответните MDF и LDF файлове на базата данни, тъй като SQL Server има заключване върху тях. Вместо това трябва да създадете истински резервен файл чрез SQL Server.

Въпреки че това може да стане чрез разработването на план за поддръжка в рамките на SQL Management Studio, безплатните издания Express на SQL Server не предлагат този интерфейс. За да обработите това, можете лесно да архивирате базите си, като стартирате командата по-долу, докато сте влезли като администратор на Windows:

SqlCmd -E -S Server_Name -Q "ДАННИ ЗА ЗАЩИТА НА ДАННИ [Name_of_Database] ЗА ДИСК =" X: PathToBackupLocation [име_на_задаване] .bak ""

Примерите по-долу ще ви помогнат.

Стандартен пример за SQL Server:

SqlCmd -E -S MyServer -Q "BACKUP DATABASE [MyDB] ДО ДИСК =" D: BackupsMyDB.bak ""

Именуван пример за SQL Server:

SqlCmd -E -S MyServerMyInstance -Q "BACKUP DATABASE [MyDB] ДО ДИСК =" D: BackupsMyDB.bak ""

Горното създава напълно възстановимо резервно копие на "MyDB" във файла "D: BackupsMyDB.bak", който може да се използва за възстановяване след бедствие. Разбира се, можете да промените мястото и файла за архивиране на всичко, от което се нуждаете, но не забравяйте да посочите местоположение на папка, което съществува на локалната машина. Този резервен файл може да бъде копиран на лентово устройство или друго външно място за архивиране.

Често срещан въпрос е "Може ли да се създаде резервен файл на mapped drive или UNC location?", А бързият отговор е "не". Причината е, защото SQL Server Windows Service работи като потребителски акаунт, който има достъп само до локалната машина. Можете да промените профила, на който работи услугата, но това е силно обезкуражено поради причини, свързани със сигурността.

Възстановяване на резервно копие на база данни от командния ред

За да възстановите база данни от резервен файл, просто използвайте командата:

SqlCmd -E -S сървъра_на_-Q "RESTORE DATABASE [име_за_Датана] ОТ DISK =" X: PathToBackupFile [File_Name] .bak ""

Например:

SqlCmd -E -S MyServer -Q "Възстановяване на базата данни [MyDB] ОТ ДИСК =" D: BackupsMyDB.bak ""

Горната команда ще възстанови резервно копие на "MyDB" от данните, съхранени в архивния файл "D: BackupsMyDB.bak". Всички промени, направени в MyDB след създаването на архивния файл, ще бъдат загубени.

Важно нещо, което трябва да запомните, когато използвате горната команда, е, че е предназначено да се използва на същия SQL Server, в който е създаден съответният резервен файл. Архивните файлове на SQL съхраняват информация "зад кулисите", която контролира къде и как се копират файловете с данни в резервния файл. Ако възстановявате резервно копие от различен SQL Server, местоположенията на пътя в резервния файл може да не съвпадат със сървъра, в който възстановявате и ще се получи грешка. Макар че това може да бъде обработено, много по-лесно е да възстановите резервните копия, създадени на друг SQL Server, с помощта на инструмента за управление на SQL Management Studio.

Забележка: Командите по-горе ще работят върху SQL 2005 и по-нови (всяко издание). За SQL 2000 и по-стари, заменете "SqlCmd" с "oSql".