mariok posted on listopada 30, 2012 16:24
Nadogradnja 55.58.00 (od 12. rujna 2012.) sadrži bug koji u vrlo specifičnim okolnostima uzrokuje kaskadno ažuriranje stranih ključeva koji odgovara primarnom ključu, što je rezultiralo greškama u referencijalnom integritetu. Bug (greška) se javlja kada se dio varijable primarni ključ mijenja i upućuje na strani (foreign) ključ. Anomalija u MS SQL Serveru uzrokuje problem. Spajanje Stringa s lokalnim varijablama ovisi o trenutnom izvršenju plana, što opet ovisi o mnogim čimbenicima (tablica struktura, indeksi, statistika, određene funkcije, itd.). Također se može dogoditi da upit ponekad djeluje kako je planirano, a ponekad i ne. SQL Server ne proizvodi nikakva upozorenja ili pauze zbog kompatibilnosti unazad, iako je poznato da je rezultat upita non-deterministički. Možete pročitati više o problemu ovdje: https://connect.microsoft.com/SQLServer/feedback/details/606786/concatenation-into-a-scalar-variable-using-linked-server-in-from-clause-fails-when-casting-or-converting-data
Pogođeni su podaci u bazama podataka nadograđeni na 55.58.00, 55.58.10 ili 55.58.11 gdje je spoj primarni ključ (sastavljen od nekoliko polja) bio promijenjen. Takvi podaci se brišu tek nakon druge nadogradnje na jednom od tri problematične verzije, jer mehanizam nadogradnje PANTHEON-a uklanja podatke od siročadi stranih ključeva (orphan foreign key).
Problem se može najvjerojatnije pojaviti u dvije tablice: tHE_LinkMoveItemOrderItem (povezivanje narudžbe i kretanje) i tHE_LinkOrderItemOrderItem (povezivanje narudžbe). Znak za probleme s tim tablicama su netočne alokacije, neotpremljene robe, itd.
Problem se neće dogoditi ako niste nadogradili na 55.58.00 ili 55.58.10. Problem također neće doći do izražaja ako ste nadogradili iz bilo koje verzije prije 55.58.00 na barem 55.58.11 verziju. Nadogradnja 55.58.12 ili kasnije ne uzrokuje anomalije i također dijagnosticira potencijalne anomalije koje bi mogle biti uzrokovane prethodnim verzijama. 55.58.20 upisuje potencijalne anomalije u zapisnik nadogradnje. 55.58.21 (izdan 26. listopada 2012.) izvještava o anomalijama direktno Datalab a to je razlog zašto preporučujemo tu nadogradnju.
Dana 27. rujna 2012. smo primili prva izvješća o neispravnim podacima i počelo je dijagnosticiranje problema. Uzrok je pronađen brzo, tako da smo uklonili verziju 55.58.00 i 55.58.10 te objavili zakrpu 55.58.11 (od 28. rujna 2012.), koji popravljaju anvedenu anomaliju. Dnevnik nadogradnje je pokazao da su time pogođene 192 tvrtke. Mi smo čekali s objavom potpunog objašnjenja kako bi se spriječila nepotrebna zabrinutost među korisnicima i zato što problem nije široko rasprostranjen.
Verzija 55.58.12. (od 9. listopada 2012), kao i kasnije verzije, će tijekom nadogradnje provjeriti postojanje spomenutih anomalija i prijavite bilo kakve probleme u zapisnik o nadogradnji. Pogreške će slati u Datalab tako da ih možemo provjeriti, upozoriti korisnike o mogućnosti pogrešaka te im pomoći riješiti ih.
Mi smo pripremili postupke i alate za rješavanje problema te smo testirali rješenja s nekim tvrtkama. Zahvaljujemo tvrtki T-Ipsilon za pomoć u dijagnostici. Danas imamo potrebne informacije i alate za rješavanje ovog problema u cijelosti.
Preporučujemo vam da nadogradite na najnoviju verziju što je prije moguće, čime se izbjegavaju potencijalni problemi, kao što smo vas obavijestiti na Korisničkim Stranicama čim smo postali svjesni tih problema i izdali zakrpe.
Tu nije bilo mnogo slučajeva i svi su uspješno riješeni, jer složeni ključevi postoje samo u nekoliko tabela (i to samo promjenom takvog ključa dovodi do opisanog problema). Problem se ne može dogoditi ako je strani ključ postavljen »on update cascade«.
Mi Vam preporučamo vraćanje kopije backupa i da od tamo popravite pogođene podatke pomoću ponuđenih upita za nestale zapise Ponuđenim alatima.
SQL upite i upute kako rješiti navedeni problem možete naći ovdje: ftp://ftp.datalab.si/Scripts/555800_555810/
Nama je jako žao za pogreške i probleme koje smo Vam možda uzrokovali. Greške koje rezultiraju gubitkom podataka su vrlo rijetke, ovo je treća u naših 15 godina. Iskreno se nadam da je zadnja.
Dare Rihter, CDO
Andrej Mertelj, predsjednik Uprave
PS: Želimo ukazati na važnost redovite sigurnosne kopije, osobito prije nadogradnje. To uvelike smanjuje utjecaj bilo kakvih anomalija te gubitka podataka i čini obnavljanje podataka puno lakšim, kao jednostavno i brzo vraćanje backupa. Prema našem iskustvu, najbolja praksa za backup je kako slijedi: dnevni backup za posljednjih sedam dana, tjedni backup za posljednjih 30 dana (4 kopija) i mjesečne sigurnosne kopije za prošlu godinu (12 kopija). Ako vam nedostaje kapacitet za posljednjih nekoliko godina, zadržati barem backup za svaki kvartal.
PPS: Molimo unesite valjane adrese e-pošte prilikom nadogradnje. Na taj način, mi ćemo biti u mogućnosti obavještavati Vas o svim bugovima.
Localization: HR
DL WebSites: