Zum Inhalt wechseln


Foto

SQL Server 2005 - Backup auf Netzlaufwerk


  • Bitte melde dich an um zu Antworten
17 Antworten in diesem Thema

#1 Muelli

Muelli

    Board Veteran

  • 533 Beiträge

 

Geschrieben 09. Januar 2009 - 20:43

Moin moin,

Richten derzeit bei uns in der Domäne einen SQL Server 2005 ein. Die Domäne ist eine Gemischte aus einem 2k3 und einem 2k DC. Soweit funktioniert auch alles gut.
Nun wollen wir gerne die Backupfunktion des SQL einrichten, wobei das Datenbank Backup auf einen anderen Rechner gesichert werden soll. Und hier fangen die Probleme an. Der SQL akzeptiert keine Netzwerk- oder UNC Pfade. Nach genauerer Lektüre des Handbuches kam heraus, dass der SQL nur auf lokalen oder gemappten Laufwerken sichern kann. Also den angedachten Speicherort auf dem anderen Server als Netzlaufwerk auf dem SQL Server eingerichtet. Hat aber auch nicht geholfen. Es kommen entweder Fehlermeldungen, dass das entsprechende Laufwerk nicht gefunden wurde oder die entsprechenden Berechtigungen fehlen. Die Berechtigungen und Freigaben auf dem Netzwerkspeicherort wurden testweise auf "Jeder darf alles" gesetzt, nachdem das Setzen der Berechtigungen für die SQL eigenen Gruppen nicht ausreichte.
Aber auch mit dem Runtersetzen der Rechte konnte der SQL nicht auf dem Netzlaufwerk sichern.
Geht dies überhaupt oder was muss man noch bedenken?

Gruß

Jörg

#2 NilsK

NilsK

    Expert Member

  • 12.457 Beiträge

 

Geschrieben 09. Januar 2009 - 21:07

Moin,

mach halt zwei Schritte draus. Sichere erst lokal und kopiere die Datei dann auf den anderen Server. Am besten mit einem Task, der mit einem Domänenkonto läuft.

Das hat dann auch den Vorteil, dass das Backup nicht fehlschlägt, wenn was mit der Netzwerkverbindung nicht stimmt.

Gruß, Nils

Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!


#3 Muelli

Muelli

    Board Veteran

  • 533 Beiträge

 

Geschrieben 10. Januar 2009 - 09:21

Moin Nils,

ja, das ist dann unsere Ausweichlösung. Aber es muss doch mittlerweile bei jedem Backup möglich sein, dieses ohne Kopfstände auch auf einem Netzlaufwerk sichern zu können. Was nützt mir ein Backup auf der gleichen Maschine, wenn diese abraucht?

Gruß
Jörg

#4 Dukel

Dukel

    Board Veteran

  • 9.308 Beiträge

 

Geschrieben 10. Januar 2009 - 11:13

Dafür gibts Agenten von allen möglichen Backup Systemen.

#5 NilsK

NilsK

    Expert Member

  • 12.457 Beiträge

 

Geschrieben 10. Januar 2009 - 13:53

Moin,

siehe Dukels Antwort. Abgesehen davon, finde ich das überhaupt keinen "Kopfstand". Die Lösung ist simpel, zuverlässig und kostet nichts extra.

Wenn man wollte, könnte man ja auch remote sichern, indem man dem Server per iSCSI ein Remote-Laufwerk zuweist. Das Problem bei der Ansprache eines normalen Netzlaufwerks ist ja, dass man dort CIFS spricht. Das ist für Streaming-Backup unggeeignet.

Gruß, Nils

Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!


#6 Lian

Lian

    Moderator

  • 19.991 Beiträge

 

Geschrieben 10. Januar 2009 - 14:04

Hallo,

