Ist es möglich, SQLite als Client-Server-Datenbank zu verwenden? [geschlossen]


32

Gibt es Techniken oder Werkzeuge, um mit SQLite in einer DB-Umgebung mittlerer Größe / mit Verkehr / paralleler Nutzung zu arbeiten?


3
Können Sie einen Grund nennen, warum dies eine nützliche Sache wäre? Ansonsten denke ich, dass es das Schließen verdient, da es keine echte Frage ist. SQLite ist keine Client-Server - Datenbank und wird wirklich in die Menge vermarktet, die nicht benötigen eine Client-Server - Datenbank.
Jcolebrand

1
@Eelke, obwohl dies im WAL-Modus ab Version 3.7 nicht mehr zutrifft - es kann immer nur einen Schreibzugriff geben, aber "Leser blockieren keine Schreiber und ein Schreiber blockiert keine Schreiber"
Jack Douglas

1
Übrigens scheint
Jack Douglas

2
Warum? Ich denke, Sie sollten Ihre Anforderungen definieren ... und vielleicht finden Sie eine passendere Datenbank ...
AK_

3
@AK_ Die Hauptanforderungen sind eine vollständige ACID und eine sehr einfach zu entwickelnde und zu verwendende Datenbank. Wir haben eine benutzerdefinierte Version erstellt, die als Client-Server fungiert, und das Ergebnis ist einfach unglaublich! Die Leute unterschätzen die SQLite-Kapazität und überschätzen das Bedürfnis nach Parallelität mit kleinen Unternehmen. Die Menschen müssen offen sein. Befolgen Sie das Rezept ist nicht der einzige Weg zu gehen. Jetzt haben wir ein Produkt ohne Wettbewerb auf unserem Markt.
Maniero

Antworten:


25

SQLite ist eine eingebettete Datenbank und nicht zur Verwendung als Client / Server-Datenbank vorgesehen. Wenn Sie wirklich wollen, können Sie SQLitening verwenden .

Was ist SQLitening?

SQLitening ist eine Client / Server-Implementierung der sehr beliebten SQLite-Datenbank.

SQLitening ist eine Programmierbibliothek in Standard-Win32-DLL-Form. Es wird als Standard-Windows-Dienst installiert. Zusätzlich zum Client / Server-Modus kann der Programmierer mit der Bibliothek auch im lokalen Modus auf SQLite-Datenbanken zugreifen. In beiden Modi (lokal oder Client / Server) ist die Datenbank extrem schnell und robust. - Quelle: http://www.planetsquires.com/sqlite_client_server.htm


4
Können Sie einen Link zu Was ist SQLitening? Dieser Link führt zu einem Forum und sagt nichts darüber aus, was es eigentlich ist.
develCuy

17

Wie bereits erwähnt, handelt es sich bei sqlite nicht um eine Client-Server-Anwendung, und es ist nicht für gleichzeitig ausgeführte Vorgänge konzipiert.

Trotzdem können Sie "es Client-Server machen", wenn Sie ssh verwenden.

ssh user@host sqlite3 databasefile select * from table

funktioniert.


1
Wird dies als "Client-Server" betrachtet, weil Sie die Verbindung verschlüsselt haben?
Robert Harvey

Nein, es liegt nur an einem Netzwerk zwischen der Maschine, auf der sich die Datenbank befindet, und der Maschine, die auf die Datenbank zugreift.
Ddeimeke

4

Nein, SQLite stellt keinen Netzwerkendpunkt zur Verfügung, sondern kann nur über das Dateisystem aufgerufen werden. Es tut den gleichzeitigen Zugriff von mehreren Prozessen auf der gleichen Maschine unterstützen , aber in einem sehr grobkörnig Ebene (DML sperrt eine ganze Tabelle). Sie könnten also ein Dutzend Apache-httpd-Prozesse haben, die alle mit einer SQLite-Datenbank auf der lokalen Festplatte geöffnet sind SELECT. Aber wirklich, es ist das falsche Werkzeug für den Job - ich würde in diesem Szenario Postgres verwenden.


1
sperrt eine ganze Tabelle Nur wenn Sie darauf schreiben und nicht viele
Prozessoren

3

Paradigma Software stellt Valentina Server 6.0 vor (jetzt in der Beta-Testphase), also 3 in 1:

  • Valentina DB Server
  • Valentina SQLite Server
  • Valentina Berichtsserver

SQLite Server verwendet die SQLite-Engine ohne Änderungen, WAL aktiviert. SQLite Server funktioniert unter 3 Betriebssystemen: Mac, Win, Linux .

Sie können die (kostenlose) Valentina Studio-Anwendung zum Verwalten dieses DB-Servers sowie von mySQL, postgreSQL, SQLite und MS SQL verwenden. Es funktioniert auch als native C ++ - Anwendung unter 3 Betriebssystemen.

SQLite Server enthält Funktionen wie: SSL, ACL, Backups, REST-API, Benachrichtigungskanäle, JSON, XML.

Der Zugriff auf diesen Server kann derzeit über C ++, Xojo und LiveCode erfolgen. In Kürze werden PHP, Java, .NET hinzugefügt.

Kostenlose Version von Valentina Server enthält

  • 10 Verbindungen zu SQLite-DBs
  • 5 Verbindungen zu Valentina DBs
  • 5 Verbindungen zu Valentina Reports

Details können Sie im Artikel lesen .


2

SQLabs bietet ein kommerzielles Produkt namens cubeSQL an , das möglicherweise Ihren Anforderungen entspricht.


1

Sie könnten mit netcat etwas zusammen hacken , aber ich kann mir nicht vorstellen, dass es eine sehr elegante Lösung wäre.


-5

Sie können einen ähnlichen Dienst wie dropbox verwenden . Dort selbst gehostete Lösungen. SQLite3 wurde jedoch nicht für ein Client-Server-Modell erstellt. Mit anderen Lösungen, die auf Basis des Client-Server-Modells entwickelt wurden, können Sie besser umgehen.


5
Dropbox und andere Dateisynchronisierungsdienste SIND KEINE Lösung für dieses Problem. Dropbox enthält keine Logik zum Zusammenführen von Änderungen in einer Datenbank, in die mehrere Benutzer gleichzeitig schreiben. Das Endergebnis ist ein Verlust von Daten, Arbeit und Zeit.
JPTROS
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.