ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° разрастания Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· самых распространСнных ΠΏΡ€ΠΈ администрировании Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Microsoft SQL Server. Администраторы часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с ситуациСй, ΠΊΠΎΠ³Π΄Π° физичСскоС мСсто Π½Π° дискС заканчиваСтся, хотя сами Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ объСм. Π­Ρ‚ΠΎ происходит ΠΈΠ·-Π·Π° особСнностСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ настройки Ρ€Π΅ΠΆΠΈΠΌΠ° восстановлСния Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этого процСсса ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΉ остановкС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ нСвозмоТности провСдСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ тСхничСскиС аспСкты Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ldf Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΡ… бСзопасного ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ простоС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… находится Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ состоянии. НСобходимо Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ позволят Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ занятоС дисковоС пространство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ цСлостности Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 1Π‘.

ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Π»ΡŽΠ±Ρ‹Ρ… манипуляций ΠΊΡ€Π°ΠΉΠ½Π΅ Π²Π°ΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π”Π°ΠΆΠ΅ Ссли Π²Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π² своих дСйствиях, чСловСчСский Ρ„Π°ΠΊΡ‚ΠΎΡ€ ΠΈΠ»ΠΈ сбой оборудования ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ нСпрСдсказуСмым послСдствиям. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π»ΠΎΠ³ΠΎΠΌ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΎΡ‚ΠΊΠ°Ρ‚Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, поэтому Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ восстановлСния являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ условиСм бСзопасности.

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ разрастания Ρ„Π°ΠΉΠ»Π° ΠΆΡƒΡ€Π½Π°Π»Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ

Π€Π°ΠΉΠ» ΠΆΡƒΡ€Π½Π°Π»Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ (.ldf) Π² SQL Server записываСт ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, происходящСС Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ срСдС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΊΡ€Π°ΠΉΠ½Π΅ высока: ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², обновлСния рСгистров, Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ β€” всС это Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ запись Π² Π»ΠΎΠ³. Если ΠΆΡƒΡ€Π½Π°Π» Π½Π΅ очищаСтся, ΠΎΠ½ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ расти Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ всС доступноС пространство Π½Π° дискС.

Π“Π»Π°Π²Π½ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ Π±Π΅ΡΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ роста ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ являСтся использованиС Ρ€Π΅ΠΆΠΈΠΌΠ° восстановлСния Full (ΠŸΠΎΠ»Π½Ρ‹ΠΉ) Π±Π΅Π· рСгулярного Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. Π’ этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ SQL Server сохраняСт ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° послСднСго бэкапа Π»ΠΎΠ³Π°. Если администратор настроил бэкап Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ Π±Π°Π·Ρ‹ Ρ€Π°Π· Π² нСдСлю, Ρ‚ΠΎ Ρ„Π°ΠΉΠ» Π»ΠΎΠ³Π° Π±ΡƒΠ΄Π΅Ρ‚ расти Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ всСй Π½Π΅Π΄Π΅Π»ΠΈ, аккумулируя ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ записСй.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π Π΅ΠΆΠΈΠΌ восстановлСния Full Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π±Π°Π·Ρƒ Π΄ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Point-in-Time Recovery). Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… Π±Π°Π· 1Π‘ это ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎ.

Π’Π°ΠΊΠΆΠ΅ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Π»ΠΎΠ³Π° Π²Π»ΠΈΡΡŽΡ‚ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Если Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 1Π‘ Π΅ΡΡ‚ΡŒ зависшиС процСссы ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ„ΠΈΠΊΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ (COMMIT) ΠΈ Π½Π΅ ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ (ROLLBACK), SQL Server Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ части Π»ΠΎΠ³Π° ΠΊΠ°ΠΊ Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ для пСрСзаписи. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ бэкапов Ρ„Π°ΠΉΠ» Π½Π΅ сТимаСтся.

πŸ“Š Какой Ρ€Π΅ΠΆΠΈΠΌ восстановлСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² вашСй Π±Π°Π·Π΅ 1Π‘?
Simple (ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ)
Full (ΠŸΠΎΠ»Π½Ρ‹ΠΉ)
Bulk-Logged (Π‘ массовым восстановлСниСм)
НС знаю / НС провСрял

Диагностика Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ сТатия, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС Ρ„Π°ΠΉΠ»Π° ΠΆΡƒΡ€Π½Π°Π»Π°. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ интСрфСйс SQL Server Management Studio (SSMS) прСдоставляСт Π½Π°Π³Π»ΡΠ΄Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½ΠΎ для Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ систСмныС прСдставлСния. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ, какая Ρ‡Π°ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Π° какая Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π°.

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ запрос ΠΊ систСмному ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ sys.database_files, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ… Π² ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π°Ρ…:

USE [Π˜ΠΌΡΠ’Π°ΡˆΠ΅ΠΉΠ‘Π°Π·Ρ‹1Π‘];

GO

SELECT

name AS FileName,

type_desc AS FileType,

size * 8 / 1024 AS SizeMB,

CAST(FILEPROPERTY(name,'SpaceUsed') AS int) * 8 / 1024 AS UsedMB,

(size 8 / 1024) - (CAST(FILEPROPERTY(name,'SpaceUsed') AS int) 8 / 1024) AS FreeMB

FROM sys.database_files;

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ этого запроса ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ физичСским Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Ρ„Π°ΠΉΠ»Π° ΠΈ объСмом занятых Π΄Π°Π½Π½Ρ‹Ρ…. Если ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° FreeMB Π²Π΅Π»ΠΈΠΊΠ°, Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ бСзопасно ΡΠΆΠ°Ρ‚ΡŒ. Π’Π°ΠΊΠΆΠ΅ стоит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ состояниС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π»ΠΎΠ³Π° Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ DBCC SQLPERF(LOGSPACE), которая ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ использования Π»ΠΎΠ³Π° для всСх Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° сСрвСрС.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Log_reuse_wait_desc Π² прСдставлСнии sys.databases. Он ΡƒΠΊΠ°ΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΆΡƒΡ€Π½Π°Π» Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ усСчСн. Если Ρ‚Π°ΠΌ ΡƒΠΊΠ°Π·Π°Π½ΠΎ LOG_BACKUP, Π·Π½Π°Ρ‡ΠΈΡ‚, трСбуСтся бэкап Π»ΠΎΠ³Π° ΠΈΠ»ΠΈ смСна Ρ€Π΅ΠΆΠΈΠΌΠ° восстановлСния. Если ACTIVE_TRANSACTION β€” Π·Π½Π°Ρ‡ΠΈΡ‚, Π΅ΡΡ‚ΡŒ активная транзакция, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ.

Π‘ΠΌΠ΅Π½Π° Ρ€Π΅ΠΆΠΈΠΌΠ° восстановлСния Π½Π° Simple

Π‘Π°ΠΌΡ‹ΠΉ эффСктивный ΠΈ бСзопасный способ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ мСсто для Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ 1Π‘ β€” это ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠ° восстановлСния Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² состояниС Simple (ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ). Π’ этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ SQL Server автоматичСски ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ части ΠΆΡƒΡ€Π½Π°Π»Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ для пСрСзаписи сразу послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ (Checkpoint). Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ бСсконСчный рост Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅.

Для выполнСния этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π°ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²Π° систСмного администратора Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (sysadmin). ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ остановки слуТбы 1Π‘ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ смСны Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. РСкомСндуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ эту ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Π² тСхнологичСскоС ΠΎΠΊΠ½ΠΎ ΠΈΠ»ΠΈ Π² ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ минимальной Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ скрипт для смСны Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΈ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ запуска ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ:

USE master;

GO

ALTER DATABASE [Π˜ΠΌΡΠ’Π°ΡˆΠ΅ΠΉΠ‘Π°Π·Ρ‹1Π‘] SET RECOVERY SIMPLE WITH NO_WAIT;

GO

-- ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° для усСчСния Π»ΠΎΠ³Π°

DBCC SHRINKFILE (N'Π˜ΠΌΡΠ›ΠΎΠ³Π€Π°ΠΉΠ»Π°', 0, TRUNCATEONLY);

GO

β˜‘οΈ ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ смСнС Ρ€Π΅ΠΆΠΈΠΌΠ° восстановлСния

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

ПослС выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ALTER DATABASE Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ прСрываСтся. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ большС Π½Π΅ смоТСтС Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±Π°Π·Ρƒ Π΄ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ сСкунды ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»Π½Ρ‹ΠΌΠΈ бэкапами. Для 1Π‘ это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ стандартная стратСгия Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ восстановлСниС ΠΈΠ· ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ПослС смСны Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π° Simple Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ бэкапа. ΠŸΠ»Π°Π½ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ бэкап сразу послС смСны настроСк.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° физичСского сТатия Ρ„Π°ΠΉΠ»Π° (Shrink)

Π‘ΠΌΠ΅Π½Π° Ρ€Π΅ΠΆΠΈΠΌΠ° восстановлСния ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ пространство ΠΊΠ°ΠΊ свободноС для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования Π²Π½ΡƒΡ‚Ρ€ΠΈ SQL Server, Π½ΠΎ Π½Π΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ физичСский Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° Π½Π° дискС. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ сТатия (Shrink). Π­Ρ‚ΠΎ критичСский этап, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слСдуСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ остороТно.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ сТатия Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡƒΡ‚Π΅ΠΌ пСрСмСщСния страниц Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π° Π² Π½Π°Ρ‡Π°Π»ΠΎ, освобоТдая мСсто Π² хвостС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ отрСзаСтся. Для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² этот процСсс ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ рСсурсоСмким ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ индСксов. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ послС сТатия рСкомСндуСтся провСсти Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ пСрСстроСниС индСксов Π² Π±Π°Π·Π΅ 1Π‘.

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ сТатиС Ρ„Π°ΠΉΠ»Π° ΠΆΡƒΡ€Π½Π°Π»Π°, ΡƒΠΊΠ°Π·Π°Π² ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π°Ρ…. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΆΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π΄ΠΎ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ°, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ 0 ΠΈΠ»ΠΈ ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ пустым Π² мастСрС SSMS:

USE [Π˜ΠΌΡΠ’Π°ΡˆΠ΅ΠΉΠ‘Π°Π·Ρ‹1Π‘];

GO

-- Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΆΡƒΡ€Π½Π°Π»Π° Π΄ΠΎ минимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°

DBCC SHRINKFILE (N'Π˜ΠΌΡΠ›ΠΎΠ³Π€Π°ΠΉΠ»Π°', 1);

GO

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ основныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ DBCC SHRINKFILE ΠΈ ΠΈΡ… влияниС Π½Π° процСсс:

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ОписаниС РСкомСндация для 1Π‘
target_size Π–Π΅Π»Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° Π² ΠœΠ‘ Π£ΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ с запасом 10-20% ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…
NOTRUNCATE ΠžΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ мСсто, Π½ΠΎ Π½Π΅ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ ОБ НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠ΅ мСста Π½Π° дискС
TRUNCATEONLY ΠžΡ‚Π΄Π°Ρ‚ΡŒ свободноС мСсто Π² хвостС Ρ„Π°ΠΉΠ»Π° ОБ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ послС смСны Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π° Simple
EMPTYFILE ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ всС Π΄Π°Π½Π½Ρ‹Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Волько ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π»ΠΎΠ³Π°
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ фрагмСнтация послС сТатия?

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ сТатия Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ страницы Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄ΡƒΡ‚ записаны Π½Π° дискС Π½Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π° вразброс. Π­Ρ‚ΠΎ сниТаСт ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ чтСния. Для устранСния Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ALTER INDEX ALL ON... REORGANIZE.

НС рСкомСндуСтся ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΆΡƒΡ€Π½Π°Π»Π° рСгулярно Π² автоматичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅ (Ρ‡Π΅Ρ€Π΅Π· Π°Π²Ρ‚ΠΎ-сТатиС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…). Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ постоянной Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ сниТСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ систСмы. Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΎΠ²ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ навСдСнию порядка ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ€Π΅Π΄ΠΊΠΎ ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ Π² Π½ΠΎΡ‡Π½ΠΎΠ΅ врСмя.

Настройка автоматичСского роста ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ сТатия Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ автоматичСского роста Ρ„Π°ΠΉΠ»Π° (Autogrowth), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ SQL Server ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π½Π° 10% ΠΈΠ»ΠΈ Π½Π° фиксированный малСнький Ρ€Π°Π·ΠΌΠ΅Ρ€ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1 ΠœΠ‘). Для высоконагруТСнных Π±Π°Π· 1Π‘ рост Π½Π° 1 ΠœΠ‘ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ тысячи Ρ€Π°Π·, Ρ‡Ρ‚ΠΎ сильно Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ диск.

ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ стратСгиСй являСтся установка фиксированного шага роста, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 512 ΠœΠ‘ ΠΈΠ»ΠΈ 1 Π“Π‘. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Ρ„Π°ΠΉΠ»Ρƒ расти ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌΠΈ порциями, сниТая Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° подсистСму Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°. Π’Π°ΠΊΠΆΠ΅ стоит ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π°, Ссли это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ΄Π½Π° ошибка Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ»Π° вСсь диск.

ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· интСрфСйс SSMS: ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Π½Π° Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Бвойства -> Π€Π°ΠΉΠ»Ρ‹. Π’ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ АвтоприращСниС/ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ установитС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ По 1024 ΠœΠ‘. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° дискС Π΅ΡΡ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π² свободного мСста, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰ΠΈΠΉ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π»ΠΎΠ³Π° Π² нСсколько Ρ€Π°Π·.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Windows (PerfMon) для отслСТивания счСтчика"SQLServer:Databases -> Log File(s) Size (KB)". Π Π΅Π·ΠΊΠΈΠΉ рост Π³Ρ€Π°Ρ„ΠΈΠΊΠ° сигнализируСт ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ мСсто закончится.

РСгулярный ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ пространства Π½Π° дисках Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ€ΡƒΡ‚ΠΈΠ½Ρ‹ администратора. НастройтС оповСщСния Π² SQL Server Agent, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ письмо, Ссли свободноС мСсто Π½Π° дискС Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΠ°Π΄Π°Π΅Ρ‚ Π½ΠΈΠΆΠ΅ 15%. Π­Ρ‚ΠΎ даст врСмя Π½Π° Ρ€Π΅Π°ΠΊΡ†ΠΈΡŽ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±Π°Π·Π° ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ Π² Ρ€Π΅ΠΆΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния ΠΈΠ»ΠΈ остановится.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ способы ΠΈΡ… устранСния

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π»ΠΎΠ³Π°ΠΌΠΈ 1Π‘ администраторы часто ΡΠΎΠ²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ приводят ΠΊ Π΅Ρ‰Π΅ большим ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ. Одной ΠΈΠ· самых ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Ρ… являСтся ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» .ldf Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊ Windows ΠΏΡ€ΠΈ остановлСнной слуТбС SQL. ΠŸΡ€ΠΈ запускС слуТбы Π±Π°Π·Π° ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ Π² Ρ€Π΅ΠΆΠΈΠΌ Suspect (ΠŸΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ), ΠΈ для Π΅Ρ‘ восстановлСния потрСбуСтся слоТная ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° пСрСсоздания ΠΆΡƒΡ€Π½Π°Π»Π° с ΠΏΠΎΡ‚Π΅Ρ€Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ….

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° распространСнная ошибка β€” Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ сТатия Π² Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ врСмя Π½Π° ΠΆΠΈΠ²ΠΎΠΉ Π±Π°Π·Π΅. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ DBCC SHRINKFILE являСтся ΠΎΠ΄Π½ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ. Она ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ Ρ‚ΠΎΡ€ΠΌΠΎΠ·Π° Π² Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 1Π‘, Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΎΠ² соСдинСний. ВсСгда ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° Π½ΠΎΡ‡Π½ΠΎΠ΅ врСмя.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π½Π΅ удаляйтС Ρ„Π°ΠΉΠ»Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ T-SQL ΠΈΠ»ΠΈ инструмСнты SSMS для управлСния структурой Π‘Π”.

Если послС сТатия Ρ„Π°ΠΉΠ» снова быстро растСт, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. Π’ 1Π‘ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ΠΎ зависшим Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ, ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠΌ с Π²Ρ‹Π±ΠΎΡ€ΠΊΠΎΠΉ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² записСй ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ написанным внСшним ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ. Анализ прСдставлСний sys.dm_exec_requests ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ Π²ΠΈΠ½ΠΎΠ²Π½ΠΈΠΊΠ°.

πŸ’‘

Π—ΠΎΠ»ΠΎΡ‚ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ администратора 1Π‘ Π½Π° SQL: Π Π΅ΠΆΠΈΠΌ восстановлСния Simple + фиксированный шаг роста Ρ„Π°ΠΉΠ»Π° + рСгулярныС ΠΏΠΎΠ»Π½Ρ‹Π΅ бэкапы = ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° Π±Π΅Π· разрастания Π»ΠΎΠ³ΠΎΠ².

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

МоТно Π»ΠΈ ΡΠΆΠ°Ρ‚ΡŒ Π»ΠΎΠ³ Π±Π΅Π· остановки Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 1Π‘?

Π”Π°, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ смСны Ρ€Π΅ΠΆΠΈΠΌΠ° восстановлСния ΠΈ сТатия Ρ„Π°ΠΉΠ»Π° (DBCC SHRINKFILE) Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ (online). ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π±Π°Π·Π΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ сТатия ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒΡΡ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ сниТСниС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ·-Π·Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΈ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° диск.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ„Π°ΠΉΠ» Π»ΠΎΠ³Π° Π½Π΅ сТимаСтся Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° послС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ SHRINK?

Π€Π°ΠΉΠ» ΠΆΡƒΡ€Π½Π°Π»Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ структуру Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² (VLF). SQL Server Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΆΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» мСньшС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Если Π² Π½Π°Ρ‡Π°Π»Π΅ Π»ΠΎΠ³Π° находится активная транзакция ΠΈΠ»ΠΈ трСбуСтся для Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, сТатиС остановится Π½Π° этой Π³Ρ€Π°Π½ΠΈΡ†Π΅.

БСзопасно Π»ΠΈ ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ восстановлСния с Full Π½Π° Simple?

Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π±Π°Π· 1Π‘ это бСзопасно ΠΈ Π΄Π°ΠΆΠ΅ рСкомСндуСтся. Π’Ρ‹ тСряСтС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ восстановлСния Π΄ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ сСкунды (Point-in-Time), Π½ΠΎ сохраняСтС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ восстановлСния Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ послСднСго ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ бэкапа. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ свСТая полная копия ΠΏΠ΅Ρ€Π΅Π΄ смСной.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ, какая транзакция ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ ΡƒΡΠ΅Ρ‡Π΅Π½ΠΈΡŽ Π»ΠΎΠ³Π°?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ запрос ΠΊ динамичСскому ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ sys.dm_db_log_space_usage ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ DBCC OPENTRAN. Они ΠΏΠΎΠΊΠ°ΠΆΡƒΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ самой старой Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, которая ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΆΡƒΡ€Π½Π°Π» ΠΎΡ‚ очистки.

НуТно Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±Π°Π·Ρƒ, Ссли Π»ΠΎΠ³ занял вСсь диск?

НСт, пСрСсозданиС Π±Π°Π·Ρ‹ Π½Π΅ трСбуСтся. Π”Π°ΠΆΠ΅ Ссли диск Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ Π½Π° 100%, освободитС Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ мСста (ΡƒΠ΄Π°Π»ΠΈΠ² Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ Π°Ρ€Ρ…ΠΈΠ²Ρ‹), ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΊ сСрвСру ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ смСны Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π° Simple ΠΈ сТатия, ΠΎΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅.