Skip to content
Virtualall

Virtualall

Automate, Protect, Optimize – IT Simplified

  • Home
  • Windows
    • ActiveDirectory
    • DNS
  • VMware
    • Automation
    • vSphere
    • Horizon
  • Proxmox
  • Checkpoint
  • CheckMK
  • Veeam
  • Azure
  • English (US)English (US)
  • SlovenčinaSlovenčina
  • Toggle search form
MSSQL transakčné logy – Správa diskového priestoru

MSSQL Transaction Logs – Disk Space Management

Posted on July 20, 2025September 11, 2026 By Martin Hasin No Comments on MSSQL Transaction Logs – Disk Space Management

Transakčné logy v SQL Serveri sú kľúčovým prvkom databázového systému, no ich význam a správa býva často podceňovaná. Každá databáza v SQL Serveri má svoj logický záznamový súbor (s príponou .ldf), ktorý uchováva informácie o všetkých zmenách vykonaných nad databázou vrátane vkladania, úprav a mazania údajov. Tieto logy slúžia primárne na zabezpečenie konzistencie dát a umožňujú tzv. “point-in-time recovery”, teda obnovenie databázy do konkrétneho časového bodu v prípade havárie.

Znie to užitočne a aj je. Problém nastáva vtedy, keď tieto logy nikto nezálohuje, nesleduje alebo ich neobmedzí. Bez údržby a správneho nastavenia recovery modelu môže log narastať prakticky donekonečna. V produkčných prostrediach, kde bežia veľké importy, ETL úlohy alebo hromadné operácie, sa veľkosť transakčného logu môže vyšplhať na stovky gigabajtov, ba dokonca niekoľko terabajtov, čím zahlcuje diskový priestor a znižuje výkon systému.

Našťastie existujú riešenia. SQL Server ponúka rôzne režimy obnovy (FULL, SIMPLE, BULK_LOGGED), z ktorých každý má vplyv na správanie transakčných logov. V prípade, že nevyužívate možnosť časového obnovenia databázy, môžete logovanie obmedziť prechodom do SIMPLE recovery modelu. Alternatívne, ak zostanete pri FULL, stačí pravidelne zálohovať logy čím sa ich veľkosť prirodzene obmedzí.

Recovery modely v SQL Serveri: Čo určujú a prečo na nich záleží

SQL Server podporuje tri hlavné recovery modely: FULL, SIMPLE a BULK_LOGGED. Tieto režimy určujú, ako SQL Server zaznamenáva transakcie do logov a aké možnosti obnovy databázy poskytuje.

1. FULL recovery model

Tento režim uchováva každú transakciu až dovtedy, kým nie je vykonaná záloha logu. Poskytuje najvyššiu úroveň ochrany dát umožňuje obnoviť databázu na presný časový bod. Je nevyhnutný v produkčných prostrediach, kde je kritická kontinuita prevádzky.

Nevýhoda:
Ak sa pravidelne nezálohujú transakčné logy, .ldf súbor rastie donekonečna, čo vedie k zahlteniu disku.

2. SIMPLE recovery model

Transakčné logy sú priebežne orezávané po skončení transakcie a checkpointu sa uvoľní ich miesto. Obnova databázy je možná len na posledný plný backup, nie na konkrétny čas.

Výhoda:
Nepotrebuješ zálohovať logy, logy nezaberajú veľa miesta.
Nevýhoda:
Nie je možná “point-in-time” obnova.

3. BULK_LOGGED recovery model

Ide o kompromis medzi FULL a SIMPLE. Pri hromadných operáciách (napr. BULK INSERT, SELECT INTO) sa používa minimalizované logovanie. Môže sa použiť pre výkon počas veľkých dávok, ale stále vyžaduje zálohovanie logov.


🧠 Ktorý recovery model použiť?

ScenárOdporúčaný recovery model
Produkčný systém s kritickými dátamiFULL
Vývojové/testovacie prostredieSIMPLE
ETL server počas dávkového spracovaniaBULK_LOGGED alebo SIMPLE
Reportingové databázySIMPLE

