power-poler
Goto Top

Mittels PowerShell ein SQL Backup anlegen

Hallo zusammen.

Habe da ein kleines Problem.

Folgender Aufbau:

Server 1 ->PowerShell Script -> Backup wird erstellt. Es funktioniert.

Server 2 ->Der gleiche PowerShell Script wie Server 1 (Angepasst an diese SQL Datenbank natürlich) -> Wird einen Fehler (Muss ich nochmal raus suchen, hab ich gerade nicht mehr im Kopf, Irgendwas mit Failed to complete oder so) (Windows Ereignisanzeige)

Server 3 ->PowerShell Script wie Server 1 -> Wirft einen Fehler in der Windows Ereignisanzeige von Server 2 ???. Habe jetzt also auf Server 2 2x die gleiche Fehlermeldung stehen. Server 3 startet zwar den Backup Script, im Windows Ereignisanzeige taucht aber nichts auf.

Hat hierfür jemand eine Erklärung, warum der Fehler von Server 3 auf Server 2 aufläuft?
Die Scripte wurden mit dem Jeweiligen SQL Manager des jeweiligen Servers erstellt.

Vielen Dank schon mal
Mit freundlichen Grüßen
Power-Poler

Content-Key: 5778462653

Url: https://administrator.de/contentid/5778462653

Printed on: April 27, 2024 at 13:04 o'clock

Mitglied: 5175293307
5175293307 Feb 01, 2023 updated at 16:40:13 (UTC)
Goto Top
Tja jung, da fehlt uns hier das wichtigste ... rate jetzt mal was ... oder soll uns ChatGPT verraten was du letzten Donnerstag gescriptet hast?! 🙃
Hat hierfür jemand eine Erklärung, warum der Fehler von Server 3 auf Server 2 aufläuft?
Ohne vorliegendes Skript?? Falsche Anpassung, Eventlog-Forwarding oder Polling, oder PSRemoting, oder ...

wurstel
Member: Power-Poler
Power-Poler Feb 01, 2023 at 16:53:40 (UTC)
Goto Top
Danke für die Antwort.

Werde den Script nachreichen. Allerdings ist es einfach der Script, der beim SQL Manager rausgeworfen wird, wenn man in den Sicherungs- Einstellungen auf Script erstellen klickt. Habe da nichts selbst angepasst.
Der Script ist auch auf allen 3 Servern identisch, bis auf Datenbankname und Pfad wo das Backup hin soll. Sind aber alles Lokale Pfade. Nichts was ins Netz geht.
Mitglied: 5175293307
5175293307 Feb 01, 2023 updated at 17:06:58 (UTC)
Goto Top
Hmm was daraus leider auch nicht hervor geht ob auf allen drei Servern ein SQL-Server läuft oder nur auf einem oder zweien ...

Geh doch bitte nochmal in dich und stelle alle nötigen Infos (OS, SQL Versionsinfos, etc pp) hier übersichtlich ordentlich rein, denk einfach daran das wir hier nur das haben was du uns lieferst. Wir sitzen nicht vor deinen Kisten ;-/

Ich geh jetzt in der Zwischenzeit ein Helles köpfen, Prost ...
Member: NordicMike
NordicMike Feb 02, 2023 at 01:40:46 (UTC)
Goto Top
Evtl sagt auch der Fehler, was ihm nicht passt. Aber selbst die genaue Fehlermeldung wurde nicht beschrieben. (Und die Event ID dazu)
Member: ukulele-7
ukulele-7 Feb 02, 2023 at 07:35:18 (UTC)
Goto Top
Laufen die SQL Server eventuell in einem Cluster oder dergleichen?
Member: Power-Poler
Power-Poler Feb 02, 2023 at 15:34:29 (UTC)
Goto Top
So, hab jetzt die Fehlermeldung und den Script:

BACKUP failed to complete the command BACKUP DATABASE DatenbankNameServerX. Check the backup application log for detailed messages.
Die details:
Error: 3041, Severity: 16, State: 1


