Mājas lapa » » SQL Server datu bāzes dublēšana un atjaunošana no komandrindas

    SQL Server datu bāzes dublēšana un atjaunošana no komandrindas

    Svarīgākā SQL servera uzturēšanas plāna sastāvdaļa ir regulāra datu bāzu dublēšana. Lai dublētu datu bāzi, jūs nevarat vienkārši kopēt atbilstošos datubāzes MDF un LDF failus, jo SQL Server tiem ir bloķēta. Tā vietā jums ir jāizveido patiess rezerves fails, izmantojot SQL Server.

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

    SqlCmd -E -S Server_Name -Q “BACKUP DATABASE [Name_of_Database] TO DISK =" X: PathToBackupLocation [Name_of_Database] .bak "”

    Turpmāk minētie piemēri palīdzēs.

    Noklusējuma SQL servera gadījums:

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

    Nosauktais SQL servera piemērs:

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

    Iepriekš minētais izveido pilnībā atjaunojamu “MyDB” rezerves kopiju failam “D: BackupsMyDB.bak”, ko var izmantot katastrofu seku novēršanai. Protams, varat mainīt rezerves atrašanās vietu un failu uz vajadzīgo, bet pārliecinieties, ka esat norādījis mapes atrašanās vietu, kas atrodas vietējā datorā. Pēc tam šo dublējuma failu var kopēt lentes diskdzinī vai citā ārējā dublēšanas vietā.

    Bieži uzdotais jautājums ir „Vai var izveidot dublējuma failu uz kartēta diska vai UNC atrašanās vietas?” Un ātrā atbilde ir nē. Iemesls ir tāpēc, ka SQL Server Windows pakalpojums darbojas kā lietotāja konts, kam ir piekļuve tikai vietējai iekārtai. Varat mainīt kontu, kuru pakalpojums darbojas, bet drošības apsvērumu dēļ tas ir ļoti noraidīts.

    Datu bāzes dublējuma atjaunošana no komandrindas

    Lai atjaunotu datu bāzi no dublējuma faila, vienkārši izmantojiet komandu:

    SqlCmd -E -S Server_Name -Q “RESTORE DATABASE [Name_of_Database] NO DISK =" X: PathToBackupFile [File_Name] .bak "”

    Piemēram:

    SqlCmd -E -S MyServer -Q “RESTORE DATABASE [MyDB] NO DISK =" D: BackupsMyDB.bak "”

    Iepriekš minētā komanda atjaunos “MyDB” dublējumkopiju no dublējumkopijā “D: BackupsMyDB.bak” saglabātajiem datiem. Visas izmaiņas, kas veiktas MyDB kopš rezerves faila izveides, tiks zaudētas.

    Svarīga lieta, kas jāatceras, lietojot iepriekš minēto komandu, ir tā, ka tā ir paredzēta izmantošanai tajā pašā SQL serverī, kurā tika izveidots atbilstošais dublējuma fails. SQL dublējuma faili glabā "aiz ainas" informāciju, kas kontrolē, kur un kā tiek kopēti datu faili dublējumkopijā. Ja atjaunojat dublējumu no cita SQL servera, ceļa atrašanās vietas dublējuma failā var neatbilst serverim, kuru atjaunojat, un radīsies kļūda. Lai gan to var apstrādāt, ir daudz vieglāk atjaunot dublējumkopijas, kas izveidotas citā SQL serverī, izmantojot SQL Management Studio rīku.

    Piezīme: iepriekš minētās komandas darbosies ar SQL 2005 un augstāku (jebkurš izdevums). SQL 2000 un agrāk, nomainiet 'SqlCmd' ar 'oSql'.