SQL-tietokannan palauttaminen komentorivin palautuksella NMM: llä
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
Tässä artikkelissa kerrotaan, miten NMM:llä VDI
:tä käyttäen varmuuskopioidun SQL-tietokannan onnistunut palautus tapahtuu SQL-tietokannan palauttaminen varmuuskopiosta komentorivillä, jos palauttamisessa käyttöliittymästä (SQL Server GUI:n tai SSMS-laajennuksen Networker-käyttäjä) on ongelma. Joko selaustehtävä käyttöliittymästä on hidas tai tarvittava tietokanta ei näy graafisessa käyttöliittymässä palautusta varten.
Yleensä seuraavat tallennusjoukot luodaan, kun yksi tietokanta varmuuskopioidaan:
Yksittäisen tietokannan täydellisessä varmuuskopiossa on seuraavat tallennusjoukot:
SQLbackups.001 Data Domain sql12srv1 25.5.2016 13:26:41 119 Mt 3209027663 cb täysi MSSQL$FINANCE:testdb ==> Täysi varmuuskopio saveset
SQLbackups.001 Data Domain sql12srv1 25.5.2016 13:29:16 5 KB 3192250597 cb incr MSSQL$FINANCE: testdb ==> metatietojen tallennusjoukko.
Yksittäisen tietokannan lisäävässä varmuuskopiossa on seuraavat tallennusjoukot:
SQLbackups.001 Data Domain sql12srv1 25.5.2016 13:34:14 PM 1320 MB 3141919250 cb incr MSSQL$FINANCE:testdb ==> Log backup saveset
SQLbackups.001 Data Domain sql12srv1 25.5.2016 13:40:31 PM 5 KB 3125142409 cb incr MSSQL$FINANCE:testdb ==> metadata saveset
Huomaa, että jokaisella varmuuskopiolla on metatietojen tallennusjoukko, joka luodaan aina incr-tasolla ja on yleensä hyvin pieni. Tämä tallennusjoukko sisältää tietoja, joiden avulla DB-luettelo näkyy Networker User for SQL Server -käyttöliittymässä. Tämä tallennusjoukko luodaan jokaisen SQL VDI -varmuuskopion yhteydessä. On kuitenkin mahdollista, että tätä tallennusjoukkoa ei ole olemassa, jos manuaalinen kloonausprosessi ei virheellisesti sisältänyt tätä tallennusjoukkoa kloonausta varten ja jos alkuperäisiä tallennusjoukkoja ei enää ole. Jos näin on, komentorivin palautus on ainoa vaihtoehto.
Kun olet määrittänyt, mistä varmuuskopiosta sinun on palautettava, voit rakentaa komentorivin. Alla on esimerkki palautuskomennosta:
nsrsqlrc -s nsr-server -c sql12srv1 -t "25.5.2016 13:34:14" -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"
Edellä olevassa komennossa
vaihtoehto on määrittää Networker-palvelimen nimi,
-c-vaihtoehtoa käytetään lähdeasiakkaan määrittämiseen (jos palautus tehdään muussa isännässä kuin lähdeasiakkaassa),
-d määritä palautettava kohdetietokanta. Tätä talousarvioesitystä ei ole olemassa. Palautusprosessi luo tietokannan kohde-esiintymään.
-C määrittää, että kyseessä on kopion palautus. -C:n jälkeiset parametrit määrittävät tietokannan tiedostojen loogiset nimet. Huomautus: näiden nimien on vastattava täsmälleen palautettavan tietokannan loogisia nimiä. Jos tietokanta on olemassa, tee DB-nimen ominaisuudet SSMS-käyttöliittymästä ja katso Tiedostot-kohtaa.
Jos palautus tehdään klusteroidussa SQL-palvelimessa, lisää palautuskomentoon "-A "virtual-Server name".
Komennon viimeinen komponentti on palautettavan tietokannan nimi, esim. MSSQL$
FINANCE:testdb
Jos et ole varma, mitkä tietokantatiedostojen loogiset nimet ovat, voit antaa epätäydellisen komennon seuraavasti:
nsrsqlrc -s nsr-server -c sql12srv1 -t "25.5.2016 13:34:14" -d "MSSQL$FINANCE:testdb-recovered" -C " 'mydb' = 'c:\ recover\testdb.mdf'" "MSSQL$FINANCE:testdb"
43708:(pid 2144):Alkamisaika: Wed May 25 15:37:42 2016
43621:(pid 2144):Tietokoneen nimi: SQL12SRV1 käyttäjänimi: administrator
NSR_CLIENT: sql12srv1.jets.local;
NSR_SERVER: nsr-palvelin;
37725: (pid 2144): Tietokannan "testdb" palauttaminen "testdb-recoverediksi" ...
142468:(PID 2144):[2292]nsr/db_apps/bsmsql/rcstripes.c(222): Varmuuskopion etsiminen saveset MSSQL$FINANCE:/testdb:lle.
37945:(pid 2144):Loogisen tiedoston testdb siirto puuttuu.
37945:(pid 2144):Loogisen tiedoston testdb_log siirto puuttuu.
37945:(pid 2144):Loogisen tiedoston testdb_log1 siirto puuttuu.
37946:(pid 2144):Alkuperäisessä tietokannassa
ei ole loogista tiedostoa nimeltä mydb 29401:(pid 2144):D atabase file relocation list error. Varsinainen tiedostoluettelo on:
37947:(pid 2144): testdb = C:\Program Files\Microsoft SQL Server\MSSQL11. FINANCE\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): Varmuuskopion etsiminen saveset MSSQL$FINANCE:/testdb:lle.
37945:(pid 2144):Loogisen tiedoston testdb siirto puuttuu.
37945:(pid 2144):Loogisen tiedoston testdb_log siirto puuttuu.
37945:(pid 2144):Loogisen tiedoston testdb_log1 puuttuva siirto.
37946:(pid 2144):Alkuperäisessä tietokannassa
29401:(pid 2144):D atabase file relocation list error. Varsinainen tiedostoluettelo on:
37947:(pid 2144): testdb = C:\Program Files\Microsoft SQL Server\MSSQL11. FINANCE\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
Palautustoiminto päättyi virheeseen. Lisätietoja on moduulien varmuuskopiolokitiedostossa. tuntematon XBSA-virhe 1169 (0x491) nsr/db_apps/bsmsql/rcovmain.cpp(442): Siirtyminen cleanUp(). nsr/db_apps/bsmsql/rcovmain.cpp(500): Poistuminen cleanUp().
43709:(pid 2144):Pysäytysaika: ke, toukokuu 25, 15:37:49, 2016
***********************
Yllä olevassa komennossa annoin satunnaisen loogisen nimen 'mydb' ja komento sylkee DB-tiedostojen todellisen loogisen nimen ja niiden alkuperäisen sijainnin. Näiden tietojen avulla voit luoda palautuskomennon. Huomautus: sinun on annettava toinen polku, johon tiedot palautetaan. Alkuperäistä lähdepolkua ei voi eikä kannata antaa palautuskomennossa, jotta aiemmin luodut tiedot eivät korvaudu.
Palautuksen varmuuskopiointiaika saadaan mminfo-komennolla. Voit joko käyttää tuloksessa näkyvää savetime-arvoa tai voit raportoida nsavetime-tilasta ja käyttää sen sijaan tätä aikaa.
esim:
mminfo -avot -s nsr-server -q "client=sql12srv1,savetime >= eilen"
SQLbackups.001 Data Domain sql12srv1 25.5.2016 13:26:41 119 MB 3209027663 cb full MSSQL$FINANCE:testdb
SQLbackups.001 Data Domain sql12srv1 25.5.2016 13:29:16 5 KB 3192250597 cb incr MSSQL$FINANCE:testdb
SQLbackups.001 Data Domain sql12srv1 25.5.2016 13:34:14 PM 1320 MB 3141919250 cb incr MSSQL$FINANCE:testdb
SQLbackups.001 Data Domain sql12srv1
25.5.2016 13:40:31 PM 5 KB 3125142409 cb incr MSSQL$FINANCE:testdb
mminfo -avot -s nsr-server -q "client=sql12srv1,savetime >= eilen" -r volume,client,sumflags,sumsize,level,savetime(25),nsavetime,name
SQLbackups.001 sql12srv1 cb 119 MB täynnä 25.5.2016 13:26:41 1464197201 MSSQL$FINANCE:testdb
SQLbackups.001 sql12srv1 cb 5 KB incr 25.5.2016 13:29:16 1464197356 MSSQL$FINANCE:testdb
SQLvarmuuskopiot.001 sql12srv1 cb 1320 MB incr 25.5.2016 13:34:14 1464197654 MSSQL$FINANCE:testdb
SQLvarmuuskopiot.001 sql12srv1 cb 5 KB incr 25.5.2016 13:40:31 1464198031 MSSQL$FINANCE:testdb
Huomautus: voit määrittää joko metatietojen tallennusjoukon tai varsinaisen tietojen tallennusjoukon nsavetimen/savetimen. Kumpikin näistä toimii.
Skenaario 2:
Jos varmuuskopiot on rekisteröity mediaan db ilman DB-nimiä, vaaditun varmuuskopioinnin aika ei ole yhtä ilmeinen. Esimerkiksi kaikilla DB-varmuuskopioilla on samat tallennusjoukkojen nimet kuin alla:
SQLbackups.001 Data Domain sql12srv1 25.5.2016 16:43:15 151 KB 2672168543 cb incr MSSQL$FINANCE:
SQLbackups.001 Data Domain sql12srv1 25.5.2016 16:45:26 151 KB 2655391455 cb incr MSSQL$FINANCE: Edellä olevasta ei voi kertoa,
millä tallennusjoukolla on tarvitsemasi varmuuskopio.
Jos medata-tietojen tallennusjoukko on olemassa, varmuuskopioita voi selata käyttöliittymässä, ja näet DB-nimen ja varmuuskopiointiajan käyttöliittymässä. Jos esimerkiksi DB24:ää tarvittiin, varmuuskopiointiaika näkyy graafisessa käyttöliittymässä muodossa 25.5.2016 16.49.
Jos metatietojen tallennusjoukkoa ei ole, sinun on suoritettava nsrinfo-komento, jotta löydät palautuksen säästöajan. esimerkiksi jos mminfo näyttää savesetit alla kuvatulla tavalla:
SQLbackups.001 Data Domain sql12srv1 25.5.2016 16:43:15 151 KB 2672168543 cb incr MSSQL$FINANCE:
SQLbackups.001 Data Domain sql12srv1 25.5.2016 16:45:26 151 KB 2655391455 cb incr MSSQL$FINANCE:
SQLbackups.001 Data Domain sql12srv1 25.5.2016 16:47:34 151 KB 2638614367 cb incr MSSQL$FINANCE:
SQLbackups.001 Data Domain sql12srv1 25.5.2016 16:49:42 PM 151 KB 2621837279 cb incr MSSQL$FINANCE:
SQLbackups.001 Data Domain sql12srv1 25.5.2016 16:51:50 151 KB 2605060191 cb incr MSSQL$FINANCE:
SQLbackups.001 Data Domain sql12srv1 25.5.2016 16:53:58 151 KB 2588283103 cb incr MSSQL$FINANCE:
Suorita nsrinfo alla olevilla tallennusajoilla saadaksesi tietoja tietokantaan, joka on osa tallennusjoukkoa:
nsrinfo -n mssql -t "25.5.2016 16:43:15" sql12srv1
skannaa asiakasohjelmaa 'sql12srv1' savetimelle 1464208995(25.5.2016 16:43:15) mssql-nimitilasta
MSSQL$FINANCE:/ DB21
MSSQL$FINANCE:/DB21%/files.1464208995.1464209044
2 objektia löytyi
nsrinfo -n mssql -t "25.5.2016 16:49:42" sql12srv1
skannaa asiakasohjelmaa 'sql12srv1' savetimelle 1464209382(25.5.2016 16:49:42) mssql-nimitilasta
MSSQL$FINANCE:/DB24
MSSQL$FINANCE:/DB24%/files.1464209382.1464209437
Löytyi 2 kohdetta löytyi
Koska tallennusjoukot eivät näytä DB-nimiä, yllä oleva voi olla hieman yritys ja erehdys tilanteessa, jossa metatietojen tallennusjoukkoa ei ole. Käytä likimääräistä tietokannan kokoa vihjeenä rajataksesi nsrinfo-kyselyn muutamaan tallennusjoukkoon.
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.