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.

Kod Oracle-a, startup se odvija u 3 odvojene i veoma precizno definisane faze. Možemo sve ove tri faze izvršiti odjednom jednom komandom ili možemo pozivati svaku pojedinačnu fazu posebnom komandom u izvršenje u zavisnosti od toga u kojoj se trenutnoj fazi podizanja baza podataka nalazi.

Da bi automatski i do kraja startovali Oracle, DBA treba samo da izda jednu komandu iz SQL*Plus-a ili nekog drugog sličnog query alata: STARTUP. U ovom slučaju, proces startovanja Oracle baze podataka će proći automatski kroz sve tri faze i to.

  • Prvo će pročitati Oracle parametar file, kreirati memorijske strukture i pozadinske procese. Ova faza rezultira time da je DB instance kreirana ali baza podataka još nije otvorena.
  • U sljedećoj fazi se vrši tzv mounted baze podataka. Ako je izvršeno mount-ovanje baze, to znači da je Oracle otvorio control file i pročitao njegov sadržaj kako bi odredio lokaciju DB fizičkih fajlova.
  • U trećoj i finalnoj fazi, DB je opened. Ukoliko je prethodno Oracle spuštanje baze podataka prošlo neregularno i ukoliko podaci u fajlovima baze podataka nisu sinhronizovani, prije nego što se Oracle poslednji put “ugasio”, u trećoj fazi podizanja Oracle-a se izvršava recovery operacija. Ova operacija podrazumjeva da će se na nekompletnim transakcijama vršiti rolled back a na kompletnim transakcijama će se vršiti rolled forward podataka. Na kraju ove faze, database files su sinhronizovani i raspoloživi za pristup od strane korisnika.

Kod Oracle-a smo u mogućnosti startovati svaku od prethodno specificiranih faza nezavisno što je jako zgodno u slučaju da imamo problema prilikom pokretanja baze podataka.

Izdajući narednu komandu vršimo samo kreiranje instance:

STARTUP NOMOUNT;

U narednoj komandi, dajemo instrukciju Oracle-u da izvrši punjenje control file-a:

ALTER DATABASE MOUNT;

Jednom, kada je baza podataka “mounted”, možemo izvršiti otvaranje baze izdajući komandu:

ALTER DATABASE OPEN;

Ova tri koraka su ekvivalentna pokretanju SQL servera iz komandnog prompta sa uključenim trace flag-om i sa uključenim nekim od switches-eva.

Kada je riječ o spuštanju baze podataka i kada želimo da normalno zaustavimo SQL Server, u mogućnosti smo da to uradimo iz Windows Control Panela – Services applet (mada se preferira metod koji uključuje Configuration Manager). Zaustavljanje servisa prouzrokuje da se uradi update data file-ova i njihovih zaglavlja u odnosu na stanje memorijskih struktura. Vrši se zatvaranje log entry-a u memoriji i prenošenje njihovog sadržaja u log file-ove na disku. Na kraju se vrši i gašenje  svih konekcija. U mogućnosti smo kod SQL servera da izdamo komandu SHUTDOWN iz  Query Analyzer ili iz Management Studio-a. Jedna od opcija prilikom izdavanja ove komande je da se komanda za spuštanje baze može izdati sa opcijom WITH NOWAIT. Kada se upotrebi ova opcija, SQL Server zaustavlja svoj rad a da prethodno ne vrši nikakva sinhronizovanja podataka u svojim fajlovima. Ovo ima za posljedicu da se prilikom novog pokretanja SQL Servera izvršava rollback transakcija koje su bile nekompletne.

Sasvim očekivano, spuštanje Oracle baze podataka se može takođe izvršiti izdavanjem jedne komande i ukoliko pretpostavljate da je to komanda SHUTDOWN, u pravu ste. Ipak, Oracle-ova SHUTDOWN komanda se može izvršiti sa 4 različite opcije.

  • Ukoliko izvršimo komandu SHUTDOWN ABORT, onda je situacija slična kao kod SQL serverove komande SHUTDOWN WITH NOWAIT. Ovo je ekvivalentno situaciji da se server isključio isključenjem strujnog napajanja. Oracle-u u ovom slučaju nije data mogućnost da izvrši bilo kakvu sinhronizaciju podataka. Fizički fajlovi nisu ažurirani; logovi nisu ispražnjeni niti je njihov sadržaj prenesen na diskove.
  • Izvršavanje SHUTDOWN IMMEDAITE će imati za rezultat da Oracle zatvara sve postojeće konekcije koje nisu dio bilo kakve aktivne transakcije i odbija bilo koji novi zahtjev za novim transakcijama. Postojeće aktivne konekcije sa aktivnim transakcijama će takođe biti zatvorene sa rolled back opcijom. Poslije ovako realizovanih aktivnosti, baza podataka će biti spuštena.
  • Ukoliko želite da sve postojeće aktivne transakcije kod Oraclea regularno završe svoj rad prije nego se izvrši spuštanje baze podataka, možemo izdati komandu SHUTDOWN TRANSACTIONAL. Ova komanda je slična prethodnoj komandi SHUTDOWN IMMEDIATE, ali uz opciju da se sesijama dozvoljava da regularno  kompletiraju svoje aktivne transakcije prije nego se te sesije isključe.
  • Shutdown komanda koju DBA najčešće izvršava je SHUTDOWN NORMAL. Ova komanda takodje ima za posljedicu da se odbijaju svi zahtjevi za novim transakcijama. Ipak, Oracle izvršava shut down samo kada se izvrši zatvaranje svih korisničkih konekcija i kada korisnici urade logged off. Za razliku od drugih shutdown metoda, kod ovog metoda Oracle ne forsira  terminiranje sesija.
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s