Keď logy prerastú systém: praktický príklad:

🧠 Ktorý recovery model použiť?

Riešenie: ako zmenšiť logy a zabrániť ich rastu

Pred akoukoľvek zmenou je dobré mať prehľad o tom, v akom režime sú vaše databázy. Spusť si tento jednoduchý dotaz:

SELECT name AS Databaza, recovery_model_desc AS Rezim
FROM sys.databases
WHERE name NOT IN ('master', 'model', 'msdb', 'tempdb');
Riešenie: ako zmenšiť logy a zabrániť ich rastu

Automatické riešenie: Skript na prepnutie recovery režimu a zmenšenie logu

Tento skript:

  • Nájde log súbor a pokúsi sa ho zmenšiť na 100 MB.
  • Preskočí systémové databázy.
  • Pre každú databázu nastaví SIMPLE recovery režim.
DECLARE @dbname NVARCHAR(128)
DECLARE @logfile NVARCHAR(128)
DECLARE @sql NVARCHAR(MAX)

DECLARE db_cursor CURSOR FOR
SELECT name FROM sys.databases
WHERE name NOT IN ('master', 'model', 'msdb', 'tempdb')

OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @dbname

WHILE @@FETCH_STATUS = 0
BEGIN
    PRINT '---- Spracovavam databazu: ' + @dbname

    -- Nastavenie SIMPLE recovery modelu
    SET @sql = 'ALTER DATABASE [' + @dbname + '] SET RECOVERY SIMPLE WITH NO_WAIT'
    EXEC (@sql)

    -- Ziskanie nazvu LOG suboru
    SET @sql = '
        SELECT @logfile_out = name 
        FROM [' + @dbname + '].sys.database_files 
        WHERE type_desc = ''LOG'''
    
    EXEC sp_executesql @sql, N'@logfile_out NVARCHAR(128) OUTPUT', @logfile_out=@logfile OUTPUT

    IF @logfile IS NOT NULL
    BEGIN
        PRINT '  → Zmensujem logovy subor: ' + @logfile

        SET @sql = 'USE [' + @dbname + ']; DBCC SHRINKFILE ([' + @logfile + '], 100)'
        EXEC (@sql)
    END
    ELSE
    BEGIN
        PRINT '  × Nepodarilo sa ziskat logovy subor pre databazu: ' + @dbname
    END

    FETCH NEXT FROM db_cursor INTO @dbname
END

CLOSE db_cursor
DEALLOCATE db_cursor

Odporúčania

  • Produkčné databázy ponechaj v FULL režime, ale zabezpeč pravidelné zálohovanie logov.
  • Vývojové, testovacie a reportingové databázy nastav na SIMPLE režim.
  • Automatizuj zálohovanie logov cez SQL Agent alebo PowerShell (napr. každú hodinu).
  • Logy shrinkuj výnimočne, iba ak narástli abnormálne – pravidelné shrinkovanie znižuje výkon.

Nastavenie maximálnej veľkosti transakčného logu je možné jednoducho vykonať cez SSMS GUI, kde pre každú databázu zvlášť nastavíš, koľko GB môže log zaberať. Odporúča sa nastaviť realistickú hranicu podľa charakteru databázy – pre menšie databázy napríklad 1–2 GB, pre väčšie produkčné databázy podľa odhadovaného objemu transakcií. Dôležité je zároveň zabezpečiť pravidelné zálohovanie logov, inak môže log rýchlo naraziť na svoj limit a spôsobiť výpadok.

Odporúčania

Súvisiace návody

  • Windows Server RDP Brute Force ochrana
  • Zabezpečenie Windows Servera s Veeam
  • CIS Benchmark
Martin Hasin
Martin Hasin
CEO at mhite S.R.O. | martin.hasin@gmail.com | Website | + postsBio

Odborník na kybernetickú bezpečnosť, správu Azure Cloud a VMware onprem. Využíva technológie, ako Checkmk a MRTG, na monitorovanie siete a zvyšovanie efektívnosti a bezpečnosti IT infraštruktúry. Kontakt: hasin(at)mhite.sk

  • Martin Hasin
    VRA Ubuntu 26.04 Server Template — Kompletná šablóna pre vRealize Automation
  • Martin Hasin
    Cisco Nexus VPC Cluster for PROXMOX – Complete Guide
  • Martin Hasin
    Windows 11 in Azure with Entra ID – Complete Deployment Guide
  • Martin Hasin
    Azure SQL Access Verification – Complete Authentication Guide
  • Martin Hasin
    Veeam Backup Replication v13 Linux Appliance – Complete Guide
  • Martin Hasin
    Check Point VSX DHCP Relay – Configuration
  • Martin Hasin
    K3s on Raspberry Pi – From Idea to Functional Kubernetes Cluster
  • Martin Hasin
    MinIO S3 Backup with Veeam – Complete Guide
  • Martin Hasin
    Client Workstation Backup – Legislation and Practical Reasons
  • Martin Hasin
    Cisco UCS C220 M7 Monitoring and Logging Part 7
  • Martin Hasin
    Cisco UCS C220 M7 vSphere Lifecycle Manager Part 6
  • Martin Hasin
    Cisco UCS C220 M7 VMware Network and vMotion Part 5
  • Martin Hasin
    Cisco UCS C220 M7 ESXi and vCenter Part 4
  • Martin Hasin
    Cisco UCS C220 M7 Network Architecture Part 3
  • Martin Hasin
    HTTPS Inspection in Corporate Environment
  • Martin Hasin
    Cisco UCS C220 M7 VMware Cluster Part 2
  • Martin Hasin
    Cisco UCS C220 M7 VMware Cluster
  • Martin Hasin
    Microsoft 365 Backup – Why Cloud Is Not Backed Up
  • Martin Hasin
    Azure API Management
  • Martin Hasin
    Ubuntu Hardened Repository Veeam
  • Martin Hasin
    CIS Benchmark: Štandard pre posilnenie kybernetickej bezpečnosti 2
  • Martin Hasin
    CIS Benchmark
  • Martin Hasin
    Azure SQL Backup with Veeam
  • Martin Hasin
    SNIA Data Protection Best Practices
  • Martin Hasin
    Veeam monitoring CheckMK
  • Martin Hasin
    Azure Automation
  • Martin Hasin
    Veeam Hardened Repository
  • Martin Hasin
    Ako a prečo zálohovať Active Directory
  • Martin Hasin
    Entra ID Backup with Veeam
  • Martin Hasin
    Veeam Backup for Proxmox VM
  • Martin Hasin
    Windows Server Security with Veeam
  • Martin Hasin
    Grafana Dashboard for Veeam
  • Martin Hasin
    Veeam Backup NFS Fileshare
  • Martin Hasin
    VRA Ubuntu Template
  • Martin Hasin
    Azure SQL Server Security
  • Martin Hasin
    Azure Storage Account Security
  • Martin Hasin
    Microsoft Authenticator
  • Martin Hasin
    Virtual WAN VPN Server
  • Martin Hasin
    VRA Windows Template Creation
  • Martin Hasin
    Azure REST API Reset Analysis Services
  • Martin Hasin
    Azure Purview Data Security
  • Martin Hasin
    Azure Office 365 Data Security
  • Martin Hasin
    Azure Elasticsearch Log Server
  • Martin Hasin
    Azure SQL Server Export BACPAC
  • Martin Hasin
    Azure Communication Services Email
  • Martin Hasin
    Backup Azure Fileshare Duplicati
  • Martin Hasin
    Azure Key Vault Backup
  • Martin Hasin
    Azure Fileshare Mount Ubuntu
  • Martin Hasin
    DLP Data Protection in Azure
  • Martin Hasin
    Azure Blob Storage Ransomware Protection
  • Martin Hasin
    Azure Cloud Backup
  • Martin Hasin
    Windows Server RDP Brute Force Protection
  • Martin Hasin
    Azure Private Link VPN
  • Martin Hasin
    Azure Point-to-Site VPN
  • Martin Hasin
    VMware VCSA Certificate Replacement
  • Martin Hasin
    CheckMK Nextcloud Plugin
  • Martin Hasin
    CheckMK Installation
  • Martin Hasin
    Check Point Log Partition Resize
  • Martin Hasin
    VMware ESXi Custom Installation Media
  • Martin Hasin
    VRA Windows 11 Template
  • Martin Hasin
    Active Directory NTP Server
  • Martin Hasin
    AD AllowNT4Crypto Security
  • Martin Hasin
    CentOS Stream 9 Template for VRA
  • Martin Hasin
    Windows DNS and Linux DNS Replication
  • Martin Hasin
    Active Directory 2022 Installation Part 2
  • Martin Hasin
    Active Directory 2022 Installation
  • Martin Hasin
    vCenter VMSA-2021-0028 Fix
  • Martin Hasin
    VMware Coredump Collector
  • Martin Hasin
    Windows VMware Disk Statistics
  • Martin Hasin
    Ubuntu Template for VRA
  • Martin Hasin
    VMware vCenter API Commands
  • Martin Hasin
    Adding ESXi to vCenter
  • Martin Hasin
    Creating Datastore in ESXi
  • Martin Hasin
    VMware ESXi 7 Installation
  • Martin Hasin
    VMware vCenter 7 Installation
Windows Tags:ayure sql, azure mssql

Post navigation

Previous Post: Cisco UCS C220 M7 Monitoring and Logging Part 7
Next Post: Client Workstation Backup – Legislation and Practical Reasons

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Search

Archives

  • May 2026
  • January 2026
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • July 2024
  • June 2024
  • May 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • June 2023
  • April 2023
  • November 2022
  • October 2022
  • August 2022
  • July 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021

Categories

  • ActiveDirectory
  • Automation
  • Azure
  • CheckMK
  • Checkpoint
  • DNS
  • Linux
  • Proxmox
  • Uncategorized
  • Veeam
  • VMware
  • vSphere
  • Windows

Archives

  • May 2026
  • January 2026
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • July 2024
  • June 2024
  • May 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • June 2023
  • April 2023
  • November 2022
  • October 2022
  • August 2022
  • July 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021

Copyright © 2021 Martin Hasin.

Powered by PressBook WordPress theme

Spravujte súhlas so súbormi cookie
Na poskytovanie tých najlepších skúseností používame technológie, ako sú súbory cookie na ukladanie a/alebo prístup k informáciám o zariadení. Súhlas s týmito technológiami nám umožní spracovávať údaje, ako je správanie pri prehliadaní alebo jedinečné ID na tejto stránke. Nesúhlas alebo odvolanie súhlasu môže nepriaznivo ovplyvniť určité vlastnosti a funkcie.
Funkčné Always active
Technické uloženie alebo prístup sú nevyhnutne potrebné na legitímny účel umožnenia použitia konkrétnej služby, ktorú si účastník alebo používateľ výslovne vyžiadal, alebo na jediný účel vykonania prenosu komunikácie cez elektronickú komunikačnú sieť.
Predvoľby
Technické uloženie alebo prístup je potrebný na legitímny účel ukladania preferencií, ktoré si účastník alebo používateľ nepožaduje.
Štatistiky
Technické úložisko alebo prístup, ktorý sa používa výlučne na štatistické účely. Technické úložisko alebo prístup, ktorý sa používa výlučne na anonymné štatistické účely. Bez predvolania, dobrovoľného plnenia zo strany vášho poskytovateľa internetových služieb alebo dodatočných záznamov od tretej strany, informácie uložené alebo získané len na tento účel sa zvyčajne nedajú použiť na vašu identifikáciu.
Marketing
Technické úložisko alebo prístup sú potrebné na vytvorenie používateľských profilov na odosielanie reklamy alebo sledovanie používateľa na webovej stránke alebo na viacerých webových stránkach na podobné marketingové účely.
  • Manage options
  • Manage services
  • Manage {vendor_count} vendors
  • Read more about these purposes
Zobraziť predvoľby
  • {title}
  • {title}
  • {title}