ich rate ebenfalls eher davon ab. Das SQL Backup führt man am besten "to Disk" aus. Dieses später "to Tape" oder auf ein Netzlaufwerk zu sichern, ist eher gängig.
Das direkte Sichern auf ein komprimiertes Volume ist zB. auch nicht ratsam - eine SQL Sicherung ist robust, aber auch wählerisch ;)
–––
Microsoft MVP [Cloud and Datacenter Management - High Availability]

#7 Muelli

Muelli

    Board Veteran

  • 533 Beiträge

 

Geschrieben 10. Januar 2009 - 16:21

Hallo Leute,

Dank für Eure Hinweise. Die anderen Varianten sind mir schon klar; und auf's selbe Laufwerk sichern und dann woandershin kopieren ist auch klar. Dazu bitte keine weiteren Tipps. Das ist aber nicht der Punkt hier.
Wenn im Handbuch des SQL beschrieben steht, dass er auch auf gemappte Laufwerke sichern kann und dies aber nicht macht, möchte ich gern verstehen, warum. Warum findet er das Netzlaufwerk nicht bzw. welche Rechte/Berechtigungen muss ich für den SQL auf dem Netzlaufwerk setzen, damit dieser, wenn er unter dem System Konto auf der SQL Maschine gestartet wurde, auch auf der anderen Maschine Zugriff bekommt.
Gibt es vielleicht jemanden der seinen SQL auf ein gemapptes Laufwerk sichern lässt und der mal seine diesbzgl. Einstellungen posten kann?

Gruß

Jörg

#8 NilsK

NilsK

    Expert Member

  • 12.457 Beiträge

 

Geschrieben 10. Januar 2009 - 17:06

Moin,

mir war immer so als könne SQL Server nicht direkt auf ein Netzlaufwerk sichern. Da ich das auch - wie beschrieben - für gefährlichen ****sinn halte, habe ich mich nie näher damit beschäftigt. Kannst du den Abschnitt aus dem "Handbuch" (welches Handbuch?) mal posten?

Wenn du deinen Backuptask tatsächlich mit dem Dienstkonto ausführst, muss entweder das Computerkonto auf den Share Zugriff haben (wenn es das Systemkonto ist - hab ich nicht im Kopf) oder es geht eben genau deshalb nicht (wenn es "Local Service" ist - lokal ist lokal). Aber man kann einen Task ja auch mit anderen Berechtigungen starten.

Gruß, Nils

Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!


#9 phoenixcp

phoenixcp

    Expert Member

  • 5.481 Beiträge

 

Geschrieben 10. Januar 2009 - 18:30

mir war immer so als könne SQL Server nicht direkt auf ein Netzlaufwerk sichern

100 % ACK

Entweder ich (und Lian als auch Nils) haben war verpasst, oder diese Bemerkung in dem aktuell noch nicht näher genannten Buch ist schlicht und einfach falsch.
MfG

Carsten Paul
MCSEBoard.de SQL Blog
Kein Support per PN, dafür ist das Forum da!

In Memory of LukasB

#10 NilsK

NilsK

    Expert Member

  • 12.457 Beiträge

 

Geschrieben 10. Januar 2009 - 18:46

Moin,

okay, ich habe gerade mal selbst die Onlinedoku von SQL 2005 bemüht (die von 2008 hab ich grad nicht da). SQL Server kann tatsächlich direkt in einen Share sichern. (Trotzdem würde ich das aus den genannten Gründen nicht tun.)

Hier ein paar der wichtigen Hinweise aus der 2005-Onlinehilfe. Man beachte vor allem den Kontext, in dem die Laufwerke stehen müssen (die Mappings müssen dem SQL-Dienstkonto zugeordnet sein). Und man beachte den Hinweis mit den Sicherungsproblemen. CIFS ist nun mal kein Streamingprotokoll.

Sichern in eine Datei auf einer Netzwerkfreigabe