Und der Script (Wie gesagt, für jeden Server identisch, nur das "X" wäre dann 1, 2 und 3)
BACKUP DATABASE [DatenbankNameServerX] TO  DISK = N'C:\datenbank\DatenbankNameServerX.bak' WITH NOFORMAT, INIT,  NAME = N'DatenbankNameServerX-Vollständig Datenbank Sichern', SKIP, NOREWIND, NOUNLOAD,  STATS = 10  
GO
declare @backupSetId as int
select @backupSetId = position from msdb..backupset where database_name=N'DatenbankNameServerX' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'DatenbankNameServerX' )  
if @backupSetId is null begin raiserror(N'Fehler beim Überprüfen. Sicherungsinformationen für die Datenbank "DatenbankNameServerX" wurden nicht gefunden.', 16, 1) end  
RESTORE VERIFYONLY FROM  DISK = N'C:\datenbank\DatenbankNameServerX.bak' WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND  
GO

Ich kann mir einfach nicht erklären, wieso der Error von Server 3 auf Server 2 aufläuft.
Warum auf Server 1 alles einwandfrei läuft.
Und warum generell Server 2 und 3 kein Backup mit dem Script fahren wollen.
Member: ukulele-7
ukulele-7 Feb 02, 2023 at 19:57:20 (UTC)
Goto Top
Wie viele X hast du denn ausgetauscht? Ich zähle 7 im Script.

Dann ist die Frage gegen welchen Server das ausgeführt wird. Bist du jedes mal mit dem SSMS an einem anderen Server angemeldet? Vermutlich hat dein Ablauf ein Problem. Oder so etwas dummes wie dein DNS Server liefert zu 2 Servern die selbe IP aus, soll alles schon gewesen sein.
Member: Power-Poler
Power-Poler Feb 03, 2023 at 16:50:36 (UTC)
Goto Top
Ok, einen Fehler hab ich gefunden. Die aufrufende Batch Datei hat auf den falschen Rechner verlinkt. Dadurch das die 3 Server im gleichen Netzwerk hängen, hat er dann wohl über den Namen tatsächlich den anderen gefunden und versucht dort sein Backup zu machen.
Finde es aber jetzt tatsächlich gar nicht mal schlecht, dass der Fehler aufgetreten ist. Jetzt weiß ich, ich könnte eine Zentralen Rechner Aufstellen, der die Backups auslöst.

Somit bleibt nur noch der Fehler, dass das Backup nicht über den Script starten möchte.
Hab da aber inzwischen nur eine Sache hierfür gefunden und zwar, dass es sich beim der Datenbank von Server 1 um eine Express Datenbank handelt, und bei Server 2 und 3 nicht.
Express Datenbanken würden wohl Scripte zulassen, "Vollwertige" nicht. Aber dass muss sich doch irgendwie aktivieren lassen, dass der Script von außen ein Backup erstellen kann?

Aber Vielen Dank schon mal für euren Input.
Member: Power-Poler
Solution Power-Poler Feb 06, 2023 at 17:34:47 (UTC)
Goto Top
Hab endlich das Problem gefunden.
Ich habe den Backup Prozess über eine User gestartet, denn es in der Datenbank nicht gibt.
Das Backup von Server 3 läuft jetzt endlich auch, mit dem richtigen User.
Server 2 leider immer noch nicht, da hier versäumt wurde, einen solchen User in der Datenbank anzulegen.
*Kopf gegen Wand schlag*


Frage kann geschlossen werden.
Danke nochmal für eure Unterstürzung.
Member: ukulele-7
ukulele-7 Feb 07, 2023 at 08:52:53 (UTC)
Goto Top
Du kannst auch einen Domain User auf den Servern berechtigen.

Überhaupt musst du höllisch aufpassen, denn wenn der Fehler nicht gewesen wäre hättest du möglicherweise den selben Server doppelt und einen anderen nicht in der Sicherung gehabt.
Member: Power-Poler
Power-Poler Feb 07, 2023 at 17:03:20 (UTC)
Goto Top
Hab jetzt einen Domain Nutzer hinzugefügt. Jetzt Funktioniert endlich alles.

Wie oben schon gesagt, bin ich tatsächlich froh über diese Fehler. In Zukunft weiß ich dann auch genau wo ich ansetzten muss.