5.01. Adjuk meg, hogy mikor indult el a jelenleg futó
instancia.
5.02. Az instancia elindulása óta hány
felhasználói bejelentkezés
történt a
rendszerbe?
Hány
tranzakciót hagytak jóvá (commit) es
hányat vontak vissza (rollback) ?
(V$SYSSTAT)
5.03. Mely háttérfolyamatok futnak jelenleg az
alábbiak közül?
(ARC0, DBW0,
PMON, SMON, FMON, LMON)
5.04. Mekkora a log puffer mérete?
Mekkora a shared
pool mérete?
5.05. Maximum hány nyitott kurzort tarthatnak fenn az egyes
sessionok?
Mekkora lehet
maximálisan az SGA terület mérete a
jelenleg futó instanciánál?
Hány
konkurrens tranzakció futását engedi
meg egyidejüleg az adatbáziskezelő?
(V$PARAMETER)
5.06. Kik vannak jelen pillanatban bejelentkezve az
adatbázis-kezelőbe?
Melyik
felhasznaló van legrégebben bejelentkezve
és hány másodperce?
Kik azok, akik
SQL Developer programmal jelentkeztek be?
5.07. Mi a tomx gépen levő adatbázis neve es
mikor lett
létrehozva?
5.08. Melyik adatfájlra vonatkozóan
történt a legtöbb
blokk-olvasási
müvelet
(PHYBLKRD oszlop) az instancia elindulása óta?
5.09. Melyek az adatbázishoz tartozó log
fájlok?
Melyik az amelybe
jelenleg is ír a rendszer?
Melyek az
adatbazishoz tartozo control fájlok?
5.10. A jelenleg telepített adatbázisban
hasznalható-e a
Particionálási opció,
a Bitmap index
opció illetve a Real Application Clusters opció? C7. Az
Oracle tranzakciókezelési
megoldásai Segédanyagok:
> Nikovits Tibor összefoglalói: tranzakciok.txttranz_peldak.txtzarolasok.txt
C7.1.feladat:
- Tranzakció-kezelés
alapjai. COMMIT,
ROLLBACK,SAVEPOINT
- Nyissunk meg egyszerre két SQLPLUS
ablakot vagy az sqldeveloperben
két ablakot úgy,
hogy abban
két külön sessiont nyissunk meg, ami azt
jelenti,
hogy "Connections": legyen
egy tomx1 nevű
és legyen egy tomx2 nevű is.
Nekünk az kell, hogy
legalább
két különböző
tranzakciónk legyen,
ellenőrizzük le: select * from
V$session where
username like 'EHA%';
-
Végezzünk olvasó
és
módosító műveleteket a két
ablakból felváltva.
- Az aktív tranzakciók
futása
közben adjuk meg a rendszerkatalógusok
alapján
a következő
információkat a
saját magunk által futtatott
tranzakciókról.
(Lásd az alábbi
feladatokat itt is: tranz_peldak.txt,
megoldásokkal)
- Melyek az aktiv tranzakciók, mikor
indultak el,
és ki futtatja azokat?
- A tranzakció melyik
utasítást futtatja éppen?
C7.2.feladat:
- Melyik rollback szegmenst
használják
épp az aktív tranzakciók?
- Melyik adatfájlba
írják a
tranzakciók a rollback blokkjaikat?
C7.3.feladat:
- Holtpont
kipróbálása
- Adjunk meg két
utasítássorozatot a
két ablakban úgy, hogy DEADLOCK
alakuljon ki, lásd
például itt: tranz_peldak.txt
(megoldásokat kipróbálni).
C7.4.feladat:
- Az
Oracle
tranzakcióelkülönítési
szintjei
- Adjunk meg két
utasítássorozatot a
két ablakban úgy, hogy az egyik ablak
a következő
hibaüzenetet kapja:
"ORA-08177: Cannot serialize access for
this transaction"
(Tipp: SET TRANSACTION
ISOLATION
LEVEL SERIALIZABLE;)
C7.5.feladat:
- Zárolások
megnézése
- Melyik session milyen
típusú (sor->TX,
tabla->TM) és milyen módú
zárolást tart
fenn éppen? (RS->2, RX->3, S->4,
SRX->5, X->6)
(SID,
USERNAME,
TYPE, LMODE)
C7.6.feladat:
- Melyik session vár épp egy
zárolásra
(SID,
USERNAME,
TYPE,
LMODE, REQUEST),
illetve melyik zárolasra
vár épp
valaki
(SID,
USERNAME,
TYPE,
LMODE, BLOCK)?
C7.7.feladat:
- Milyen régen tartja fenn a rendszer a
zárolasokat, illetve
milyen
régen vár valaki egy
zárolásra?
(SID,
USERNAME,
TYPE,
LMODE, CTIME, REQUEST)
C7.8.feladat:
- Mely objektumokat tartja
zárolás alatt valamelyik session jelen
pillanatban?
C7.9.feladat:
- Derítsük ki (megfelelő
manuális
lock-oló utasítások
segítségével), hogy a
Row Exclusive (RX)
módú
zárolást milyen módú
zárolásokkal egyidejűleg
engedélyezi a rendszer,
és mely
módú zárolások
esetén kell várnia a
későbbi
kérelmezőnek.