Zum Inhalt springen

Tabelle in zeitlichen Abständen aktualisieren


murat1895

Empfohlene Beiträge

Hallo Zusammen!

Ich verwende für eine Software eine Datenbank. In dieser Datenbank A ist ein View auf eine Datenbank B erstellt worden.

Leider kommt es immer häufiger, aber beabsichtigt vor, dass die Datenbank B nicht erreichbar ist.

Jedoch benötige ich in der Software eine stündlich exakten abgleich der Daten. Hat jemand eine Idee wie man das am besten Lösen könnte?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das Problem ist, das es ab und an vor kommt das dieser MSSQL Datenbankserver neugestartet wird und dann für Weile nicht erreichbar ist. Mit ab und an meine ich maximal 1-2 mal im Monat, aber dieses leider im blöden Zeitraum.

Der Datenbestand ändert sich in der Regel selten. Dennoch möchte ich die Daten möglichst aktuell halten.

Ich denke es ist am sinnvollsten, die Daten aus der originalen Datenbank stündlich abzufragen (falls erreichbar) und in eine weitere Tabelle zu schreiben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @murat1895!

Oder man macht es gleich richtig und packt sich, wenn das Kriterium der Verfügbarkeit so wichtig ist, nen Failover Partner dazu und setzt den Primärserver als Principal für eine Spiegelung auf.

Da spart man sich auch gleich die Frickelei.

Gruß, Goulasz :goulasz:

Link zu diesem Kommentar
Auf anderen Seiten teilen

In dem Bereich kenne ich mich wenig bis gar nicht aus.

Ich weiß, dass es sicherlich besser ist, nen Spiegel-Server aufzusetzen. Allerdings habe ich gerade festgestellt das ich dann für das ganze noch einen dritten Server bräuchte als "Zeugen"?

Klar ist das für die Verfügbarkeit der Anwendung am besten. Ich weiß allerdings nicht inwiefern sich dieser Aufwand und die Kosten gegenüber dem Nutzen lohnt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn du das nicht weißt, wer dann?

Wenn der Server zwei mal im Monat für eine gewisse Zeit offline ist, dann ist er ja für, sagen wir mal, 95% der Zeit online und da sollte man sich auch fragen, ob für die restlichen 5% überhaupt sich der Aufwand lohnt, irgendwas zu machen, wenn die Daten sich sowieso kaum ändern. Vor allem in der Zeit, wo er offline ist, die Daten sich sowieso nicht ändern. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @murat1895!

Natürlich kannst du auch einen SQL Server Agent Job anlegen. Du hast dann aber immer noch das Problem, dass dein System nicht mehr erreichbar ist, wenn dein "Server A" abraucht.

Wenn das eine im Kundeneinsatz befindliche Anwendung ist, halte ich es für grob fahrlässig ohne Spiegelung zu arbeiten. Ist das nur Bastelei für dich? Dann bitte: SSIS-Pakete in nem eigenen Prozesskontext, Agent Jobs direkt auf dem SQL Server, nen Windows Service, der alle X $Zeitspanne einen Task ausführt. Die Möglichkeiten der Bastelei sind da vielfältig.

Der Agent Job wäre mein Favorit in dem Kontext.

Hier noch ein bisschen Vorarbeit für das Thema: how to schedule a job for sql query to run daily? - stackoverflow

Viel Erfolg und Gruß,

Goulasz :goulasz: 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nachtrag: Wenn dein "Server B" in dem Zeitraum, in dem der Job laufen und deine Daten auf "Server A" für die View schreiben soll, grade nicht verfügbar ist, hilft dir das übrigens auch nicht weiter.

Wenn du wirklich eine Steigerung der Verfügbarkeit willst, kommst du um einen Failover-Partner imho nicht rum.

Gruß, Goulasz :goulasz: 

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Whiz-zarD

