MASTER schéma – vládce instalací UIS Ing. Aleš Kutín kutin@uikt.mendelu.cz Univerzitní informační systém V., Svojanov 2006
Obsah Úvod, aktuální stav DDL synchronizace DML synchronizace Speciality Problémy, co zbývá Diskuze, dotazy Univerzitní informační systém V., Svojanov 2006
Aktuální stav tři UISy (MZLU, STUBA, TUZVO) 7 databází (3 produkční, 2 vývojové, 2 testovací) probíhající práce na globalizaci UIS na všech vstvách lokalizace pro jednotlivé VŠ, importy dat vývoj nových subsystémů denně požadavky na změny Univerzitní informační systém V., Svojanov 2006
DDL synchronizace synchronizace datových struktur (DDL = Data Definiton Language) patří sem též veškerý programový kód na straně DB (PL/SQL) struktury: tabulky, integritní omezení, sekvence indexy, synonyma, privilegia, pohledy PL/SQL: procedury, funkce, balíky triggry, typy Univerzitní informační systém V., Svojanov 2006
DDL synchronizace fáze: základní jednotka = dávka 1. příprava tabulek a spol. 2. příprava kódu 3. řazení 4. aplikace základní jednotka = dávka vše ukládáno v DB, nová schémata: MASTER – v hlavní DB na MZLU SYNC – na každé synchronizované DB Univerzitní informační systém V., Svojanov 2006
Příprava tabulek základní prostředek – porovnání data dictionary primární a závislé DB postup po jednotlivých objektech (tabulky, indexy, IO, sekvence, …): 1. načtení dat z obou DB 2. průchod primární, dohledávání v závislé, kontrola změn 3. nové objekty do závislé 4. rušení starých v závislé – co zbyde podmínkou správného chodu je dodržování určitých zásad při zakládání objektů v primární DB čištění primární DB před implementací podporuje i pokročilejší volby (partitions, FCB indexy, IOT, LOBy apod.) – vše co používáme Univerzitní informační systém V., Svojanov 2006
Příprava kódu opět porovnání stavu primární – závislá postupuje se po jednotlivých typech objektů detekce změn – kontrolní součty (hashvalue) generované ze zdroj. kódu procedur a funkcí při každé změně je objekt přezaložen zde se řeší i pohledy kompletní zdrojový kód přenášen jen při změně/založení Univerzitní informační systém V., Svojanov 2006
Řazení dávky elementární DDL operace z kroků 1. a 2. nelze dělat v libovolném pořadí příklady: přidání sloupce do tabulky, pak přidání indexu referenční integrita mezi novými/rušenými tabulkami vypracování pořadí jednotlivých typů operací (CREATE, ALTER, DROP) pro jednotlivé typy netriviální problém s ref. integritou vyřešen oddělením IO od tabulek změny v PL/SQL – relativně nezávislé na pořadí (nutná rekompilace) zůstává několik nedořešených situací Univerzitní informační systém V., Svojanov 2006
Aplikace dávky metadata DDL dávky přenesena z MASTER od SYNC schématu na závislé DB (spolu s dalšími částmi) – zatím aplikováno přímo z hlavního UIS MZLU aplikace dávky na všechny závislé DB – zatím vždy jen na DB, na které byla vytvořena při aplikaci se logují chyby, možnost přeskočit zatím dost “poloruční” (hlavně vytváření úvodní čisté DB) čistý UIS = přes 13 000 DDL příkazů Univerzitní informační systém V., Svojanov 2006
Speciality ve strukturách MASTER schematu lze definovat několik typů výjimek: nesynchronizovaný objekt (jen v primární DB) částečně synchronizovaný objekt (jen v některých závislých) objekt existující jen v závislé DB vazba UIS na okolní subsystémy (specifická pro každou instalaci řešeno pomocí tzv. protéz – další spec. schéma PROTEZY – a synonym synonymum buď na skutečný objekt, nebo na protézu, evidence je v MASTER Univerzitní informační systém V., Svojanov 2006
DML synchronizace synchronizace dat (DML – Data Modification Language) typy tabulek (podrobně analyzováno loni): fixní číselníky národní číselníky běžné tabulky semifixní entity Univerzitní informační systém V., Svojanov 2006
DML synchronizace evidence všech tabulek v MASTER nutná u každé tabulky evidován typ synchronizace, jméno a typ sekvence, další spec. údaje při implementaci zjištěny další typy (podtypy): kombinace fixní/nesynch. – jen úvodní import ručně plněná – úvodní import, nutná pro provoz, specifická závislá – referenční integritou na jiné po vytvoření čisté DB úvodní DDL dávkou následuje skript na „úvodní nahrnutí“ následují pravidelné DML aktualizace Univerzitní informační systém V., Svojanov 2006
Aktualizace fixních číselníků 1. způsob – „simple“ pro aktualizaci malých tabulek číselníky v pravém slova smyslu max. stovky (tisíce) záznamů základní datové typy sloupců (ne LOBy) „typická“ sturktura – ID, ZMENENO, ZMENIL podtyp – kvazifixní (např. pohlaví) – pro zrychlení lze kontrolu vypnout mechanismus – podobný DDL – po tabulkách načtení dat, spárování dle ID, detekce změn, přidávání nových, na konci výmaz neaktuálních záznamů řešení referenčních závislostí – triviálně pomocí pořadí Univerzitní informační systém V., Svojanov 2006
Aktualizace fixních číselníků 2. způsob – „hash“ pro tabulky s LOB sloupci nelze přenášet celý obsah a porovnávt při hledání změn tabulka doplněna o sloupec HASHV – kontrolní součet (hashvalue) celého řádku synch. skript načítá ID a HASHV, přenos vlastních dat pouze při změnách HASHV plněno triggerem v současnosti pouze u obrázků Univerzitní informační systém V., Svojanov 2006
„Konfigurační“ tabulky speciální případ fixního číselníku, kombinace s nesynchronizovanou tabulkou stejné záznamy s mírně odlišnými vlastnostmi například tituly na Slovensku (PhD. x Ph.D.) typicky některé šablony (různá práva, subjekty) dodatečná evidence sloupců a odchylných hodnot v jednotlivých řádcích a instalacích synchronizace klasicky jako „simple“ fixní číselníky Univerzitní informační systém V., Svojanov 2006
Polosynchronizované tabulky část záznamů společná, část pouze na jedné instalaci dosud nikde neimplementováno, problémy: jednoznačný identifikátor (ID?, SYSID?) navazující tabulky nutnost zavedení dodatečných sloupců nutnost úpravy aplikací v UIS vytipovány tabulky tohoto typu maximální snaha převést na jiný typ synchronizace zatím úplný sync, nebo jen úvodní naplnění Univerzitní informační systém V., Svojanov 2006
Speciality některé subsystémy řešeny speciálními prostředky mimo klasickou synchronizaci řízení UIS – evidence v MASTER pro všechny instalace, kopírovací skript joby (DB cron) – evidence v MASTER designy – úvodní import + skript pro aktualizaci vybraného designu „ruční“ zveřejnění PL/SQL objektu v budoucnu snaha tyto „výjimky“ minimalizovat Univerzitní informační systém V., Svojanov 2006
Problémy malá automatizovanost nutnost ručních zásahů, kontroly značná roztříštěnost jenom částečné využití struktur MASTER a SYNC aktualizace vždy jen jedné instalace chybějící vazba na navazující operace (zveřejňování skriptů, modulů, compile schématu, restart webu) nedokončená kategorizace tabulek semifixní entity – chybějící mechanismus Univerzitní informační systém V., Svojanov 2006
Závěrem za necelý rok bylo provedeno mnoho práce zbývá provést ještě mnoho definitivnímu dokončení brání nedostatek času Univerzitní informační systém V., Svojanov 2006
Děkuji za pozornost. Dotazy ? Univerzitní informační systém V., Svojanov 2006