Jump to content
Melde dich an, um diesem Inhalt zu folgen  

Tabelle in zeitlichen Abständen aktualisieren

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?

Diesen Beitrag teilen


Link zum Beitrag
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.

Diesen Beitrag teilen


Link zum Beitrag
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:

Diesen Beitrag teilen


Link zum Beitrag
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.

Diesen Beitrag teilen


Link zum Beitrag
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. 

Diesen Beitrag teilen


Link zum Beitrag
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: 

Diesen Beitrag teilen


Link zum Beitrag
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: 

Diesen Beitrag teilen


Link zum Beitrag
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

Diesen Beitrag teilen


Link zum Beitrag
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: 

Diesen Beitrag teilen


Link zum Beitrag
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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Man könnte es auch so machen, dass man von der View eine Tabelle auf Datenbank A erstellt und dann mit dieser Tabelle arbeitet. Wenn Datenbank B erreichbar ist, wird dann die Tabelle neu erstellt und wenn die dann nicht erreichbar ist, hat man weiterhin den Stand.

Diesen Beitrag teilen


Link zum Beitrag
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.

Diesen Beitrag teilen


Link zum Beitrag
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

Diesen Beitrag teilen


Link zum Beitrag
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?

Diesen Beitrag teilen


Link zum Beitrag
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. 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Nimm an der Diskussion teil

Du kannst jetzt hier posten und Dich später registrieren. Wenn Du bereits über eine Konto verfügst, melde Dich jetzt an, um mit Deinem Konto zu posten.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

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

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

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

Melde dich an, um diesem Inhalt zu folgen  

Fachinformatiker.de, 2019 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

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

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung