Kopie zapasowe MSSQL serwer z wiersza poleceń

Kopie zapa­sowe baz danych ser­w­era MSSQL moż­na tworzyć z linii pole­ceń za pomocą polece­nia SqlCmd. Zaletą tego rozwiąza­nia jest możli­wość stworzenia skryp­tu, który moż­na podłączyć pod har­mono­gram zadań sys­te­mu Windows.

Podstawowa skład­nia polece­nia SqlCmd to:

SqlCmd ‑E ‑S Nazwa_serwera ‑Q "BACKUP DATABASE [Name_of_Database] TO DISK =" X: PathToBackupLocation [Name_of_Database] .bak ""

Domyślna instanc­ja SQL Server:

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

Nazwane wys­tąpi­e­nie pro­gra­mu SQL Server:

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

Aby uru­chomić przy­wracanie bazy danych z pliku kopii zapa­sowej, po pros­tu użyj polecenia:

SqlCmd ‑E ‑S Nazwa_serwera ‑Q "PRZYWRACANIE BAZY DANYCH [nazwa_pliku_danych] OD DYSKU =" X: PathToBackupFile [nazwa_pliku] .bak ""

Na przykład:

SqlCmd ‑E ‑S MyServer ‑Q "PRZYWRÓĆ BAZY DANYCH [MyDB] Z DYSKU =" D: BackupsMyDB.bak ""

Ważną zagad­nie­niem pod­czas korzys­ta­nia z powyższej komendy jest to, że ma ona być uży­wana na tym samym ser­w­erze SQL, na którym został utwor­zony plik kopii zapa­sowej. Pliki kopii zapa­sowych SQL prze­chowu­ją infor­ma­c­je "za kulisa­mi" kon­trolu­jące, gdzie i w jaki sposób kopi­owane są pli­ki danych w pliku kopii zapa­sowej. Jeśli przy­wracasz kopię zapa­sową z innego ser­w­era SQL, lokaliza­c­je ścieżek w pliku kopii zapa­sowej mogą nie odpowiadać ser­werowi, do którego przy­wracasz, i wys­tąpi błąd. Można to  „obe­jść”, przy­wraca­jąc kopie za pomocą narzędzia SQL Management Studio.

Uwaga: powyższe komendy będą dzi­ałały na SQL 2005 i wyższych (dowol­na edy­c­ja). W przy­pad­ku SQL 2000 i wcześniejszych, zastąp "SqlCmd" przez "oSql".

Opcje polece­nia sqlcmd

-a packet_size
-A (ded­i­cat­ed admin­is­tra­tor con­nec­tion)
-b (ter­mi­nate batch job if there is an error) 
-c batch_terminator
-C (trust the serv­er cer­tifi­cate)
-d db_name
-D
-e (echo input)
-E (use trust­ed con­nec­tion)
-f code­page | i:codepage[,o:codepage] | o:codepage[,i:codepage]
-g (enable col­umn encryp­tion)
-G (use Azure Active Directory for authen­ti­ca­tion
-h rows_per_header
-H workstation_nam
-i input_file
 ‑I (enable quot­ed iden­ti­fiers)
-j (Print raw error mes­sages)
-k[1 | 2] (remove or replace con­trol char­ac­ters) 
-K application_intent 
-l login_timeout 
-L[c] (list servers, option­al clean out­put) 
-m error_level 
-M multisubnet_failover 
-N (encrypt con­nec­tion) 
-o output_file 
-p[1] (print sta­tis­tics, option­al colon for­mat)
-P pass­word 
-q "cmd­line query" 
-Q "cmd­line query" (and exit) 
-r[0 | 1] (msgs to stderr) 
-R (use client region­al set­tings) 
-s col_separator 
-S [protocol:]server[instance_name][,port]
-t query_timeout 
-u (uni­code out­put file) 
-U login_id 
-v var = "val­ue"
-V error_severity_level
-w column_width
-W (remove trail­ing spaces)
-x (dis­able vari­able sub­sti­tu­tion)
-X[1] (dis­able com­mands, start­up script, envi­ron­ment vari­ables, option­al exit)
-y variable_length_type_display_width
-Y fixed_length_type_display_width
-z new_password
-Z new_password (and exit)
-? (usage)

Więcej:
https://docs.microsoft.com/en-us/sql/tools/sqlcmd-utility?view=sql-server-ver15

Pliki:
https://drive.google.com/file/d/1ZoxMp7MlUBoyqSEubhtGOuZRxO5aix5m/view?usp=sharing

Share Button

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *