Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbank von Programm über Netzwerk abfragen (https://www.delphipraxis.net/142085-datenbank-von-programm-ueber-netzwerk-abfragen.html)

Jens Hartmann 21. Okt 2009 21:17

Datenbank: Firebird • Version: 2.1 • Zugriff über: ZEOS

Datenbank von Programm über Netzwerk abfragen
 
Hallo und schönen guten Abend zusammen,

folgende Situation: Ich habe ein Programm, welches 3 Datenbanke nutzen tut.

Eine für die Eigendlichen Daten
Eine für die Benutzer Rechte
Eine für die Konfiguration

Das Programm soll als Stand-Alone auf einem Rechner laufen und dort Ereignisse einer Hardware aufzeichenen.

Diese Stand-Alone Lösung könnt in sagen wir mal 100 Objekten realisiert werden.

Jetzt möchte ich an einem Zentralen Ort, über das Hauseigene Netzwerk welches mit allen Objekten vernetzt ist, Zugriff auf die von der Hardware erzeugten Daten haben.

Daher jetzt meine Frage. Ist folgende Lösung Sinnvoll, und wie kann ich diese am besten Umsetzen.

Zentrales Objekt mit wieder 3 Lokalen Datenbanken.

Eine für die Lokalen Benutzer Rechte
Eine für die Lokale Konfiguration also beide Unabhängig vom Rest
Und eine mit den 100 Objekten und deren Verbindungsdaten.

In der Software am Zentralenstandort, welche wie die an den Objekten aufgebaut ist, möchte ich lediglich eine Möglichkeit einfügen einen Verbindung zur IP-Adresse XXX.XXX.XXX.XXX aufzubauen und von dieser die Datenbank zu lesen.

Ist das möglich, und wenn womit müsste ich mich beschäftigen.

Danke schon mal

MFG

Jens

RWarnecke 21. Okt 2009 21:39

Re: Datenbank von Programm über Netzwerk abfragen
 
Dazu habe ich die folgenden Fragen ?

1.) Hat jedes Objekt diese drei Datenbanken ?
2.) Zu 1, wenn ja, warum speichert jedes Objekt in seine eigenene Datenbanken ?
3.) Warum nicht eine zentrale Datenbank (oder auch von mir aus drei), wo alle Objekte Ihre Daten reinspeichern ?

Sir Rufo 21. Okt 2009 21:43

Re: Datenbank von Programm über Netzwerk abfragen
 
Zitat:

Zitat von RWarnecke
Dazu habe ich die folgenden Fragen ?
3.) Warum nicht eine zentrale Datenbank (oder auch von mir aus drei), wo alle Objekte Ihre Daten reinspeichern ?

Wenn die DSL-Leitung mal wieder klemmt dann kann ja nix mehr protokolliert werden, also ein Zwischen-Puffer.

Jens Hartmann 21. Okt 2009 21:45

Re: Datenbank von Programm über Netzwerk abfragen
 
Ja, jedes Objekt soll eigendlich seine eigenen Datenbanken behalten. Hat folgenden Grund.

1. Ich möchte das Speichern der Daten aus Sicherheitsgründen nicht im Netzwerk machen. Die Objekte sind alle über VPN angebunden. Da die Objekte aber kontinuierlich Daten erzeugen, habe ich mich aus Sicherheitsgründen für einen eigenen Rechner mit eigener Datenbank entschieden.

2. Die Größe der DB. Ein Objekt kann je nach Ereignisaufkommen bis zu 10000 Datensätze am Tag erzeugen. Rechnen ih das jetzt hoch auf 100 Objekte wird die Datenbank extrem Groß.

Ich hoffe meine Gründe sind so gut erläutert.

MFG

Jens

Sir Rufo 21. Okt 2009 21:50

Re: Datenbank von Programm über Netzwerk abfragen
 
Auf jeden Fall fällt da die Embedded-Variante flach, muss also die Server-Variante sein.

Ansonsten ist es kein Problem auf die Datenbank zuzugreifen auch via VPN.

IP des DB-Servers, Login-Daten ... wuppdi :mrgreen:

Trotz allem würde ich immer eine Replizierung in den Zentral-Standort vorschlagen, gerade im Hinblick auf die Datensicherung, die dann ja auch zentral erfolgen kann ;)

cu

Oliver

RWarnecke 21. Okt 2009 21:59

Re: Datenbank von Programm über Netzwerk abfragen
 
Zitat:

Zitat von Sir Rufo
Trotz allem würde ich immer eine Replizierung in den Zentral-Standort vorschlagen, gerade im Hinblick auf die Datensicherung, die dann ja auch zentral erfolgen kann ;)

Da bin ich ganz der Meinung vom Oliver. Ich würde einmal am Tag die Datenbanken über VPN auf einem Hauptserver sichern oder in einem anderen Rythmus, so wie Du es brauchst. Dann die Datenbanken entweder zusammenführen oder aber über einen Datenbank-Server die Abfragen von allen Datenbanken machen.

Sir Rufo 21. Okt 2009 22:04

Re: Datenbank von Programm über Netzwerk abfragen
 
Zitat:

Zitat von RWarnecke
Zitat:

Zitat von Sir Rufo
Trotz allem würde ich immer eine Replizierung in den Zentral-Standort vorschlagen, gerade im Hinblick auf die Datensicherung, die dann ja auch zentral erfolgen kann ;)

Da bin ich ganz der Meinung vom Oliver. Ich würde einmal am Tag die Datenbanken über VPN auf einem Hauptserver sichern oder in einem anderen Rythmus, so wie Du es brauchst. Dann die Datenbanken entweder zusammenführen oder aber über einen Datenbank-Server die Abfragen von allen Datenbanken machen.

Nun er kann sich ja dann immer noch entscheiden, von welchem Server er die Abfrage jetzt beantwortet haben möchte.
Ob Zentral-Server oder Objekt-Server. Nettes Feature ist auch, wenn erst beim Objekt-Server probiert wird, und wenn der nicht antwortet, dann die Abfrage über den Zentral-Server laufen lassen.

Ein weiterer Grund für die Replizierung ist auch, wenn mal die Daten von allen Objekten statistisch verglichen werden sollen, dann braucht man die Daten eh an einem Platz, denn sonst rödelt man sich einen Wolf.

Jens Hartmann 22. Okt 2009 06:03

Re: Datenbank von Programm über Netzwerk abfragen
 
Danke Leute,

ich fasse mal kurz zusammen...

Momentan habe ich in meinen Komponenten ja als Server-Verbindung LOCALHOST:Datenbank. Ich müsste jetzt lediglich in diese Einstellungen (Zur Laufzeit der Zentralsoftware) in 192.168.100.100:Datenabank ändern und die Verbindung dann herstellen.

Stellt sich für mich jetzt nur die Frage, ob ich irgendwelche Schutzmassnahmen treffen muss, damit nicht beim schreiben in die Datenbank vom Objekt Rechner es zu Problemen kommt, wenn der Zentral Rechner in diesem Moment Daten holen will. Oder funktioniert das ohne Probleme.

Zitat:

Zitat von Sir Rufo
Ein weiterer Grund für die Replizierung ist auch, wenn mal die Daten von allen Objekten statistisch verglichen werden sollen, dann braucht man die Daten eh an einem Platz, denn sonst rödelt man sich einen Wolf.

Diesen Aspekt finde ich jedoch auch noch ganz Interesant. Allerdings mit dem vergeleichen von Objekten und der Zentralen Datensicherung muss ich mich dann später mal beschäftigen. Aber Grundsätzlich sollte es ja keine Problem sein, wenn die Datenverbindung besteht. Ein Backup durchzuführen und dann mit JOIN etc. auf die verschiedenen Tabellen zuzugreifen.

MFG

Jens

hoika 22. Okt 2009 07:42

Re: Datenbank von Programm über Netzwerk abfragen
 
Hallo,

Zitat:

damit nicht beim schreiben in die Datenbank vom Objekt Rechner es zu Problemen kommt, wenn der Zentral Rechner in diesem Moment Daten holen will. Oder funktioniert das ohne Probleme.
Der Sinn von Transaktionen ist dir schon ein Begriff ?
Oder kurz, nein, es gibt keine Probleme.


Heiko

Jens Hartmann 22. Okt 2009 07:55

Re: Datenbank von Programm über Netzwerk abfragen
 
Zitat:

Zitat von hoika
Der Sinn von Transaktionen ist dir schon ein Begriff ?
Oder kurz, nein, es gibt keine Probleme.

Das mit den Transaktionen ist mir schon klar. Allerdings war ich mir nicht sicher, ob ich trotzallem irgendeine Vorsichtmassnahme einbauen muss.

MFG

Jens

RWarnecke 22. Okt 2009 08:03

Re: Datenbank von Programm über Netzwerk abfragen
 
Mal eine ganz andere Frage, läuft auf den einzelnen Objekten ein Embedded-Server oder ein ganz normler Firebird Classic(Super)Server läuft. Denn sollte dort nur ein Embedded-Server laufen, so wir der gleichzeitige Zugriff von aussen nicht laufen.

mkinzler 22. Okt 2009 08:12

Re: Datenbank von Programm über Netzwerk abfragen
 
Diese Beschränkung der embedded Version fällt mit FB2.5
http://www.iblogmanager.com/download...comparison.pdf

Jens Hartmann 22. Okt 2009 08:25

Re: Datenbank von Programm über Netzwerk abfragen
 
Hallo Rolf,

Zitat:

Zitat von RWarnecke
Mal eine ganz andere Frage, läuft auf den einzelnen Objekten ein Embedded-Server oder ein ganz normler Firebird Classic(Super)Server läuft. Denn sollte dort nur ein Embedded-Server laufen, so wir der gleichzeitige Zugriff von aussen nicht laufen.

Zur Zeit läuft da eine normaler Firebird Server. Ich hatte vor kurzem mal nach der Embedded hier gefragt, hatte allerdings nur den gedanken für die reine Einplatzlösung.

Die Server-Lösung soll natürlich mit einem ganz normalen Firebird Server passieren.

Alternativ, könnte ich mir natürlich Gedanke über die Möglichkeit von Markus machen.

Zitat:

Zitat von mkinzler
Diese Beschränkung der embedded Version fällt mit FB2.5
http://www.iblogmanager.com/download/ ... /fb25_architecture_comparison.pdf

MFG

Jens

RWarnecke 22. Okt 2009 08:32

Re: Datenbank von Programm über Netzwerk abfragen
 
Zitat:

Zitat von Jens Hartmann
Alternativ, könnte ich mir natürlich Gedanke über die Möglichkeit von Markus machen.

Zitat:

Zitat von mkinzler
Diese Beschränkung der embedded Version fällt mit FB2.5
http://www.iblogmanager.com/download/ ... /fb25_architecture_comparison.pdf

MFG

Jens

Klar, aber ich würde das laufende System nicht wechseln. Die normalen CS/SS - Firebird Server laufen doch super stabil und verbrauchen wenig Ressourcen.

mkinzler 22. Okt 2009 09:03

Re: Datenbank von Programm über Netzwerk abfragen
 
Wenn die Möglichkeit besteht, eine Server zu installieren, ist der auf jeden Fall die eindeutig bessere Lösung, die zudem um einiges performanter sein wird.

Jens Hartmann 22. Okt 2009 09:39

Re: Datenbank von Programm über Netzwerk abfragen
 
Ne, dann lass ich das natürlich alles wie es ist und funktioniert.
Das heißt ja dann, das ich eigendlich schon soweit Mehrplatzfähig bin. Ich müsste somit lediglich noch eine Maske eipflegen um den Standort des jeweiligen Servers zu wählen.

Soll heißen: Eine Maske wo ich von Localhost auf xxx.xxx.xxx.xxx umstellen kann. Login Daten eingeben, und fertig.

Um dann eine Einplatzlösung zur Verfügung zu stellen, muss ich ja lediglich die Maske sperren, welche die Umstellun ermöglicht.

Super..

Danke

Gruß Jens


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz