Jak odzyskać bazę danych SQL za pomocą odzyskiwania z wiersza poleceń za pomocą NMM
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Instructions
W tym artykule opisano procedurę, którą należy wykonać, aby pomyślnie przywrócić bazę danych SQL, której kopia zapasowa została utworzona za pomocą NMM przy użyciu VDI
. Przywracanie bazy danych SQL z kopii zapasowej za pomocą wiersza polecenia może być wymagane w przypadku problemu z przywracaniem z graficznego interfejsu użytkownika (użytkownik Networker dla interfejsu GUI serwera SQL lub wtyczki SSMS). Zadanie przeglądania z graficznego interfejsu użytkownika jest powolne lub wymagana baza danych nie jest widoczna w graficznym interfejsie użytkownika do przywrócenia.
Zazwyczaj podczas tworzenia kopii zapasowej pojedynczej bazy danych tworzone są następujące zestawy zapisów:
Pełna kopia zapasowa pojedynczej bazy danych będzie miała następujące zestawy zapisów:
SQLbackups.001 Data Domain sql12srv1 2016-05-25 13:26:41 119 MB 3209027663 cb pełne MSSQL$FINANCE:testdb ==> Pełny zestaw
zapisów kopii zapasowej SQLbackups.001 Data Domain sql12srv1 2016-05-25 13:29:16 5 KB 3192250597 cb incr MSSQL$FINANCE: testdb ==> Zestaw zapisów metadanych.
Przyrostowa kopia zapasowa pojedynczej bazy danych będzie miała następujące zestawy zapisów:
SQLbackups.001 Data Domain sql12srv1 2016-05-25 13:34:14 1320 MB 3141919250 cb incr MSSQL$FINANCE:testdb ==> Zestaw
zapisów kopii zapasowej dziennika SQLbackups.001 Data Domain sql12srv1 2016-05-25 13:40:31 5 KB 3125142409 cb incr MSSQL$FINANCE:testdb ==> zestaw zapisów
metadanych Zwróć uwagę, że każda kopia zapasowa ma zestaw zapisów metadanych, który jest zawsze tworzony na poziomie "incr" i zwykle jest bardzo mały. Ten zestaw zapisu zawiera informacje, które umożliwiają wyświetlenie listy baz danych w graficznym interfejsie użytkownika "Networker User for SQL Server". Ten zestaw zapisu jest tworzony przy każdej kopii zapasowej SQL VDI. Istnieje jednak możliwość, że ten zestaw zapisów może nie istnieć, jeśli proces ręcznego klonowania nieprawidłowo nie zawierał tego zestawu zapisów do klonowania, a oryginalne zestawy zapisów już nie istnieją. W takim przypadku jedyną opcją jest przywracanie z poziomu wiersza polecenia.
Po ustaleniu, z której kopii zapasowej należy odzyskać dane, można utworzyć wiersz polecenia. Poniżej znajduje się przykład polecenia przywracania:
nsrsqlrc -s nsr-server -c sql12srv1 -t "25.05.2016 13:34:14 PM" -d "MSSQL$FINANCE:testdb-recovered" -C " 'testdb' = 'c:\recover\testdb.mdf', 'testdb_log' = 'c:\recover\testdb_log.ldf', 'testdb_log1' = 'c:\recover\testdb_log1.ldf'" "MSSQL$FINANCE:testdb"
W powyższym command-s
opcja jest określenie nazwy serwera NetWorker,
-c służy do określenia klienta źródłowego (jeśli odzyskiwanie jest wykonywane na hoście innym niż klient źródłowy),
-d określa docelową bazę danych, do której ma zostać przywrócona. Ta baza danych nie będzie istnieć. Proces przywracania utworzy bazę danych w wystąpieniu docelowym.
-C określa, że jest to przywracanie kopii. Parametry po -C określają nazwy logiczne plików w bazie danych. Należy pamiętać, że nazwy te muszą być dokładnie zgodne z nazwami logicznymi przywracanej bazy danych. Jeśli baza danych istnieje, wykonaj właściwości dotyczące nazwy bazy danych z graficznego interfejsu użytkownika programu SSMS i wyszukaj w obszarze "Pliki".
Jeśli przywracanie jest wykonywane na klastrowanym serwerze SQL, dodaj "-A "virtual-server name" " do polecenia przywracania.
Ostatnim komponentem w poleceniu jest nazwa przywracanej bazy danych, np. MSSQL$
FINANCE:testdb
Jeśli nie masz pewności, jakie są nazwy logiczne plików bazy danych, możesz podać niekompletne polecenie, jak poniżej:
nsrsqlrc -s nsr-server -c sql12srv1 -t "5/25/2016 1:34:14 PM" -d "MSSQL$FINANCE:testdb-recovered" -C " 'mydb' = 'c:\ recover\testdb.mdf'" "MSSQL$FINANCE:testdb"
43708:(pid 2144):Godzina rozpoczęcia: śro maja 25 15:37:42 2016
43621:(pid 2144):Nazwa komputera: Nazwa użytkownika SQL12SRV1: administrator
NSR_CLIENT: sql12srv1.jets.local;
NSR_SERVER: serwer nsr;
37725:(pid 2144):Odzyskiwanie bazy danych 'testdb' do 'testdb-recovered' ...
142468:(pid 2144):[2292]nsr/db_apps/bsmsql/rcstripes.c(222): Znajdowanie kopii zapasowej dla zestawu zapisów MSSQL$FINANCE:/testdb.
37945:(pid 2144):Brak relokacji dla bazy danych testdb pliku logicznego.
37945:(pid 2144):Brak relokacji dla testdb_log pliku logicznego.
37945:(pid 2144):Brak relokacji dla testdb_log1 pliku logicznego.
37946:(pid 2144):Brak pliku logicznego o nazwie mydb w oryginalnej bazie danych
29401:(pid 2144):D błąd listy relokacji pliku atabase. Rzeczywista lista plików to:
37947:(pid 2144): testdb = C:\Program Files\Microsoft SQL Server\MSSQL11. FINANSE\MSSQL\DATA\
testdb.mdf 37947:(pid 2144): testdb_log = C:\Program Files\Microsoft SQL Server\MSSQL11. FINANCE\MSSQL\DATA\testdb_log.ldf
37947:(pid 2144): testdb_log1 = C:\Program Files\Microsoft SQL Server\MSSQL11. FINANCE\MSSQL\DATA\testdb_log1.ldf
142468:(pid 2144):[2292]nsr/db_apps/bsmsql/rcstripes.c(222): Znajdowanie kopii zapasowej dla zestawu zapisów MSSQL$FINANCE:/testdb.
37945:(pid 2144):Brak relokacji dla bazy danych testdb pliku logicznego.
37945:(pid 2144):Brak relokacji dla testdb_log pliku logicznego.
37945:(pid 2144):Brak relokacji dla testdb_log1 pliku logicznego.
37946:(pid 2144):Brak pliku logicznego o nazwie mydb w oryginalnej bazie danych
29401:(pid 2144):D błąd listy relokacji pliku atabase. Rzeczywista lista plików to:
37947:(pid 2144): testdb = C:\Program Files\Microsoft SQL Server\MSSQL11. FINANSE\MSSQL\DATA\
testdb.mdf 37947:(pid 2144): testdb_log = C:\Program Files\Microsoft SQL Server\MSSQL11. FINANCE\MSSQL\DATA\testdb_log.ldf
37947:(pid 2144): testdb_log1 = C:\Program Files\Microsoft SQL Server\MSSQL11. FINANCE\MSSQL\DATA\testdb_log1.ldf
Operacja przywracania zakończyła się błędami. Szczegółowe informacje można znaleźć w pliku dziennika kopii zapasowej modułu. nieznany błąd XBSA 1169 (0x491) nsr/db_apps/bsmsql/rcovmain.cpp(442): Uruchamianie metody cleanUp(). nsr/db_apps/bsmsql/rcovmain.cpp(500): Zamykanie metody cleanUp().
43709:(pid 2144):Czas zatrzymania: Wed May 25 15:37:49 2016
***********************
W powyższym poleceniu podałem losową nazwę logiczną "mydb", a polecenie wypluwa rzeczywistą logiczną nazwę plików DB i ich pierwotną lokalizację. Informacje te można wykorzystać do zbudowania polecenia przywracania. Pamiętaj, że musisz podać inną ścieżkę, do której chcesz przywrócić dane. Nie można i nie należy podawać oryginalnej ścieżki źródłowej w poleceniu przywracania, aby uniknąć ryzyka nadpisania istniejących danych.
Czas kopii zapasowej do przywrócenia można uzyskać za pomocą polecenia mminfo. Można użyć savetime pokazanego w danych wyjściowych lub użyć raportu o nsavetime i użyć tego czasu.
np:
mminfo -avot -s nsr-server -q "client=sql12srv1,savetime >= yesterday"
SQLbackups.001 Data Domain sql12srv1 2016-05-25 13:26:41 119 MB 3209027663 cb pełne MSSQL$FINANCE:testdb
SQLbackups.001 Data Domain sql12srv1 2016-05-25 13:29:16 5 KB 3192250597 cb incr MSSQL$FINANCE:testdb
SQLbackups.001 Data Domain sql12srv1 2016-05-25 13:34:14 1320 MB 3141919250 cb incr MSSQL$FINANCE:testdb
SQLbackups.001 Data Domain sql12srv1
2016-05-25 13:40:31 5 KB 3125142409 cb incr MSSQL$FINANCE:testdb
mminfo -avot -s nsr-server -q "client=sql12srv1,savetime >= yesterday" -r volume,client,sumflags,sumsize,level,savetime(25),nsavetime,name
SQLbackups.001 sql12srv1 cb 119 MB full 2016-05-25 13:26:41 1464197201 MSSQL$FINANCE:testdb
SQLbackups.001 sql12srv1 cb 5 KB incr 2016-05-25 13:29:16 1464197356 MSSQL$FINANCE:testdb
SQLbackups.001 sql12srv1 cb 1320 MB incr 2016-05-25 13:34:14 PM 1464197654 MSSQL$FINANCE:testdb
SQLbackups.001 sql12srv1 cb 5 KB incr 2016-05-25 13:40:31 1464198031 MSSQL$FINANCE:testdb
Uwaga: można określić nsavetime/savetime zestawu zapisu metadanych lub rzeczywistego zestawu zapisu danych. Obie te opcje będą działać.
Scenariusz 2:
Jeśli kopie zapasowe są zarejestrowane w bazie danych nośnika bez nazw baz danych, czas utworzenia wymaganej kopii zapasowej nie będzie tak oczywisty. Na przykład wszystkie kopie zapasowe bazy danych mają takie same nazwy zbiorów zapisu jak poniżej:
SQLbackups.001 Data Domain sql12srv1 5/25/2016 4:43:15 PM 151 KB 2672168543 cb incr MSSQL$FINANCE:
SQLbackups.001 Data Domain sql12srv1 5/25/2016 4:45:26 PM 151 KB 2655391455 cb incr MSSQL$FINANCE:
Na podstawie powyższego nie można stwierdzić, który zestaw zapisów zawiera potrzebną kopię zapasową.
Jeśli istnieje zestaw zapisu danych medata, kopie zapasowe będzie można przeglądać z poziomu graficznego interfejsu użytkownika, a nazwę bazy danych i czas kopii zapasowej można znaleźć w graficznym interfejsie użytkownika. Np. jeśli wymagany był DB24, graficzny interfejs użytkownika pokazuje czas tworzenia kopii zapasowej "2016-05-25 16:49".
Jeśli nie ma tam zestawu zapisu metadanych, musisz uruchomić polecenie nsrinfo, aby znaleźć czas zapisu dla przywracania. Na przykład, jeśli mminfo pokazuje zestawy zapisów, jak poniżej:
SQLbackups.001 Data Domain sql12srv1 2016-05-25 16:43:15 151 KB 2672168543 cb incr MSSQL$FINANCE:
SQLbackups.001 Data Domain sql12srv1 2016-05-25 16:45:26 151 KB 2655391455 cb incr MSSQL$FINANCE:
SQLbackups.001 Data Domain sql12srv1 2016-05-25 16:47:34 151 KB 2638614367 cb incr MSSQL$FINANCE:
SQLbackups.001 Data Domain sql12srv1 2016-05-25 16:49:42 151 KB 2621837279 cb incr MSSQL$FINANCE:
SQLbackups.001 Data Domain sql12srv1 2016-05-25 16:51:50 151 KB 2605060191 cb incr MSSQL$FINANCE:
SQLbackups.001 Data Domain sql12srv1 2016-05-25 16:53:58 151 KB 2588283103 cb incr MSSQL$FINANCE:Uruchom nsrinfo w czasach zapisu,
jak poniżej, aby uzyskać informacje na temat bazy danych, która jest częścią zestawu zapisów:
nsrinfo -n mssql -t "5/25/2016 4:43:15 PM" sql12SRV1
skanuje klienta "sql12srv1" w celu zapisania 1464208995(25.05.2016 16:43:15) z przestrzeni
nazw mssql MSSQL$FINANCE:/ DB21
MSSQL$FINANCE:/DB21%/files.1464208995.1464209044
Znaleziono
2 obiekty nsrinfo -n mssql -t "25.05.2016 16:49:42" sql12srv1
skanuje klienta "sql12srv1" w celu zapisania 1464209382(25.05.2016 16:49:42 PM) z przestrzeni
nazw mssql MSSQL$FINANCE:/DB24
MSSQL$FINANCE:/DB24%/files.1464209382.1464209437
Znaleziono
2 obiektyPonieważ zestawy zapisu nie pokazują nazw baz danych, powyższe może być wykonane metodą prób i błędów w scenariuszu, w którym zestaw zapisu metadanych nie istnieje. Użyj przybliżonego rozmiaru bazy danych jako wskazówki, aby zawęzić zapytanie nsrinfo do kilku zestawów zapisu.
Article Properties
Article Number: 000022417
Article Type: How To
Last Modified: 09 Aug 2022
Version: 4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.