Damit SQL Server auf eine Datei auf einem Remotedatenträger zugreifen kann, muss das SQL Server-Dienstkonto Zugriff auf die Netzwerkfreigabe haben. Dazu gehören auch Berechtigungen, die erforderlich sind, damit Sicherungsvorgänge auf die Netzwerkfreigabe schreiben und Wiederherstellungsvorgänge die Sicherungsdaten auf der Netzwerkfreigabe lesen können. Die Verfügbarkeit von Netzlaufwerken und Berechtigungen hängt von dem Kontext ab, in dem der SQL Server-Dienst ausgeführt wird:

Zum Sichern eines Netzlaufwerks, wenn SQL Server im Kontext eines Domänenbenutzerkontos ausgeführt wird, muss das freigegebene Laufwerk in der Sitzung, in der SQL Server ausgeführt wird, als Netzlaufwerk zugeordnet sein. Wenn Sie Sqlservr.exe über die Befehlszeile starten, werden in SQL Server sämtliche Netzlaufwerke angezeigt, die Sie in Ihrer Anmeldesitzung zugeordnet haben.


Wenn Sie Sqlservr.exe als Dienst ausführen, wird SQL Server in einer separaten Sitzung ausgeführt, die nicht mit Ihrer Anmeldesitzung in Zusammenhang steht. Die Sitzung, in der ein Dienst ausgeführt wird, kann über eigene zugeordnete Laufwerke verfügen (obwohl das normalerweise nicht der Fall ist).


Sie können eine Verbindung mit dem Netzwerkdienstkonto herstellen, indem Sie statt eines Domänenbenutzers das Computerkonto verwenden. Damit Sicherungen von bestimmten Computern auf ein freigegebenes Laufwerk zulässig sind, müssen Sie den Computerkonten entsprechende Zugriffsberechtigungen erteilen. Solange der Sqlservr.exe-Prozess, der die Sicherung schreibt, Zugriff hat, spielt es keine Rolle, ob der Benutzer, der den BACKUP-Befehl sendet, ebenfalls Zugriff hat.

Wichtig:
Da es bei Vorliegen von Netzwerkfehlern beim Sichern von Daten über ein Netzwerk zu Störungen kommen kann, sollten Sie bei Verwendung eines Remotedatenträgers den Sicherungsvorgang am Ende überprüfen. Weitere Informationen finden Sie unter Überprüfen von Sicherungen.



Angeben eines UNC-Namen (Universal Naming Convention)
Zum Angeben einer Netzwerkfreigabe in einem Sicherungs- oder Wiederherstellungsbefehl sollten Sie den vollqualifizierten UNC-Namen der Datei für das Sicherungsmedium verwenden. Ein UNC-Name weist das Format \\Systemname\ShareName\Path\FileName auf.

Beispiel:

Code kopieren
BACKUP DATABASE AdventureWorks
TO DISK = '\\BackupSystem\BackupDisk1\AW_backups\AdventureWorksData.Bak';
GO



Gruß, Nils

Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!


#11 werner008

werner008

    Member

  • 199 Beiträge

 

Geschrieben 10. Januar 2009 - 18:47

moin,
sql2005 kann problemlos auf unc pfade sichern. ich habe vor kurzem sogar einen sql7 neu (!) installiert mit dem man auf netzlaufwerke sichern kann, indem man es mit laufwerksbuchstaben einbindet.

die freigabe braucht schreibrechte für den sql server agent, oder den account unter dem der server läuft, das weiß ich gerade nicht aus dem kopf. aber es funktioniert defintiv problemlos bei uns.

gruß
werner

#12 phoenixcp

phoenixcp

    Expert Member

  • 5.481 Beiträge

 

Geschrieben 10. Januar 2009 - 18:54

Siehe Zitat von Nils aus den Books Online. So einfach ist das Ende dann doch nicht und so einfach nativ geht es nicht. Dazu muss man schon einige Verrenkungen anstellen. Und wie Nils und Lian schon erwähnt haben, ist das nicht die beste Backupstrategie für einen SQL Server. Aber jedem das seine ;)
MfG

Carsten Paul
MCSEBoard.de SQL Blog
Kein Support per PN, dafür ist das Forum da!