Ja, die Frage ist, ob sich der Aufwand überhaupt lohnt. Das Problem ist einfach nur, dass während der 5% wo der Server down ist, die Anwendung, die einen View auf die Datenbank hat auch nicht funktioniert. Bei dieser Anwendung ist es egal, ob der Datenbestand auf die Stunde genau aktuell ist.

@Goulasz

Die Platten etc. werden gespiegelt und regelmäßige Backups angelegt. Jedoch gibt es keinen Echtzeit-Spiegelserver. Bei einem Ausfall der Hardware kann innerhalb weniger Minuten der laufende Zustand wiederhergestellt werden. Ich denke so grob fahrlässig ist es dann wiederrum nicht.

Bearbeitet von murat1895
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 17 Minuten schrieb murat1895:

[...] Bei einem Ausfall der Hardware kann innerhalb weniger Minuten der laufende Zustand wiederhergestellt werden. Ich denke so grob fahrlässig ist es dann wiederrum nicht.

Und auf welchem Server wird der "laufende Zustand" dann verfügbar gemacht um Daten für deine View abrufbar zu halten?

Gruß, Goulasz :goulasz: 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 31 Minuten schrieb murat1895:

@Whiz-zarD

Ja, die Frage ist, ob sich der Aufwand überhaupt lohnt. Das Problem ist einfach nur, dass während der 5% wo der Server down ist, die Anwendung, die einen View auf die Datenbank hat auch nicht funktioniert. Bei dieser Anwendung ist es egal, ob der Datenbestand auf die Stunde genau aktuell ist.[...]

 

Eventuell könnte man die angezeigten Daten ja auch einfach zwischenspeichern und falls Server B nicht verfügbar ist einfach eine alte Ansicht zeigen. Wenn es dabei eh nicht auf ein paar Stunden ankommt, wäre so etwas ja durchaus denkbar. Mittels MySQL-Statement kann man ja z.B. mit PHP überprüfen, ob ein Server erreichbar ist, oder ob nicht und falls nicht im Quelltext etwas anderes anzeigen lassen.

Wobei ich persönlich die Datenbank alle x Stunden (je nachdem wie viel Daten sich ändern) mit einer neuen Datenbank abgleichen lassen und diese dann nutzen würde. Schlägt eine Synchronisierung fehl, ist das ja kein Problem bei den Daten anscheinend.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du hast doch nur die zwei Möglichkeiten:
Entweder du sorgst für eine Ausfallsicherheit (wie sie auch immer aussehen mag) und du hast die Daten redundant
oder du sorgst dafür, dass der Abgleich der Datenbanken nicht stattfinden kann, wenn Datenbank B nicht zur Verfügung steht.

Man kann ja nicht zaubern und ein Abgleich implementieren, der auf eine Datenbank zugreift, die nicht da ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 11 Minuten schrieb Whiz-zarD:

[...]Man kann ja nicht zaubern und ein Abgleich implementieren, der auf eine Datenbank zugreift, die nicht da ist.

Von jemandem mit deinem Nutzernamen wohnt dem Statement, so wahr es ist, eine gewisse Ironie inne. :D SCNR

Link zu diesem Kommentar
Auf anderen Seiten teilen

 

Am 13.10.2016 um 13:33 schrieb murat1895:

Das Problem ist, das es ab und an vor kommt das dieser MSSQL Datenbankserver neugestartet wird und dann für Weile nicht erreichbar ist. Mit ab und an meine ich maximal 1-2 mal im Monat, aber dieses leider im blöden Zeitraum.

 

Wieso packt man Datenbank A und B nicht auf einen Server?

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb pr0gg3r:

Wieso packt man Datenbank A und B nicht auf einen Server?

Ich hoffe inständig, dass diese Möglichkeit aus irgendwelchen technischen Einschränkungen gar nicht erst besteht, ansonsten müsste ich mir von irgendwem die 15 Minuten Antworterstellung und Linksuche zurückkaufen. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...