ho-lle 0 Geschrieben 23. Juli 2013 Melden Teilen Geschrieben 23. Juli 2013 Hallo zusammen, ich habe bereits einen erstellten Replikationsjob (Job für veröffentlichung und Job für Verteilung). Diese funktionieren auch soweit und kann Sie auch über das Managment Studio starten/durchführen. Ich möchte Diese nun von einem Batchfile aus starten können. Habe bisher noch nicht herausfinden können, wie ich das anstelle. Das Googeln für Dieses stellte sich als ziemlich zeh raus. Über den Zeitplan von Managment Studio kann ich es nicht machen, weil die Replikation von anderen Faktoren außerhalb abhängig ist, weshalb ich es von extern über batch und z.B. xp_cmdshell machen möchte. Man findet ziemlich viel darüber wie man neue Jobs erstellt usw....aber nicht das was ich suche. Als veröffentlichung habe ich eine Momentaufnahme(dies soll auch so bleiben :-)) gewählt. MSSQL-DB: 2008 R2 Kann mir hier jemand weiterhelfen? Vielen Dank!? Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 23. Juli 2013 Melden Teilen Geschrieben 23. Juli 2013 Prinzipiell funktioniert das schon innerhalb einer Batch-Datei. Wenn das bei dir nicht funktioniert, mußt Du schon etwas genauer werden. http://msdn.microsoft.com/de-de/library/ms162773.aspx Zitieren Link zu diesem Kommentar
ho-lle 0 Geschrieben 23. Juli 2013 Autor Melden Teilen Geschrieben 23. Juli 2013 mir würde es schon reichen zu wissen, wie das in t-sql aussehen würde. Es dann in eine Batch zu packen ist kein problem. Was für eine Methode wähle ich da? Hat jemand ein Skriptbeispiel? Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 23. Juli 2013 Melden Teilen Geschrieben 23. Juli 2013 Ich hab so etwas in der Richtung schon mal gemacht, kann ich heute Abend raussuchen. Sollte ich es vergessen, erinnere mich bitte morgen daran. ;) Zitieren Link zu diesem Kommentar
ho-lle 0 Geschrieben 23. Juli 2013 Autor Melden Teilen Geschrieben 23. Juli 2013 Vielen Dank! Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 24. Juli 2013 Melden Teilen Geschrieben 24. Juli 2013 (bearbeitet) Ich versuche mal das korrekt darzustellen. Du brauchst zuerst eine Ameldung mittels sqlcmd am SQL-Server, bzw. an der richtigen Instanz. C:\>sqlcmd -U sa -P PASSWORT -S Instanz-Name_des_SQL-Server -d Name_der_Datenbank -i "C:\meintest.bat" Achtung! Das mit der Instanz und dem Namen des SQL Servers sieht man nicht so richtig gut. Es ist wie folgt gemeint: Instanz-NamedesSQLServer Du mußt die Instanz angeben und den Namen des SQL Servers, getrennt durch einen Bindestrich. Die korrekte Sytnx bitte aus dem schon gep. Artikel übernehmen und natürlich ausführlich testen. Mit der obigen Zeile meldest Du den Benutzer SA an der passenden DB an und startest in dessen Kontext die angegebene Batchdatei. Die kann folgendes beinhalten: :Setvar DBName "Name_der_Datenbank" :Setvar ScriptDir "C:\Pfad_zum_Script" :On Error exit :Error "C:\ScriptTestError.txt" :Out "C:\ScriptTestOutput.txt" USE $(DBName) GO CREATE TABLE ScriptTest ( id INT NOT NULL IDENTITY PRIMARY KEY, wert NVARCHAR(9) NOT NULL ) INSERT INTO ScriptTest (wert) VALUES ('Script1a'); GO :r $(ScriptDir)\EinSQL_Script_.sql :r $(ScriptDir)\Ein_zweites_SQL_Script.sql INSERT INTO ScriptTest (wert) VALUES ('Script1b'); GO SELECT * FROM ScriptTest GO DROP TABLE ScriptTest GO Auf diese Art und Weise hatte ich vor ein paar Jahren eine sehr große Aktualisierung auf einer Datenbank ausführen lassen. bearbeitet 24. Juli 2013 von Sunny61 Zitieren Link zu diesem Kommentar
ho-lle 0 Geschrieben 24. Juli 2013 Autor Melden Teilen Geschrieben 24. Juli 2013 Vielen Dank!, doch das ist nicht das was ich gesucht habe! Vielleicht habe ich mich ja missverständlich ausgedrückt! Ich möchte wissen wie man eine Replikation die bereits definiert ist starten/durchführen kann. Erst den Job für die Veröffentlichung und dann den Job für die Verteilung! und das alles nicht mit der Maus im Management Studio oder mit einem Zeitplan sondern mit einem T-SQL-Statement. Weiß jemand wie das geht? Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 24. Juli 2013 Melden Teilen Geschrieben 24. Juli 2013 Du kannst die Replikation mittels SQL-Script starten, wenn ja, dann denk dir dein SQL-Script einfach als EinSQL_Script_.sql in der Batchdatei. Zitieren Link zu diesem Kommentar
ho-lle 0 Geschrieben 24. Juli 2013 Autor Melden Teilen Geschrieben 24. Juli 2013 (bearbeitet) Genau und ich wollte gerne wissen, wie ich diese Replikation mittels SQL-Script starten kann. Also ganz konkret: Wie würde der Befehl/das SQL Skript aussehen? bearbeitet 24. Juli 2013 von ho-lle Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 24. Juli 2013 Melden Teilen Geschrieben 24. Juli 2013 Genau und ich wollte gerne wissen, wie ich diese Replikation mittels SQL-Script starten kann. Also ganz konkret: Wie würde der Befehl/das SQL Skript aussehen? Achso, sorry, das habe so nicht aus deinem ersten Posting verstanden. Ich ging davon aus, Du hast das schon und willst es nur noch per Batch von extern starten lassen. Wenn ich das richtig weiß, wird die Replikation von einem Agent aus gestartet, den müsstest Du also beenden und neu starten. Das ist ein normaler Windows Dienst. Aber schau dir diesen Artikel an, vielleicht kommst Du damit schon in die richtige Richtung: http://msdn.microsoft.com/en-us/library/ms147855%28v=sql.105%29.aspx http://msdn.microsoft.com/en-us/library/ms147364%28v=sql.105%29.aspx http://stackoverflow.com/questions/220340/how-do-i-check-sql-replication-status-via-t-sql Zitieren Link zu diesem Kommentar
ho-lle 0 Geschrieben 26. Juli 2013 Autor Melden Teilen Geschrieben 26. Juli 2013 (bearbeitet) Danke, aber ich habe es mittlerweile selbst herausgefunden.... für das Asuführen einer Snapshotveröffentlichung: EXEC sp_startpublication_snapshot @publication = 'publicationname'; Oder für das Ausführen eines Jobs(für Veröffentlichung oder Verteilung): EXEC MSDB.dbo.sp_start_job @job_name = 'jobname'; Nun habe ich nur das Problem, dass beide jobs gleichzeit ausgeführt werden. Doch ich möchte den 2ten Job erst starten wenn der 1ste abgeschlossen ist. Gibt es hierfür eine einfache Methode ohne "Wait For" und komplizierte Schleifen? bearbeitet 26. Juli 2013 von ho-lle Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.