Wie können SQL Server-E-Mail eine Fehlermeldung, wenn die Replikation Verleger keine Verbindung zu einem Abonnenten-system
Wir haben mehrere remote-Standorte, an denen wir uns eingerichtet haben, die SQL Server 2005-Replikation. Manchmal ist der publisher versagt zu replizieren, die aus verschiedenen Gründen, wie
1) Netzwerk-Probleme,
2) unsachgemäße Abschaltungen von Abonnenten,
3) ändern in domain-Passwörter,
4) ändern Sie in SQL-Passwörter,
5) fehlschlagen wechseln Sie auf die Abonnenten-system.
Gibt es eine Möglichkeit, die wir machen können, SQL-server schickt dem Administrator eine E-Mail, wenn dies geschieht, so kann er prüfen ?
Dank,
Chak.
- Bitte verwenden Sie die "sql-server-2005-tag" anstelle von "sql", "server" und "2005" separat - danke!!!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Weg, den ich in der Regel handhaben, ist es durch ändern der Sql-Agent-Auftrag(s), das verantwortlich für das starten/ausführen des Replikations-agents (abhängig von der Replikationstopologie müssen Sie eine Vielzahl von Ihnen in möglicherweise verschiedenen Orten). Fügen Sie einfach ein Auftrag-Schritt, um den passenden agent job(s) (also log-reader-agent, Verteilungs-agent, der merge-agent, Warteschlange, agent, etc.) nach dem "run-agent" Schritt ausgeführt wird, wenn/wenn dieser Schritt abgeschlossen/fehlgeschlagen ist (je nachdem, ob oder nicht Sie sind mit einem kontinuierlichen Zeitplan).
Zum Beispiel, wenn ich eine Transaktions-uni-direktional push-Veröffentlichung setup -, der Verteilungs-agent wird auf dem Verteiler ausgeführt. Wenn ich eine Verbindung mit dem Verteiler und finden Sie den Sql-Agent-Auftrag verantwortlich für den Betrieb der Verteilungs-agent für diese Veröffentlichung, die ich ändern kann, die job und einen Schritt hinzuzufügen, senden Sie eine E-Mail an eine bestimmte Gruppe, wenn der "agent ausführen" Schritt nicht durchgeführt/abgeschlossen. Wenn ich mit einer kontinuierlichen Replikation planen, werde ich einfach hinzufügen, die den Schritt zur E-Mail, wenn der "agent ausführen" Schritt abgeschlossen ist (wie ich möchte benachrichtigt werden, wenn der agent beendet aus irgendeinem Grund). Wenn ich mit einem nicht-kontinuierlichen Zeitplan, ich kann stattdessen die E-Mail-Schritt führen Sie nur auf das Versagen der "agent ausführen" Schritt. Sie können auch konfigurieren, dass dieser "E-Mail" Schritt zum senden einer E-Mail, pause für ein bisschen, dann versuchen Sie einen Neustart des agent automatisch (durch einfaches konfigurieren der Schritt "gehe zu Schritt 1" auf Erfolg").
Hier ist ein Screenshot, der zeigt, was die job-steps Aussehen für einen Verteilungs-agent so konfiguriert, wie ich erläutert:
Bemerken Sie in das Bild, dass ich Hinzugefügt habe, ein Schritt genannt "Benachrichtigen, pause, wiederholen", die ausgeführt werden, wenn der agent beendet (Erfolg oder Misserfolg - dies ist beabsichtigt, denn ich bin mit einer kontinuierlichen Replikation planen und wollen einfach wissen, Wann der Verteilungs-agent nicht ausgeführt wird, aus welchem Grund auch immer). Dieser Schritt im Grunde sendet eine E-Mail an eine bestimmte Gruppe, wartet ein oder zwei Minuten, dann beginnt der agent erneut. Sie können code hinzufügen, alles zu tun, was Sie mögen, inklusive Protokollierung, Neustart nur eine bestimmte Anzahl von Zeiten in einer bestimmten Zeitscheibe, etc. Es ist leicht künstlich und wiederholbar für eine beliebige Anzahl von Agenten, Veröffentlichungen usw. (Ich habe die scripts, um sicherzustellen, dass alle neuen Replikations-agent in jeder Art von Topologie beinhaltet diese Art der Konfiguration, dann ist es einfach eine Frage der hinzufügen zu einer release-tool oder planen Sie die Ausführung, je nachdem, wie Sie die Bereitstellung in Ihrer Umgebung).
Soweit erkennen-agent-Probleme, Sie möchten wissen, wenn der Protokollleser und Verteiler sind gestoppt. Mir ist auch die fortlaufende Replikation wie chadhoc, aber ich finde es einfacher zu verwenden, eine Warnung, um mir zu sagen, wenn die Agenten sind beendet.
Validierung/sync-Fehler sind nicht so einfach zu erkennen. Sie können einen nächtlichen job ausgeführt sp_publication_validation und setup weitere Warnung auf "Validierung Fehlgeschlagen".
Ich weiß nicht viel über die Replikation speziell, aber sp_readerrorlog ist ein sehr nützliches gespeicherte Prozedur ermöglicht Ihnen den Zugriff auf die DB-logs aus der Datenbank-Instanz. Wenn erforderlich, es kann Ihnen ermöglichen, zu reagieren, mehr entsprechend, basierend auf der spezifischen Fehlermeldungen anstatt nur ERFOLG/SCHEITERN Zweige von einem agent-Auftrag. Sie können natürlich auch eine E-Mail senden direkt eine gespeicherte Prozedur zu, customizing der Empfänger basiert auf wer kann am besten reagieren, um den Fehler (oder die Uhrzeit - Tag/Nacht-Umschalt-Koordinatoren zum Beispiel).
Vielleicht wäre es angemessener sein, senden Sie eine E-Mail, wenn der job erfolgreich ist, anstatt ausfällt, in Anbetracht Ihrer möglichen Störungen gehören Netzwerk Entnetzung? Möchten Sie vielleicht die Einrichtung einer exchange-Regel auf Ihrem Ende, um das zu überwachen-Posteingang und Feuer aus einem Fehler-Benachrichtigung an admin, wenn Sie nicht erhalten eine erwartete Erfolgsmeldung....Menschen sind sehr gut im herausfiltern der ständige Anregung und der Mangel an eine Erfolg-Nachricht könnte leicht übersehen werden. Exchange auf der anderen Seite ist immer (meistens) aufmerksam.