Skip to content

Automate, Protect, Optimize – IT Simplified

  • Domov
  • 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

Posted on 20 júla, 20258 mája, 2026 By Martin Hasin Žiadne komentáre na MSSQL transakčné logy – Správa diskového priestoru

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:

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');

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.

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 klaster pre PROXMOX – Kompletný návodCisco Nexus VPC Cluster for PROXMOX – Complete Guide
  • Martin Hasin
    Windows 11 v Azure s Entra ID – Kompletný návodWindows 11 in Azure with Entra ID – Complete Guide
  • Martin Hasin
    Overenie prístupu k Azure SQL – Kompletný návodAzure SQL Access Verification – Complete Guide
  • Martin Hasin
    Veeam Backup Replication v13 Linux Appliance – Kompletný návodVeeam Backup Replication v13 Linux Appliance – Complete Guide
  • Martin Hasin
    Check Point VSX DHCP Relay – Konfigurácia
  • Martin Hasin
    K3s na Raspberry Pi – Od nápadu po funkčný Kubernetes klaster
  • Martin Hasin
    Zálohovanie MinIO S3 s Veeam – Kompletný návod
  • Martin Hasin
    Zálohovanie klientskych staníc – Legislatíva a praktické dôvody
  • Martin Hasin
    Cisco UCS C220 M7 monitoring a logovanie Part 7
  • Martin Hasin
    Cisco UCS C220 M7 vSphere Lifecycle Manager Part 6
  • Martin Hasin
    Cisco UCS C220 M7 VMware sieť a vMotion Part 5
  • Martin Hasin
    Cisco UCS C220 M7 ESXi a vCenter Part 4
  • Martin Hasin
    Cisco UCS C220 M7 sieťová architektúra Part 3
  • Martin Hasin
    HTTPS Inspection v korporátnom prostredí
  • Martin Hasin
    Cisco UCS C220 M7 VMware klaster Part 2
  • Martin Hasin
    Cisco UCS C220 M7 VMware klaster
  • Martin Hasin
    Zálohovanie Microsoft 365 – Prečo cloud nie je zálohovaný
  • Martin Hasin
    Azure API Management
  • Martin Hasin
    Ubuntu Hardened Repository Veeam
  • Martin Hasin
    CIS Benchmark: Štandard pre posilnenie kybernetickej bezpečnosti 2CIS Benchmark: Cybersecurity Hardening Standard Part 2
  • Martin Hasin
    CIS Benchmark
  • Martin Hasin
    Azure Backup SQL s 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 DirectoryHow and Why to Backup Active Directory
  • Martin Hasin
    Zálohovanie Entra ID pomocou Veeam
  • Martin Hasin
    Veeam Backup pre Proxmox VM
  • Martin Hasin
    Zabezpečenie Windows Servera s Veeam
  • Martin Hasin
    Grafana Dashboard pre Veeam
  • Martin Hasin
    Veeam Backup NFS Fileshare
  • Martin Hasin
    VRA Ubuntu Template
  • Martin Hasin
    Azure SQL Server zabezpečenie
  • Martin Hasin
    Azure Storage Account zabezpečenie
  • Martin Hasin
    Microsoft Authenticator
  • Martin Hasin
    Virtual WAN VPN Server
  • Martin Hasin
    VRA Windows vytvorenie šablóny
  • 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 pripojenie Ubuntu
  • Martin Hasin
    DLP ochrana dát v Azure
  • Martin Hasin
    Azure Blob Storage ochrana pred ransomware
  • Martin Hasin
    Azure Cloud zálohovanie
  • Martin Hasin
    Windows Server RDP Brute Force ochrana
  • Martin Hasin
    Azure Private Link VPN
  • Martin Hasin
    Azure Point-to-Site VPN
  • Martin Hasin
    VMware VCSA výmena certifikátu
  • Martin Hasin
    CheckMK Nextcloud plugin
  • Martin Hasin
    Inštalácia CheckMK
  • Martin Hasin
    Check Point zväčšenie partície log
  • Martin Hasin
    VMware ESXi vlastné inštalačné médium
  • Martin Hasin
    VRA Windows 11 šablóna
  • Martin Hasin
    Active Directory NTP server
  • Martin Hasin
    AD AllowNT4Crypto zabezpečenie
  • Martin Hasin
    CentOS Stream 9 šablóna pre VRA
  • Martin Hasin
    Windows DNS a Linux DNS replikácia
  • Martin Hasin
    Inštalácia Active Directory 2022 časť 2
  • Martin Hasin
    Inštalácia Active Directory 2022
  • Martin Hasin
    vCenter VMSA-2021-0028 oprava
  • Martin Hasin
    VMware Coredump Collector
  • Martin Hasin
    Windows VMware disk štatistiky
  • Martin Hasin
    Ubuntu šablóna pre VRA
  • Martin Hasin
    VMware vCenter API príkazy
  • Martin Hasin
    Pridanie ESXi do vCenter
  • Martin Hasin
    Vytvorenie datastore v ESXi
  • Martin Hasin
    Inštalácia VMware ESXi 7
  • Martin Hasin
    Inštalácia VMware vCenter 7
Windows Tags:ayure sql, azure mssql

Navigácia v článku

Previous Post: Cisco UCS C220 M7 monitoring a logovanie Part 7
Next Post: Zálohovanie klientskych staníc – Legislatíva a praktické dôvody

Pridaj komentár Zrušiť odpoveď

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

Search

Archives

  • máj 2026
  • január 2026
  • november 2025
  • október 2025
  • september 2025
  • august 2025
  • júl 2025
  • máj 2025
  • apríl 2025
  • marec 2025
  • február 2025
  • január 2025
  • december 2024
  • november 2024
  • júl 2024
  • jún 2024
  • máj 2024
  • marec 2024
  • február 2024
  • január 2024
  • december 2023
  • jún 2023
  • apríl 2023
  • november 2022
  • október 2022
  • august 2022
  • júl 2022
  • marec 2022
  • február 2022
  • január 2022
  • december 2021
  • november 2021
  • október 2021

Categories

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

Archives

  • máj 2026
  • január 2026
  • november 2025
  • október 2025
  • september 2025
  • august 2025
  • júl 2025
  • máj 2025
  • apríl 2025
  • marec 2025
  • február 2025
  • január 2025
  • december 2024
  • november 2024
  • júl 2024
  • jún 2024
  • máj 2024
  • marec 2024
  • február 2024
  • január 2024
  • december 2023
  • jún 2023
  • apríl 2023
  • november 2022
  • október 2022
  • august 2022
  • júl 2022
  • marec 2022
  • február 2022
  • január 2022
  • december 2021
  • november 2021
  • október 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é Vždy aktívny
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.
  • Spravovať možnosti
  • Správa služieb
  • Spravovať {vendor_count} dodávateľov
  • Prečítajte si viac o týchto účeloch
Zobraziť predvoľby
  • {title}
  • {title}
  • {title}