• Нарық орнынан дүкенге дейін

  • -

  • Дүкеннен сауда желісіне дейін

  • -

  • Бөлшек саудадан өндіріске дейін

.ldf файлы жүздеген ГБ-қа дейін өсті: журналды қауіпсіз түрде қалай азайтуға және дерекқорды тұрақтандыруға болады

Владимир Вытыщенко
Владимир Вытыщенко

Torgsoft компаниясының сауда автоматизациясы бойынша маманы

Транзакциялар файлының (.ldf) ондаған немесе жүздеген гигабайтқа дейін өсуі SQL Server транзакциялар журналын тазаламайтынын білдіреді. Бұл тікелей қауіп тудырады:

  • дискінің толық толып қалуы,

  • бағдарламаның жұмысының тоқтауы,

  • дерекқордың Recovery Pending немесе Suspect күйлеріне өтуі.

Техникалық қолдау тәжірибесінде .ldf файлы 190+ ГБ-қа дейін өскен жағдайлар тіркелген.

Материал Microsoft SQL Server-пен практикалық жұмыс тәжірибесі бар және дерекқор құрылымындағы өзгерістердің салдарын түсінетін жүйелік әкімшілерге немесе пайдаланушыларға арналған. Барлық әрекеттер өз тәуекеліңізбен орындалады: командаларды қате қолдану деректердің жоғалуына немесе дерекқордың жұмыс істемеуіне әкелуі мүмкін. Кез келген операцияларды орындамас бұрын дерекқордың толық резервтік көшірмесін жасау, дискіде бос орын бар-жоғын тексеру және дерекқорға белсенді қосылымдардың жоқ екеніне көз жеткізу қажет. Әрекеттердің дұрыстығына немесе салдарына сенім болмаса — техникалық қолдауға жүгіну ұсынылады.

Мәселе қашан пайда болады

Бұл жағдай мынадай дерекқорлар үшін тән:

  • ұзақ уақыт регламенттік қызмет көрсетусіз жұмыс істейді,

  • әрекеттер мен құжат өзгерістері журналдары белсенді,

  • дискідегі бос орынды тұрақты бақылаусыз SQL Server Express пайдаланады.

Себебі

.ldf файлы SQL Server журналды босата (truncate) алғанға дейін транзакция жазбаларын сақтайды. Егер:

  • журнал тазаланбаса,

  • тұрақты сервистік процедуралар болмаса,

  • дискіде бос орын жеткіліксіз болса,
    дерекқордың өзі (.mdf) дерлік өзгермесе де, лог шектеусіз өсе береді.

Жеке жағдай — Full қалпына келтіру моделі: бұл режимде журнал автоматты түрде босатылмайды, ал оны тазалау үшін транзакциялар журналының резервтік көшірмесін жасау қажет. Full моделі белгілі бір уақыт нүктесіне дейін қалпына келтіруге мүмкіндік береді, ал Simple — тек толық резервтік көшірмеден қалпына келтіреді. Simple-ге ауысу журналдың автоматты түрде босауына және .ldf көлемінің кішіреюіне әкеледі (онда ағымдағы операцияларға қажет жазбалар ғана қалады).

Шешім (қауіпсіз алгоритм)

1-қадам. Деректерді ішкі тазарту

Логты физикалық қысқартпас бұрын SQL Server өзекті деп санайтын ақпарат көлемін азайту қажет.

Ұсынылады:

  • ескі кезеңдер үшін «Пайдаланушы әрекеттері протоколын» тазарту,

  • «Құжат өзгерістері журналын» тазарту, тек өзекті деректерді қалдыру (мысалы, 2–3 ай),

  • сервистік операцияны орындау
    «Жабылған кезеңдердің статистикаларын жою» (006 коды) — ол ескі құжаттарды физикалық түрде жояды және транзакциялар журналына түсетін жүктемені азайтады.

Себеп-салдар байланысы:
тарихи деректер аз болған сайын → белсенді транзакциялар азаяды → .ldf соғұрлым тиімді қысқарады.

2-қадам. Лог-файлды қысқарту (Shrink)

Ішкі тазартудан кейін файлдың физикалық көлемін азайту орындалады:

  1. SQL Server Management Studio (SSMS) арқылы SQL Server-ге қосылыңыз.

  2. Қажетті дерекқорды таңдаңыз (әдетте TorgSoftDB).

  3. Оң жақ батырма → Tasks → Shrink → Files.

  4. Файл түрі: Log.

  5. Қысқарту процедурасын іске қосыңыз.

