Datenbank Snippets

Eine nützliche Sammlung von Datenbank Code Schnipseln für die tägliche Arbeit als System Administrator oder Entwickler

> <

Letzte Voll Sicherung abfragen


Oft kommt es vor, dass man wissen muss wann das letzte Full Backup für alle Datenbanken in einem SQL Server lief. Hilfreich ist dabei das folgende Query welche Ideal auch in Skripten zur automatischen Prüfung verwendet werden kann.


SELECT 
	sdb.name,
	sdb.[filename],
	backup_set_id,
	bs.media_set_id,
	backup_finish_date as LastBackupTime,
	physical_device_name,
	backup_size,recovery_model
FROM master.dbo.sysdatabases sdb
	LEFT JOIN msdb.dbo.backupset bs 
		ON sdb.name = bs.database_name
	LEFT JOIN msdb.dbo.backupmediafamily bmf 
		ON bmf.media_set_id = bs.media_set_id
WHERE 
	sdb.dbid != 2 
	AND [type] = 'D' 
	AND backup_set_id = (
		SELECT TOP 1 backup_set_id 
		FROM msdb.dbo.backupset bs1 
		WHERE bs1.database_name = sdb.name AND [type] = 'D' 
		ORDER BY backup_finish_date DESC
		)
ORDER BY 
	LastBackupTime

Daten Doubletten finden


Im folgenden Beispiel werden die Doppelgänger Einträge ausgegeben inklusive der Anzahl der Vorkommnisse in der aktuellen Tabelle. 

SELECT Spalte1,count(Spalte1) as Vorkommen 
FROM Tabelle1
GROUP BY Spalte1 HAVING ( COUNT(Spalte1) > 1 )

TempDB verschieben


Anfangs benötigt man die existierenden Dateinamen der TempDB Datenbank Datein:

USE tempdb 
GO 
EXEC sp_helpfile 
GO

Ausgabe:

name	fileid	filename	filegroup	size	maxsize	growth	usage
tempdev	1	D:\myData\tempdb.mdf	PRIMARY	2304 KB	Unlimited	1024 KB	data only
templog	2	D:\myLogs\templog.ldf	NULL	512 KB	Unlimited	10%	log only

Den aus dem Query gewonnenen Namen kann man nun im folgenden Statement verwenden:

USE master 
GO 
ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'D:\newLocation\tempdb2005.mdf') 

GO 

ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = 'D:\newLocation\tempdb2005.ldf') 
GO

Beim nächsten Neustart des SQL Servers Dienstes wird die Änderung ausgeführt.


  • 10.01.2019 10:57:37