SQL Server Backup – Msg 3201 Level 16 State 1
Björn Peters
21. Mai 2015

Manchmal sind die einfachsten Dinge die Schwersten 😉
Aber auch die einfachen Dinge im Leben gibt es immer Lösungen, die ich nicht vorenthalten möchte
Auftrag vom Kunden:
„Kopieren Sie bitte die Datenbank XYZ von Produktion in die Test-Umgebung“
Kein Problem, also Backupskript rausgeholt:
/* Backup SingleDB to NetworkShare 23.02.2015 BP Initial V1.0 17.04.2015 BP Servername zum Backup_Filename hinzugefügt 21.05.2015 BP REPLACE(@@SERVERNAME, '\', '_') - benamte Instanzen sorgen für einen Unterordner */ USE [master] GO DECLARE @database_name varchar(100), @Network_Share varchar(512), @backupfile_name VARCHAR(512), @backupdate varchar(8), @SQLCMD nvarchar(512) -- SET Database Name SELECT @database_name = 'Test'; -- Set Network-Path SELECT @Network_Share = '\\Ziel_Server\Backup_Pfad'; -- without Backslash -- generate a backup device and file name SELECT @backupdate = CONVERT(VARCHAR(8), GETDATE(), 112); SET @backupfile_name = @Network_Share + '\' + REPLACE(@@SERVERNAME, '\', '_') + '_' + @database_name + '_' + CONVERT(VARCHAR(8), GETDATE(), 112) + '.bak'; -- drop the backup device from last time IF EXISTS(SELECT * FROM sys.backup_devices where name = 'Network_Share_Device') EXEC master.dbo.sp_dropdevice @logicalname = N'Network_Share_Device'; -- create the backup device / filename EXEC master.dbo.sp_addumpdevice @devtype = N'disk', @logicalname = N'Network_Share_Device', @physicalname = @backupfile_name; -- backup the database to the newly created backup device / filename SET @SQLCMD = N'BACKUP DATABASE [' + @database_name + '] TO [Network_Share_Device] WITH DESCRIPTION = N''Backing up DBNAME to a network share drive'', NOFORMAT, INIT, NAME = N''Backup_DB_BkUp_to_Network_Share'', SKIP, NOREWIND, NOUNLOAD, STATS = 10, CHECKSUM, COPY_ONLY;' print 'Just backing up ' + @database_name + ' to ' + @Network_Share; exec sp_executesql @SQLCMD; -- drop the backup device from last time IF EXISTS(SELECT * FROM sys.backup_devices where name = 'Network_Share_Device') EXEC master.dbo.sp_dropdevice @logicalname = N'Network_Share_Device';
Was soll das? Wieso? Platte ist doch leer (hatte ich extra geschaut)! Pfad ist auch erreichbar!
Also schnell mal Google bemüht… da war dieser KnowlegdeBase Beitrag … die Fehlermeldung deutet auf ein Problem mit der Platte hin und man solle doch mal „Formattieren“… kein Problem, hat aber auch nicht geholfen, also weitersuchen…
Ich hatte schon einen anderen Ablage-Platz gefunden über den ich dann als „Umweg“ das Backup hätte erstellen können, um es dann später umzukopieren.
Manchmal sind die Dinge aber auch so einfach, dass man nicht auf Anhieb daran denkt 😉
Die Datenbank hatte mittlerweile eine Größe erreicht, die so nicht mehr auf die Platte gepasst hätte. 66 GB Datenbank auf 60 GB Platte – schwer vorstellbar, aber warum dann so eine nichts sagende Fehlermeldung.
Mein Gehirn scheint heute nicht so schnell zu sein, eine 66 GB Datenbank muss doch eigentlich auf die Platte passen (wir haben Backup-Compression eigentlich immer aktiviert), hier leider wohl nicht. Schnell nachgeholt und siehe da, das Backup-File ist nur noch 12 GB groß.
Und somit konnte ich den Kunden-Auftrag erfolgreich abschließen.
Just backing up Test to \\Ziel_Server\Backup_Pfad 10 percent processed. 20 percent processed. 30 percent processed. 40 percent processed. 50 percent processed. 60 percent processed. 70 percent processed. 80 percent processed. 90 percent processed. Processed 8289352 pages for database 'Test', file 'Test' on file 1. 100 percent processed. Processed 1113 pages for database 'Test', file 'Test_log' on file 1. BACKUP DATABASE successfully processed 8290465 pages in 562.126 seconds (115.221 MB/sec). Device dropped.
Was lernen wir daraus?
- Backup-Compression einschalten
- Bei nicht laufendem Backup auch mal an die Größe der Datenbank denken 😉
AUTOR
Björn Peters
Björn arbeitet als Senior Consultant mit Schwerpunkt Microsoft Data Platform, SQL Server, PowerShell und Azure SQL. Er unterstützt Kunden bei Betrieb, Migration, Hochverfügbarkeit, Performance-Analyse und Troubleshooting.
Auf SQL aus Hamburg teilt er Erfahrungen aus realen Projekten – praxisnah, technisch und mit Blick auf stabile, nachvollziehbare Lösungen. Neben SQL Server interessiert er sich für Science-Fiction, Backen und Radfahren.
