Bonjour,
Devenant DBA dans ma boite sans avoir été formé, j'apprends sur le tas.
Depuis deux semaines le segment log de notre base de production se remplit doucement.
De ce que j'ai compris, même si les codes sont propres (avec les commit/rollback bien gérés) il n'est pas anormal qu'une log se remplisse petit à petit.
L'option "truncate log on checkpoint" permet de la vider à chaque checkpoint naturellement.
Seulement sur notre base, cette option n'est pas activée. De mes lectures, j'en déduis deux raisons :
- on a des tables proxy dans les deux sens donc pas bien d'activer cette option dans ce cas.
- on a des dumps journaliers de la base et on veut garder le journal propre pour un retour possible.
Pouvez-vous me confirmer mon interprétation svp ?
Là pendant que je vous parle, la log continue à se remplir et si je fais un :
j'obtiens rien. Normal ? (un sp_who montre plein de process par contre bien sur).select b.name,h.* --a faire sur master
from sysdatabases b, syslogshold h
where b.dbid = h.dbid
Le soir vers 22h un batch kill les process users et deux seuils d'alerte pour sp_thresholdaction sont activées (la proc ne fait que nous envoyé un mail et suite à ce mail on regarde et fait un DUMP TRAN <base> WITH TRUNCATE_ONLY ou dump tran <Base> with no_log si c'est la merde).
De ce que je comprends, en killant les process, la log va se dévider. Donc normalement aucune intervention hormis quand un batch extraction gourmand blinde et dans ce cas on tappe le dump tran.
De base et en ayant lu http://fadace.developpez.com/ase/log/, je me dis que je peux faire un DUMP TRAN <base> WITH TRUNCATE_ONLY sans courrir de risque quand je le sens. Mais pourriez-vous me dire si j'agis bien ?
Merci de votre aide.
Partager