SQL Server Backup – Msg 3201 Level 16 State 1

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 😉
Björn arbeitet in Hamburg als Datenbank-Administrator und Head of Competence für MS SQL und mySQL. Er nimmt regelmäßig an den PASS Regionalgruppen Treffen in Hamburg, den Veranstaltungen der PASS wie SQLSaturday und SQLGrillen teil und er organisiert in Hamburg das Azure Meetup. Er interessiert sich neben den Themen rund um den SQL Server, Powershell und Azure für Science-Fiction, Snowboarden, Backen 😉 und Radfahren.