ORACLE archivne logy (2)

Kluvanek Martin kluvanek na tesnet.cz
Čtvrtek Říjen 16 17:38:15 CEST 2003


Pretoze sa zda ze zase nefunguje GATE mezdi databases2linux.cz a NEWSovou 
verziou, tak si dovolujem sem dat i kopiu z NEWS:
Dobry den.
Pokial to tu este niekto cita, tak by som bol VELMI rad keby mi dal radu.
Mam Oracle 9i , na nom 24h denne bezi nejaky system zberu dat.
Od istej doby sa mi zvacsil objem (frekvencia) ukladania archivnych logov
niekolkonasobne.
Zacinam mat podozrenie na jeden proces ktory neustale (kazdych 10s) zmaze vsetky
zaznamy (asi 50) v jednej tabulke a znovu ich naplni.
Myslel som, si, ze by som tu tabulku ulozil do tablespace kde je vypnute 
logovanie (i s jedinym indexom)
ale na archivne logy to nemalo ziaden vplyv.
Pritom tie archivne subory (ked sa podivam do suboru rucne hexa editorom)su plne 
textovych retazcov, ktore sa vyskytuju len v insertoch tykajucich sa jedine 
tejto tabulky (predpokladam, ze selecty ktore nemenia data sa neloguju)

Tabulka:
create table MSE.ZARIZENI_AKT_PROV_STAV
(
   LINE_NUM           NUMBER(10) not null,
   ZAR_DRUH           CHAR(30) not null,
-- atakdale....
)
tablespace MSENOLOG
   pctfree 10
   initrans 1
   maxtrans 255
   storage
   (
     initial 64K
     minextents 1
     maxextents unlimited
   );
alter table MSE.ZARIZENI_AKT_PROV_STAV
   add primary key (LINE_NUM)
   using index
   tablespace MSENOLOG
   pctfree 10
   initrans 2
   maxtrans 255
   storage
   (
     initial 64K
     minextents 1
     maxextents unlimited
   );
-- Create/Recreate check constraints
alter table MSE.ZARIZENI_AKT_PROV_STAV
   add check (Typ_zaznamu in ('I','A','a'));

Pricom tablespace ma nastavene taketo hodnoty:
TABLESPACE_NAME, MSENOLOG,
BLOCK_SIZE, 8192,
INITIAL_EXTENT, 65536,
MIN_EXTENTS, 1,
MAX_EXTENTS, 2147483645,
MIN_EXTLEN, 65536,
STATUS, ONLINE,
CONTENTS, PERMANENT,
LOGGING, NOLOGGING,
FORCE_LOGGING, NO,
EXTENT_MANAGEMENT, LOCAL,
ALLOCATION_TYPE, SYSTEM,
SEGMENT_SPACE_MANAGEMENT, AUTO


Cize nastavene je
PERMANENT (po korektnom restarte by som rad vysiel z dat pred shutdown) 
NOLOGGING (po havarii DB by som si data vytvoril znovu a nie z arch.logov)
Toto je vypis z developeru ako to vidi v zivej databazi on, generacne scripty su 
trochu jednoduchsie.


??Robim niekde chybu?


 > Pokud jsem dobre cetl dokumentaci, tak klauzule LOGGING a NOLOGGING se
 > vztahuje
 > pouze na logovani DDL prikazu s tabulkou (napr. ALTER TABLE), pro tzv.
 > direct-path
 > INSERT a pro SQL*Loader. Vypnuti logovani klasickych DML jsem nenasel
 > (tim netvrdim, ze to nejde).

Tam sa pouziva akurat DELETE a insert...
Lenze niektore dokumenty tvrdia, ze capture proces zachytava prikazy 
INSERT,DELETE..... a ked mu cez NOlogging poviem, tak nezachytava...
Inde som sa docital, ze indexy idu do logu vzdy...
??????

To je ale divne, pretoze neviem naco to NOLOGGING potom je.
Neviam ako na to ked po havarii nepotrebujem nic rekonstruovat, staci mi znovu 
vytvorit tabulku a zacat data plnit znova.

A co CONTENS=TEMPORARY (ci aky je opak PERMANENT?)
Podla ma tie data potom drzi stale LEN  v pamati a po restarte session to bude 
prazdne???


 > Klauzule na urovni tablespace je pouze default
 > hodnota klauzule LOGGING pro nove vytvorene objekty a nema zadny vliv na logovani
 > zmen objektu v tablespace.
Ale ja som tie objekty zalozil az potom, ked som vytvoril ten tablespace s 
nastavenim NOLOGGING

 >
 >
 >>??Je v Oracle nejaky analyzator archivneho logu?
 >
 >
 >
 > Je, jmenuje se LogMiner. Blize o nem v administratorske prirucce.

Tak sa nanho mrknem, ale podozrenie na proces mam dost silne, ide len o to ako 
ho donutit, aby nelogoval INSERTY a DELETY v par vybranych tabulkach... :-((
Zatial dik za radu.

-- 
Martin Kluvanek
ved.odd. vyvoje (head of development department)
TES s.r.o
Testovani Energetickych Systemu (Testing of Energetical Systems)

Prazska 597
674 01 Trebic
Czech republic
tel:568 8384 28  (+420 5688384 28)
fax:568 8384 27  (+420 5688384 27)
homepage: http://www.tesnet.cz




Další informace o konferenci Test