ProHoster > Blog > Stjórnsýsla > Flutningur öryggisafritsgagna úr nýrri útgáfu af MS SQL Server yfir í eldri útgáfu
Flutningur öryggisafritsgagna úr nýrri útgáfu af MS SQL Server yfir í eldri útgáfu
Forsaga
Einu sinni, til þess að endurskapa villu, þurfti ég öryggisafrit af framleiðslugagnagrunninum.
Mér til undrunar lenti ég í eftirfarandi takmörkunum:
Gagnaafritið var gert á útgáfunni SQL Server 2016 og var ekki samhæft við mitt SQL Server 2014.
Á vinnutölvunni minni var stýrikerfið sem notað var Windows 7svo ég gat ekki uppfært SQL Server upp í útgáfu 2016
Varan sem studd var var hluti af stærra kerfi með þétttengdum eldri arkitektúr og talaði einnig við aðrar vörur og bækistöðvar, svo það gæti tekið mjög langan tíma að dreifa henni á aðra stöð.
Í ljósi ofangreinds komst ég að þeirri niðurstöðu að tími sé kominn á hækjur óstaðlaðra lausna.
Endurheimt gögn úr öryggisafriti
Ég valdi að nota sýndarvél Oracle VM VirtualBox með Windows 10 (þú getur tekið prófunarmynd fyrir Edge vafrann þess vegna). SQL Server 2016 var settur upp á sýndarvélinni og forritagagnagrunnurinn var endurheimtur úr öryggisafritinu (kennsla).
Að stilla aðgang að SQL Server á sýndarvél
Næst var nauðsynlegt að gera nokkrar ráðstafanir til að geta fengið aðgang að SQL Server utan frá:
Fyrir eldvegginn, bættu við reglu um að sleppa beiðnum um höfnina 1433.
Æskilegt er að aðgangur að þjóninum fari ekki í gegnum Windows auðkenningu, heldur í gegnum SQL með notandanafni og lykilorði (það er auðveldara að setja upp aðgang). Hins vegar, í þessu tilfelli, þarftu að muna að virkja SQL auðkenningu í eiginleikum SQL Server.
Í notendastillingum á SQL Server á flipanum Notendakortlagning tilgreindu notendahlutverkið fyrir endurheimta gagnagrunninn db_securityadmin.
Gagnaflutningur
Reyndar samanstendur gagnaflutningurinn sjálfur af tveimur stigum:
Veldu Verkefni -> Búa til forskriftir fyrir færanlegan grunn.
Veldu hlutina sem þú þarft að flytja eða skildu eftir sjálfgefið gildi (í þessu tilviki verða forskriftir búnar til fyrir alla gagnagrunnshluti).
Tilgreindu stillingar til að vista handritið. Það er þægilegast að vista handritið í einni Unicode skrá. Síðan, ef bilun er, þarftu ekki að endurtaka öll skrefin aftur.
Þegar handritið hefur verið vistað er hægt að keyra það á upprunalega SQL Server (gamla útgáfan) til að búa til nauðsynlegan grunn.
Viðvörun: Eftir að hafa keyrt skriftuna þarftu að athuga samsvörun milli stillinga gagnagrunnsins úr öryggisafritinu og gagnagrunnsins sem skriftin býr til. Í mínu tilviki var engin stilling fyrir COLLATE í handritinu, sem leiddi til bilunar þegar gögn voru flutt og dansað með tambúrínu til að endurskapa gagnagrunninn með því að nota viðbótarforritið.
Gagnaflutningur
Áður en gögn eru flutt verður þú að slökkva á athugun á öllum takmörkunum á gagnagrunninum:
Gagnaflutningur fer fram með því að nota gagnainnflutningshjálpina Verkefni -> Flytja inn gögn á SQL Server, þar sem gagnagrunnurinn sem er búinn til með handritinu er staðsettur:
Tilgreindu tengingarstillingar við upprunann (SQL Server 2016 á sýndarvél). Ég notaði gagnagjafa Native Client SQL Server og áðurnefnd SQL auðkenning.
Tilgreindu tengingarstillingar fyrir áfangastað (SQL Server 2014 á hýsingarvélinni).
Næst skaltu setja upp kortlagninguna. Allt verður að velja ekki skrifvarinn hluti (til dæmis þarf ekki að velja útsýni). Sem viðbótarvalkostir skaltu velja "Leyfa innsetningu í auðkennisdálka"ef slíkt er notað. Viðvörun: ef, þegar reynt er að velja nokkrar töflur og stilla eign þeirra "Leyfa innsetningu í auðkennisdálka" Eiginleikinn hefur þegar verið stilltur fyrir að minnsta kosti eina af völdum töflum, svarglugginn gefur til kynna að eignin hafi þegar verið stillt fyrir allar valdar töflur. Þessi staðreynd getur verið ruglingsleg og leitt til flutningsvillna.
Ef einhverjar villur koma upp, athugum við stillingarnar, eyðum gagnagrunninum sem búið er til með villum, búum til hann aftur úr handritinu, gerum leiðréttingar og endurtökum gagnaflutninginn.
Ályktun
Þetta verkefni er frekar sjaldgæft og gerist aðeins vegna ofangreindra takmarkana. Algengasta lausnin er að uppfæra SQL Server eða tengjast ytri netþjóni ef forritaarkitektúrinn leyfir það. Hins vegar er enginn ónæmur fyrir arfleifð kóða og krókóttar hendur lélegrar þróunar. Ég vona að þú þurfir ekki þessa kennslu, en ef þú þarft hana samt mun það spara mikinn tíma og taugar. Takk fyrir athyglina!