If-Koubou

Rezervējiet un atjaunojiet SQL Server datu bāzi no komandrindas

Rezervējiet un atjaunojiet SQL Server datu bāzi no komandrindas (Kā)

SQL Server uzturēšanas plāna svarīgākā daļa regulāri dublē jūsu datu bāzes. Lai dublētu datubāzi, jūs vienkārši nevarat nokopēt atbilstošos datubāzes MDF un LDF failus, jo tiem ir bloķēta SQL Server. Tā vietā jums ir nepieciešams izveidot patiesu dublējuma failu, izmantojot SQL Server.

Lai gan to var izdarīt, izstrādājot uzturēšanas plānu SQL Management Studio ietvaros, SQL Express bezmaksas izdevumi nepiedāvā šo saskarni. Lai to paveiktu, varat viegli dublēt datu bāzes, palaižot komandu zemāk, kad esat pieteicies kā Windows administrators:

SqlCmd -E -S Server_Name -Q "BACKUP datu bāze [Name_of_Database] TO DISK =" X: PathToBackupLocation [Name_of_Database]. Bak ""

Tālāk sniegtie piemēri palīdzēs.

Noklusējuma SQL Server instances:

SqlCmd -E -S MyServer -Q "BACKUP DATUBĀZE [MyDB] Uz diska =" D: BackupsMyDB.bak ""

Nosaukta SQL Server instance:

SqlCmd -E -S MyServerMyInstance -Q "BACKUP DATUBĀZE [MyDB] Uz diska =" D: BackupsMyDB.bak ""

Iepriekš izveidota pilnīgi atjaunojama "MyDB" rezerves kopija failam "D: BackupsMyDB.bak", ko var izmantot katastrofu seku novēršanai. Protams, varat mainīt dublējuma atrašanās vietu un failu, lai kāds būtu jums, bet pārliecinieties, ka norādāt mapes atrašanās vietu, kas pastāv lokālajā mašīnā. Pēc tam šo dublējuma failu var kopēt lentes diskā vai citā ārējā rezerves vietā.

Visbiežāk uzdotie jautājumi ir "Vai dublējumkopiju var izveidot saistītajam diskam vai UNC atrašanās vietai?" Un ātrā atbilde ir nē. Iemesls ir tādēļ, ka SQL Server Windows Service darbojas kā lietotāja konts, kuram ir tikai piekļuve vietējai mašīnai. Varat mainīt kontu, kurā tiek izmantots pakalpojums, taču drošības apsvērumu dēļ tas ir ļoti noraizējies.

Atjaunot datu bāzes dublēšanu no komandrindas

Lai atjaunotu datubāzi no rezerves faila, vienkārši izmantojiet komandu:

SqlCmd -E -S Server_Name -Q "Atjaunot datu bāzi [Name_of_Database] FROM DISK =" X: PathToBackupFile [File_Name]. BAK ""

Piemēram:

SqlCmd -E -S MyServer -Q "UZSTĀDĪT Datu bāzi [MyDB] FROM DISK =" D: BackupsMyDB.bak ""

Iepriekš minētā komanda atjauno dublējumkopijas "D: BackupsMyDB.bak" laikā saglabāto datu "MyDB" dublējumu. Jebkuras izmaiņas, kas veiktas MyDB kopš dublējuma faila izveidošanas, tiks zaudētas.

Svarīgi ir atcerēties, lietojot iepriekš minēto komandu, ka tā ir paredzēta izmantošanai tajā pašā SQL Server, ka attiecīgais rezerves fails tika izveidots. SQL rezerves faili uzglabā "aiz ainas" informāciju, kas kontrolē to, kur un kā dublētajā failā esošie datu faili tiek kopēti. Ja atjaunojat dublējumu no cita SQL Server, dublējuma faila atrašanās vietas var neatbilst serverim, kuru atjaunojat, un radīsies kļūda. Lai gan to var strādāt, ir daudz vieglāk atjaunot dublējumkopijas, kas izveidotas citā SQL Server, izmantojot SQL pārvaldības studiju rīku.

Piezīme. Iepriekš minētās komandas darbosies ar SQL 2005 un augstāk (jebkura versija). Attiecībā uz SQL 2000 un agrāk aizstājiet "SqlCmd" ar "oSql".