In Memory of LukasB

#13 Muelli

Muelli

    Board Veteran

  • 533 Beiträge

 

Geschrieben 11. Januar 2009 - 09:55

Moin

Zum Sichern eines Netzlaufwerks, wenn SQL Server im Kontext eines Domänenbenutzerkontos ausgeführt wird, muss das freigegebene Laufwerk in der Sitzung, in der SQL Server ausgeführt wird, als Netzlaufwerk zugeordnet sein. ...

Wenn Sie Sqlservr.exe als Dienst ausführen, wird SQL Server in einer separaten Sitzung ausgeführt, die nicht mit Ihrer Anmeldesitzung in Zusammenhang steht. Die Sitzung, in der ein Dienst ausgeführt wird, kann über eigene zugeordnete Laufwerke verfügen. ...


.. wir kommen der Sache schon näher :) . Was bedeutet denn: "Die Sitzung, in der ein Dienst ausgeführt wird, kann über eigene zugeordnete Laufwerke verfügen."
Bei uns startet der SQL als Dienst, nehme mal an unter dem Systemkonto. Als Administrator angemeldet, habe ich auf der SQL Maschine das entfernte Backup Verzeichnis als Netzlaufwerk mit eigenem Laufwerksbuchstaben eingebunden. Trotzdem taucht es innerhalb der SQL Server Backup Konfiguration nicht als Laufwerk auf. Hier haben wir jetzt immer manuell den Netzlaufwerkbuchstaben bzw den UNC Pfad eingetragen - aber immer mit den beschrieben Fehlermeldungen.
Muss ich dem SQL Prozess irgendwo das neue Netzlaufwerk noch mal getrennt zuweisen, damit er es akzeptiert?

Gruß

Jörg

#14 phoenixcp

phoenixcp

    Expert Member

  • 5.481 Beiträge

 

Geschrieben 11. Januar 2009 - 10:08

Die Sitzung, in der ein Dienst ausgeführt wird, kann über eigene zugeordnete Laufwerke verfügen.

Bedeutet: Es gibt neben deiner Session als Anwender mit der du an dem Server angemeldet bist, noch eine Session des Benutzers "System". Diese läuft parallel zu deiner Session. Netzlaufwerke die in deiner Session gemappt werden, werden in einer parallelen Session nicht abgebildet. Die Sessions sind völlig voneinander entkoppelt.

Um das ganze nutzen zu können, müsstest du folgendes tun:
1. Den SQL Server Dienst und den SQL Server Agent Dienst auf ein Domänenkonto umstellen (am besten das selbe Konto) und in den Diensteigenschaften hinterlegen
2. Dich mit dem Dienstkonto anmelden, das Mapping dauerhaft einrichten
3. Das Netzlaufwerk muss auch entsprechend berechtigt sein

Muss ich dem SQL Prozess irgendwo das neue Netzlaufwerk noch mal getrennt zuweisen, damit er es akzeptiert?

Nicht dem Prozess, sondern dem Account unter dem die Session des Dienstes läuft.
MfG

Carsten Paul
MCSEBoard.de SQL Blog
Kein Support per PN, dafür ist das Forum da!

In Memory of LukasB

#15 Muelli

Muelli

    Board Veteran

  • 533 Beiträge

 

Geschrieben 12. Januar 2009 - 07:07

Um das ganze nutzen zu können, müsstest du folgendes tun:
1. Den SQL Server Dienst und den SQL Server Agent Dienst auf ein Domänenkonto umstellen (am besten das selbe Konto) und in den Diensteigenschaften hinterlegen
2. Dich mit dem Dienstkonto anmelden, das Mapping dauerhaft einrichten
3. Das Netzlaufwerk muss auch entsprechend berechtigt sein


Das könnte der richtige Hinweis sein. Werde den SQL Dienst mal unterm Admin Konto laufen lassen. Mal sehen, ob er dann das Netzlaufwerk in seiner Liste aufnimmt.

Gruß

Jörg