Нәтиже:
SQL Server дискідегі артық орындарды деректерді бүлдірмей босатады.

SQL Server Express үшін ерекшеліктер

Тегін редакцияда:

  • .mdf қатаң шектеуге ие:

    • 10 ГБ — SQL Server 2008 R2 және жаңарақ нұсқалар.

    • 4 ГБ — SQL Server 2005.

  • .ldf ресми лимитке ие емес, бірақ:

    • диск толып қалса, SQL Server жұмыс істей алмайды,

    • кез келген операциялар (соның ішінде Torgsoft жаңартуы) қате аяқталуы мүмкін.

Егер дерекқор Suspect күйінде болса

Егер дерекқор Suspect немесе Recovery Pending күйіне өтсе:

  • стандартты Shrink жұмыс істемейді,

  • алдымен арнайы SQL-командалар арқылы дерекқорды авариялық күйден шығару қажет,

  • тек содан кейін логты қысқартуға болады.

Бұл жағдайда тәжірибесіз өз бетіңізше әрекет ету ұсынылмайды.

.ldf жоғалғанда немесе бүлінгенде авариялық қалпына келтіру (деректер жоғалу қаупі)

Тек мына жағдайларда қолданылады:

  • дерекқор іске қосылмайды,

  • .ldf файлы жоқ немесе бүлінген,

  • стандартты тәсілдермен қалпына келтіру мүмкін емес,

  • өзекті резервтік көшірмелер бар немесе деректердің бір бөлігін жоғалту қаупі қабылданған.

Әрекеттер реті:

  1. SQL Server қызметін тоқтатыңыз.

  2. Транзакциялар журналы файлын (.ldf) жойыңыз.

  3. SQL Server-ді іске қосыңыз.

  4. SQL Server Management Studio ішінде орындаңыз:

USE master

GO

sp_configure 'allow updates', 1

RECONFIGURE WITH OVERRIDE

GO

ALTER DATABASE <db_name> SET EMERGENCY, SINGLE_USER

DBCC CHECKDB ('<db_name>', REPAIR_ALLOW_DATA_LOSS)

ALTER DATABASE <db_name> SET ONLINE, MULTI_USER

USE master

GO

sp_configure 'allow updates', 0

GO

Ескертпелер:

  • REPAIR_ALLOW_DATA_LOSS параметрі деректердің бір бөлігін жоғалтуға жол береді.

  • Әдіс .ldf-ті жоспарлы қысқарту үшін қолданылмайды.

  • Қалпына келтіргеннен кейін дерекқор тұтастығын тексеріп, толық резервтік көшіру жасау қажет.

Алдын алу (ұсынылады)

Лог қайта өспеу үшін:

  • тұрақты түрде орындаңыз:
    «Индекстерді қалпына келтіру және қайта ұйымдастыру, статистикаларды жаңарту»,

  • жүйелік дискідегі бос орынды бақылаңыз,

  • диск толуға жақын режимде жұмыс істемеуге тырысыңыз,

  • резервтік көшіруді қосыңыз:
    «Деректер қауіпсіздігі: бұлттағы архив» (057 коды).

  • автоматты кеңейтуге (Autogrowth) назар аударыңыз. SSMS-та дерекқор баптауларында лог файлының өсуіне шектеу қойған дұрыс (мысалы, 5–10 ГБ-қа дейін), сонда ол физикалық түрде бүкіл дискілік кеңістікті «жеп» қоймайды және операциялық жүйенің істен шығуына әкелмейді.

Қорытынды

.ldf өсуі — қате емес, симптом.
Дұрыс реттілік:

  1. ішкі журналдарды тазарту,

  2. ескірген статистикаларды жою,

  3. логты физикалық қысқарту,

  4. тұрақты алдын алу.

Бұл тәсіл жүйені деректерді жоғалту қаупінсіз тұрақтандыруға және мәселенің қайталануын болдырмауға көмектеседі.


Програма обліку товару | Торгсофт



Facebook Instagram YouTube Twitter Google News Apple Podcast SounCloud

Түсініктеме қосу

Түсініктеме қосу
Пікіріңіз үшін рақмет! Ол модератор тексергеннен кейін жарияланады.
Ұқсас мақалалар