Posted By: medved (A~z na v~eky Mikov~ce.) on 'CZdatabases'
Title:     Sybase ASE a trans. log
Date:      Mon Apr  9 16:48:39 2001


Ahoj,

Ta chyba ve vyse popsanych mailech vypada, ze skuutecne cpete data do master 
databaze a ty dojde misto v transakcnim logu.

TGransakcni log je to nejdulezitejsi, co v serveru mate. Obsahuje zaznam 
provedenych operaci modifikujicich data vcetne danych dat.

To znamena, ze pomoci stare kopie dat a aktualniho tran. logu se muzete 
dostat do posledniho stavu databaze.

Kdyz provadite nejaky insert nebjinou DML (Data Manipulation Language) 
operaci, tak se nejdrive nacte dana datova stranka z disku (pokud neni v 
cache) a zapise se zaznam do transakcniho logu a zmeni se hodnota dat na 
strance v cache (pameti). A to je vse.
Ke zmene datove strance na disku dojde nekdy pozdeji - az bude mit server cas 
neho az udelate checkpoint. Teprve pote se zmeni data na disku.

Transakcni log ma v sobe tedy zaznam vsech DML operaci - az na "minimalne 
logovane operace" - to je to bcp in a "select into" - v techto pripadech se 
do logu zapise pouze text prikazu a nikoliv nahravana data - proto je bcp tak 
rychle, ale neni urceno pro bezny provoz - spise pro administratora.

Z vyse uvedeneho je jasne, ze traakcni log neustale roste - zkracuje se 
standardne pri zalohovani - a to jak pri plnem dumpu (data+log), tak pri 
inkrementalnim (jen log). Dale muzete zkracovat log manualne a to pomoci dump 
tran withtruncate only nebo pomoci db option truncate log on checkpoint - 
POTOM ALE MUSITE DELAT PLNE DUMPY PRI ZALOHOVANI! Jinak nedostanete 
konzistentni zalohu.

Protoze je tranaskcni log tak dulezity musite jej hlidat - mate moznost 
vytvorit ulozenou procedury sp_tresholdaction, ktera se automaticky spusti, 
pokud uz v transakcnim logu zbyde jen x% mista. Potom muze administrator bud 
zvetsit databazi (pridat misto pro log) nebo se podivat do tabulky 
master..syslogshold ktera transakce trva tak dlouho, ze zabranuje zkraceni 
logu (pri dumpu/checkpointu).

Jo a kazda databaze ma svuj transakcni log - muze byt na stejnem device jako 
data, ale je doporucovano jej umistit na jiny !hardwarovy disk - z 
vykonnostnich a bezpecnostnich duvodu.

A posledni poznamka - kazdy login do ASE muze mit nastavenu defaultni 
databazi, ke ktere se pripoji hned po prihlaseni do ASE. Ostatni databaze 
muze pouzivat pres use dbname ci jejich tabulky etc. pres dbname.user.object . 

Bye

Medved

Si vis pacem, para bellum.

Search the boards