Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03577.jsonl.gz/2893

Heute wurde ich mit verwaisten Bändern konfrontiert
Wenn du in der SCDPM Konsole einen Report über das Tape Management erstellen lässt, fällt dir auf, dass “verwaiste” Bänder in der SCDPM Datenbank vorhanden sind. Dies sind Bänder, welche vom SCDPM Server beschrieben wurden, sich aber nicht mehr in der Library befinden und auch keine gültigen Backup’s gespeichert haben.
Wie findest du die verwaisten Bänder?
Öffne hierzu die SCDPM Konsole und wechsle in den Reporting Teil.
Erstelle einen Band Report. In meinem Beispiel für die nächsten 4 Wochen.
Auf der 2 Seite des Reports findest du die verwaisten Bänder.
Ich zeige dir in diesem Beispiel das Band mit dem Tape Barcode “TAPE000F”. Wenn du nun dieses Band entfernen möchtest, musst du die Bezeichnung vom Band kopieren. In diesem Beispiel ist das “File Backup-LT-1Weeks-Copy0-00000010″
Wie kannst du nun das Band aus der Datenbank entfernen?
Sichere die SCDPM Datenbank!
Öffne hierzu die SQL Management Konsole, auf welchem die SQL Datenbank für den SCDPM Server betrieben wird. Öffne auf der SCDPM Datenbank ein neues Query.
Bitte kontrolliere kurz, ob du auch die korrekte Datenbank ausgewählt hast.
Kopiere anschliessend das untenstehende Script.
———- START COPY HERE ————-
— overdue tapes
— for clarity, set up the parameter as a variable
declare @paramTapeLabel as nvarchar(256)
set @paramTapeLabel = N’SAMPLE_TAPE_LABEL_NAME’
— keys
declare @vMediaId as guid
declare @vGlobalMediaId as guid
— if the delete gives trouble, add keyset after cursor
declare cur_label cursor
for select MediaId, GlobalMediaId
from tbl_MM_Media
where label = @paramTapeLabel;
open cur_label
while (0 = 0)
begin
fetch next from cur_label into @vMediaId, @vGlobalMediaId
— test for being done
if @@fetch_status <> 0 break;
print ‘Deleting MediaId = ‘ + cast(@vMediaId as varchar(36))
— do a set of deletes atomically
begin transaction;
delete from tbl_MM_TapeArchiveMedia
where MediaId = @vMediaId;
delete from tbl_MM_MediaMap
where MediaId = @vMediaId;
delete from tbl_MM_ArchiveMedia
where MediaId = @vMediaId;
delete from tbl_MM_Global_ArchiveMedia
where MediaId = @vGlobalMediaId;
delete from tbl_MM_Global_Media
where MediaId = @vGlobalMediaId;
delete from tbl_MM_Media
where current of cur_label;
commit transaction;
end
close cur_label
deallocate cur_label
————– END COPY HERE ———————-
Ersetze nun in der Zeile “set @paramTapeLabel = N’SAMPLE_TAPE_LABEL_NAME'” den “SAMPLE_TAPE_LABEL_NAME” mit dem Tape Label “File Backup-LT-1Weeks-Copy0-00000010“.
Das sieht dann so aus.
Führe das Script anschliessend aus.
Nach erneutem ausführen des Reports ist das Band aus der Datenbank entfernt. Wiederhole den Schritt für jedes weitere Band.
Soweit so gut. Was ist jetzt aber, wenn im Tape Label Sonderzeichen vorhanden sind und das Script nicht ausgeführt werden kann? Aus welchen Gründen auch immer die Sonderzeichen gewählt wurden
In meinem Beispiel verwende ich die Sonderzeichen ‘?!
Test’s Sonderzeichen?!-LT-1Days-Copy0-00000001
Nach einem erfolgreichen Backup auf das Band werden die Sonderzeichen im Band Namen geführt.
Wenn du nun das verwaiste Band mit dem Script aus der Datenbank löschen möchtest, sieht das Resultat des Scripts dann so aus.
Da das gleiche Zeichen im Namen des Tape Label’s vorhanden ist wie der SQL Server zur Eingrenzung des Textes braucht, kommt es hier zu einem kleinen Konflikt. Wie kann dieser nun gelöst werden. Der einfachste Weg ist, verwende das Sonderzeichen im Namen der Protection Groups nicht. Der zweite Weg.
Nur zur Kontrolle. Wechsle auf die Table “tbl_MM_Media” auf der SCDPM Datenbank und suche das Label mit dem Sonderzeichen.
Ich ändere nun das SQL Script. Beim Namen des Tape Label’s ergänze ich das Sonderzeichen ‘ mit einem weiteren ‘ Zeichen. Somit ist der SQL Server mit Script wieder einverstanden und entfernt das verwaiste Band aus der Datenbank.
Führe das Script nochmals aus.
und das Band wurde erfolgreich entfernt.
Philipp