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