Datenbank Snippets
Eine nützliche Sammlung von Datenbank Code Schnipseln für die tägliche Arbeit als System Administrator oder Entwickler
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.
Letzte Voll Sicherung abfragen
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.