Oracle vs SQL Server – Sesti dio

System Metadata

Oracle i Microsoft SQL Server baze podataka imaju veliki broj tabela i drugih objekata kao što su pogledi, funkcije, bazne procedure koji se automatski kreiraju kada se instalira softver za upravljanje bazom podataka i kada se kreira baza podataka. Ove tabele na sistemskom nivou sadrže metapodatke o logičkim i fizičkim atributima o instanci i o bazama podataka koje se hostuju preko njih. U Oracle terminologiji skup ovih tabela se naziva data dictionary dok su u SQL Server terminologiji ove tabele poznate pod imenom system tables. Continue reading

Advertisements

Oracle vs SQL Server – peti dio

Transactional Consistency i Point-in-time Recovery

Microsoft SQL Server i Oracle imaju ugradjen mehanizam za zaštitu korisničkih transakcija. Ideja koja se nalazi iza “transactional consistency” je da se promjene koje se izvrše nad podacima ne upisuju odmah u fajlove na disku operativnog sistema. Umjesto toga, izmjene se upisuju u operativnu memoriju servera u dio koji se naziva buffer cache. Iz buffer cache-a se podaci periodično prenose u fajl na disku u kojem su konkretni podaci za konkretne tabele baze podataka. Pored buffer cache-a, u memoriji servera postoji još jedan buffer. To je log buffer i on je vezan za čuvanje promjena nad podacima koje urade korisnici. Log buffer se koristi za kontinualno i sekvencijalno zapisivanje svih izmjena koje su izvršene nad podacima u bazi podataka. Sadržaj ovog buffera se upisuje u odvojeni – nezavisni fajl baze podataka na disku. Pošto imamo dva nezavisna bafera sa podacima (buffer keš i log buffer keš) postoje i 2 odvojena pozadinska procesa koji upisuju sadržaje ovih bufera  u fizičke fajlove na disku. Log buffer keš se mnogo češće upisuje na disk nego buffer keš. To je zato što je operacija koja izvršava prenos log buffera mnogo brža – log file je obični sekvencijalni fajl kod koga se na njegov kraj dodaju novi slogovi sa podacima o promjenama na tabelama u redosljedu u kojem su se promjene dešavale (uočiti da je prepis iz buffer keša u fajl sa stvarnim podacima mnogo sporiji jer se za taj prepis uvjek mora prvo naći tačna pozicija u fajlu, tačna tabela i slog na koji se upisivanje odnosi i zbog toga se ovaj upis mnogo ređe izvršava) Continue reading

Oracle vs SQL server – Cetvrti dio

Error Log vs Alert Log

SQL Server u svom fajl sistemu održava jedan fajl – tekući log za snimanje informacija o uspješnosti izvršenja određenog skupa operacija nad bazom podataka. Ovaj log uključuje informacije u vezi sa događajima koji su nastali prilikom pokretanja baze podataka, prilikom izvršenja recovery-a, zatim događaje koji su u vezi sa korisničkim aktivnostima, izvršenjem backup-a, aktivnostima koje uzrokuju promjenu konfiguracije baze podataka, događaje koji se odnose na nekorektno prijavljivanje na bazu podataka, razne vrste grešaka i upozorenja itd. Svaki put kada se startuje SQL Server kreira se i novi log file. Ovaj log file je poznat kao SQL Server Error Log. Continue reading

Oracle vs SQL server – Treci dio

Sigurnost baze podataka

Jedna od očiglednih razlika izmedju SQL Servera i Oracle-a na nivou sigurnosti je da je kod SQL Servera pristup bazi podataka dvofazni proces. Na nivou instance, server održava listu korisničkih naloga koji se nazivaju logins. Logins su nalozi kojima su data prava da se povežu na instancu baze podataka. Ipak, da bi pristupio konkretnoj bazi podataka koja je vlasništvo konkretne instance, login nalog treba da se  mapira na korisnički nalog unutar baze podataka. SQL Server login može biti ili lokalni Windows login ili nalog iz aktivnog direktorijuma ili sertifikovani ključ. Nalog može biti i nešto što je potpuno nezavisno od windows-a: DBA administrator može kreirati nalog koji posjeduje svoju vlastitu autentifikaciju preko username/password-a unutar SQL Servera. U varijanti kada se koristi windows-ov nalog, odnosno nalog koji se vezuje za AD Windowsa govorimo o “trusted” tipu nalogu. Ukoliko koristimo nalog kreiran unutar SQL Servera, govorimo o “non-trusted” tipu nalogu. Continue reading

Oracle vs SQL Server drugi dio

StartUp i ShutDown

StartUp i ShutDown su operacije nad bazama podataka koje su različito implementirane kod Microsoft SQL Servera u odnosu na Oracle RDBMS. Kod SQL Servera, ulazi u registry bazi, trace flag-ovi i system configuration vrijednosti imaju ključnu ulogu u načinu realizacije startup-a baze podataka. Pored nekih drugih stvari, tokom procesa startovanja baze se vrši punjenje DLL-ova, kreiraju se memorijske strukture, otvaraju se portovi za listener, startuje se baza podataka i izvršava se (opciono) recovery baze podataka.  Postupak ima odstupanja samo ukoliko se traži praćenje error log-ova. Uobičajeno, DBA bi trebao startovati SQL service ili iz  Control Panela > Services applet (za SQL Server 2000 i stariji), ili iz Configuration Managera (za SQL Server 2005 ili noviji). Možemo imati određeni stepen kontrole u vezi načina na koji se vrši startovanje SQL Servera ukoliko komandu sqlservr.exe izvršimo iz command prompt-a u single user mode-u koristeći  –m switch. U mogućnosti smo i da odaberemo startovanje serverskog procesa sa minimalnom konfiguracijom koristeći  –f switch. Continue reading

Oracle vs SQL Server – prvi dio

Instances, Databases & Tablespaces

Možda najvažnija razlika izmedju Oracle-a i SQL Servera na nivou arhitekture je u shvatanju pojmova Instance i Database.

Instanca u SQL Serveru je pojam koji označava samostalni aplikativni servis koji u sebe uključuje fajlove operativnog sistema, memorijske strukture, pozadinske procese i informacije iz registry-a. Instanca je u SQL Serveru pretstavljena servisom u Windows-u i može se nalaziti u 2 statusa: Running ili Stopped. Kada je u statusu running, instanca zauzima dio serverske memorije i povezuje nekoliko pozadinskih procesa. Continue reading