ProHoster > Blog > Administrazioa > MS SQL Server-en bertsio berri batetik babeskopia datuak bertsio zaharrago batera transferitzea
MS SQL Server-en bertsio berri batetik babeskopia datuak bertsio zaharrago batera transferitzea
historiaurrea
Behin, akats bat erreproduzitzeko, produkzio datu-basearen babeskopia bat behar nuen.
Nire harridurarako, muga hauekin egin nuen topo:
Datu-basearen babeskopia bertsioan egin da SQL Server 2016 eta ez zen nirearekin bateragarria SQL Server 2014.
Nire laneko ordenagailuan, erabilitako sistema eragilea zen Windows 7beraz, ezin izan dut eguneratu SQL Server 2016 bertsiora arte
Onartutako produktua ondare-arkitektura hertsiki lotua zuen sistema handiago baten parte zen eta beste produktu eta oinarri batzuekin ere hitz egiten zuen, beraz, oso denbora luzea izan zitekeen beste geltoki batera zabaltzeko.
Aurrekoa ikusita, irtenbide ez-estandarren makuluen garaia iritsi dela ondorioztatu dut.
Babeskopia batetik datuak leheneratzea
Makina birtual bat erabiltzea aukeratu nuen Oracle VM VirtualBox Windows 10-rekin (Edge arakatzailerako proba-irudi bat har dezakezu beraz,). SQL Server 2016 makina birtualean instalatu zen eta aplikazioaren datu-basea babeskopiatik leheneratu zen (Instrukzio).
SQL Server-erako sarbidea makina birtual batean konfiguratzea
Ondoren, pauso batzuk eman behar ziren kanpotik SQL Server atzitu ahal izateko:
Suebakirako, gehitu arau bat ataka-eskaerak saltatzeko 1433.
Desiragarria da zerbitzarirako sarbidea Windows autentifikaziotik ez pasatzea, SQL bidez baizik, saioa hasteko eta pasahitza erabiliz (errazagoa da sarbidea konfiguratzea). Hala ere, kasu honetan, gogoratu behar duzu SQL autentifikazioa gaitzen duzula SQL Server propietateetan.
Aukeratu Zereginak -> Sortu scripts oinarri eramangarri baterako.
Hautatu transferitu behar dituzun objektuak edo utzi balio lehenetsia (kasu honetan, script-ak sortuko dira datu-baseko objektu guztientzat).
Zehaztu scripta gordetzeko ezarpenak. Erosoena da script-a Unicode fitxategi bakar batean gordetzea. Orduan, hutsegite kasuan, ez dituzu urrats guztiak berriro errepikatu behar.
Script-a gorde ondoren, jatorrizko SQL Server (bertsio zaharra) exekutatu daiteke beharrezko oinarria sortzeko.
Abisua: Scripta exekutatu ondoren, segurtasun kopiako datu-basearen ezarpenen eta scriptak sortutako datu-basearen arteko korrespondentzia egiaztatu behar duzu. Nire kasuan, ez zegoen COLLATE ezarpenik gidoian, eta horrek porrot bat ekarri zuen datuak transferitzean eta pandero batekin dantzatzean datu-basea birsortzeko gidoi osagarria erabiliz.
Datuen transferentzia
Datuak transferitu aurretik, datu-baseko murrizketa guztien egiaztapena desgaitu behar duzu:
Datuen transferentzia datuak inportatzeko morroia erabiliz egiten da Zereginak -> Inportatu datuak SQL Server-en, non scriptak sortutako datu-basea dagoen:
Zehaztu iturbururako konexio ezarpenak (SQL Server 2016 makina birtualean). Datu iturria erabili dut SQL Server Native Client eta aipatutako SQL autentifikazioa.
Zehaztu helmugaren konexio-ezarpenak (SQL Server 2014 ostalariaren makina).
Ondoren, konfiguratu mapak. Guztiak hautatu behar dira ez irakurtzeko soilik objektuak (adibidez, bistak ez dira hautatu behar). Aukera gehigarri gisa, hautatu "Onartu identitate-zutabeetan txertatzea"halakoak erabiltzen badira. Abisua: bada, hainbat taula hautatzen eta haien jabetza ezartzen saiatzean "Onartu identitate-zutabeetan txertatzea" propietatea dagoeneko hautatutako tauletako batentzat gutxienez ezarri da, elkarrizketa-koadroak adieraziko du propietatea dagoeneko hautatutako taula guztietarako ezarri dela. Gertaera hau nahasia izan daiteke eta migrazio akatsak sor ditzake.
Akatsen bat gertatzen bada, ezarpenak egiaztatzen ditugu, akatsekin sortutako datu-basea ezabatzen dugu, scriptetik birsortzen dugu, zuzenketak egiten ditugu eta datu-transferentzia errepikatzen dugu.
Ondorioa
Zeregin hau nahiko arraroa da eta goiko mugengatik bakarrik gertatzen da. Irtenbide ohikoena SQL zerbitzaria berritzea edo urruneko zerbitzari batera konektatzea da, aplikazioaren arkitekturak ahalbidetzen badu. Hala ere, inor ez dago kalitate txarreko garapenaren kode oinetik eta esku okerretatik salbu. Espero dut argibide hau ez duzula beharko, baina oraindik behar baduzu, denbora eta nerbio asko aurrezten lagunduko dizu. Eskerrik asko zure arretagatik!