EMATOS posted on noiembrie 01, 2012 14:13
Со билдот 55.58.00 од (12.09.12) во кодот за оддржување на референтниот интегритет на податоците е појавена грешка, која во многу ограничени околности предизвика, да системот cascade update погрешно ги ажурира (foreign keys), кои се однесуваат на примарниот клуч, или предизвикуваат неточен референтен интегритет. Грешката се јавува, кога на табелата ќе се смени податокот од примарниот клуч, кој се состои од повеќе од едно поле и го референцира (foreign keys). Проблемот предизвикува аномалии на MS SQL Server. Комбинирањето на низи со помош на локалните промени зависи од моменталниот извршен план (execution plan), што зависи од многу фактори (структура на табелата, индекс, статистика, употреба на одредени функции итн.). Затоа може да се случи понекогаш барањето да работи а друг пат да не работи. Познато е дека SQL Server не создава никакви предупредувања или паузи за постарите верзии, иако се знае дека резултатот од барањето не е детерминистички. Детален опис на причините можете да ги прочитате на следниов линк:
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
Погодени се податоците, во базата на податоци надоградени со верзиите 55.58.00, 55.58.10 или 55.58.11 a во исто време e направена сложена корекција (= во повеќе полиња) на примарниот клуч. Бришење на такви податоци може да се случи со надоградба на било кои од тие верзии, бидејќи механизмот во надоградбата на PANTHEON ги отстранува податоците на (orphan foreign key). Најчесто знак за проблем во овие две табели се неточноста во цврстите резервации, список на неиспорачана стока итн.
Што значи: грешката не мора да се појави ниту во еден облик, ако не било надоградено на верзиите 55.58.00 или 55.58.10. Грешка исто така не се појавува, ако е надоградено со било која верзија пред 55.58.00 на 55.58.11 НАЈМАЛКУ. Надоградба на верзија 55.58.12 и следните, не предизвикуваат аномалии во надоградбата дијагностицираат потенцијални аномалии, кои би можеле да ги предизвикаат ПРЕТХОДНИТЕ верзии. Верзијата 55.58.20 ги евидентира можните неправилности во log на надоградбата. Верзијата 55.58.21 (која излезе во петокот на 26.10.2012) неправилностите се пријавуваат на Даталаб, затоа препорачуваме брза надоградба на оваа верзија.
27.9.2012. ги добивме првите информации за паднатите структури, така да почнавме веднаш со дијагностицирање. Причината за грешката ја откривме брзо, и ги повлековме веднаш верзиите 55.58.00 и 55.58.10, направена е корекција со верзијата 55.58.11 (28.9.12), која ги отстранува овие аномалии.
Со patch 55.58.12 (9.10.12) и со следната надоградба во log на грешки се додадени резултатите од тестовите, со кои при надоградбата се проверува да не дојде до било кои од наведените грешки во податоците. Овој log во случај на грешка се праќа на Даталаб, за да ја провери состојбата и ве предупреди на потенцијалните можни грешки во податоците и да ви помогнеме во отстранување на истите.
Ги припремивме сите процедури за регулирање на тие грешки и одбраните компани ја потврдија точноста на решението. И се заблагодаруваме на фирмата T-Ipsilon зa соработката за дијагностицирањето. Денес ги имаме потребните информации и припремени алатки за автоматско регулирање на тие грешки со 100% сигурност.
Ви препорачуваме веднаш да го надоградите програмот на најновата верзија и така да ги избегнете можностите за појавување на проблемите, како што веќе ве известивме на нашата Корисничка страна во време, кога се откриени овие грешки и patch-ови.
До сега немаше многу случаеви и до сега сите податоци беа успешно организирани, бидејќи составените примарни клучеви постојат на ограничен број на табели (промена на податоците на таквиот клуч е предуслов, да дојде до грешка во податоците). Не е неопходно: за настанување на грешка, во случај ако странскиот клуч е поставен како »on update cascade«. Со тоа прпеорачуваме, да доколку е можно, да направите backup копија и од неа да ја препишете содржината на оштетените табели со помош на припремените упатства, за изгубените записи употребете ги припремените алатки.
SQL скрипти со упатство за помош при решавање на податоците се наоѓаат на ftp нa адреса ftp://ftp.datalab.si/Scripts/555800_555810/
За настанатите грешки и непријатности најискрено се извинуваме. Грешки, кои бришат податоци се многу ретки, ова е трета во 15-годишната историја. Знаеме дека нема да биде и последна, меѓутоа веруваме дека наредната ќе се појави тек за следните 8 години.
Срдечен поздрав и благодарност за разбирањето.
Даре Рихтер, директор за развој
Aндреј Мертељ, извршен директор
П.С.: На ова место апелираме повторно, при надоградба на програмот да се прави редовно архивирање на податоците, како би се обезбедила доволна сигурност на податоците во целина и значително ќе се олесни решавањето на податоците во случај на аномалии, како што е погоре опишано, бидејќи тоа е најбрзиот начин за освежување на податоците во овој случај backup. Правилна backup стратегија на основа на претходните искуства е следнава: дневно backup за последните 7 дена, неделен backup зa последните 30 дена (4 backup-a) и месечни backup-и за минатата година (12 backup-и). Ако нема доволно простор за изминатите години тогаш препорачуваме, да ги сочувате најмалку сите квартални backup-и.
П.П.С.: Ги повикуваме корисниците, да внесуваат валидни меил адреси при надоградувањето на програмот. На тој начин полесно ќе ве известиме за грешките.
Localization: MK
DL WebSites: