SQL Server’da Always On Yapısındaki Veritabanlarında Log Dosyalarının Küçültülmesi

Herkese merhaba,

Bu yazıda SQL Server’da Always On yapısındaki veritabanlarında Log dosyalarının küçültülmesi ile ilgili bilgi vermeye çalışacağım.

SQL Server’da bazı durumlarda Always On yapısındaki veritabanlarında Log dosyalarını küçültülmek isteyebilirsiniz.

Aşağıdaki kodu kullanarak siz de bu işlemi rahatlıkla yapabilirsiniz.

USE [master];
SET NOCOUNT ON

IF OBJECT_ID('tempdb..#ao_databases') IS NOT NULL
	DROP TABLE #ao_databases
CREATE TABLE #ao_databases (
	[primary] VARCHAR(255)
   ,[ag_name] VARCHAR(255)
   ,[db_id] INT
   ,[db_name] VARCHAR(255)
)
INSERT INTO #ao_databases
	SELECT
		'primary' = sdhags.[primary_replica]
	   ,'ag_name' = sags.[name]
	   ,'db_id' = sd.[database_id]
	   ,'db_name' = sadc.[database_name]
	FROM sys.dm_hadr_availability_group_states sdhags
	INNER JOIN [master].sys.availability_groups sags
		ON sdhags.[group_id] = sags.[group_id]
	INNER JOIN [master].sys.availability_databases_cluster sadc
		ON sags.[group_id] = sadc.[group_id]
	INNER JOIN [master].sys.databases sd
		ON sadc.[database_name] = sd.[name]
	WHERE [primary_replica] = @@servername
	ORDER BY sdhags.[primary_replica]
	, sags.[name]
	, sd.[database_id]
	, sadc.[database_name]

DECLARE @ao_shrinkfile VARCHAR(MAX)
SET @ao_shrinkfile = ''
SELECT
	@ao_shrinkfile = @ao_shrinkfile +
	'use [' + [db_name] + '];' + CHAR(10) +
	'backup log [' + [db_name] + '] to disk=''NUL:'' with no_checksum, continue_after_error;' + CHAR(10) +
	'checkpoint;' + CHAR(10) +
	'dbcc shrinkfile (' + CAST(smf.[file_id] AS VARCHAR) + ', emptyfile);' + CHAR(10) + CHAR(10)
FROM #ao_databases aod
JOIN [master].sys.master_files smf
	ON aod.[db_id] = smf.[database_id]
WHERE smf.[type] = '1'

SELECT
	*
FROM #ao_databases

SELECT
	*
FROM #ao_databases aod
JOIN [master].sys.master_files smf
	ON aod.[db_id] = smf.[database_id]
WHERE smf.[type] = '1'

EXEC (@ao_shrinkfile)

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

127 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!