Czy można używać SQLite jako bazy danych klient-serwer? [Zamknięte]

32

Czy są jakieś techniki lub narzędzia do pracy z SQLite w środowisku DB o średniej wielkości / ruchu / współbieżności?

Maniero
źródło
3
Czy możesz podać powód, dla którego byłoby to przydatne? W przeciwnym razie uważam, że zasługuje na zamknięcie jako nie prawdziwe pytanie. SQLite nie jest bazą danych klient-serwer i jest naprawdę sprzedawany do tłumu, który nie potrzebuje bazy danych klient-serwer.
jcolebrand
1
@Eelke, chociaż nie jest to już prawdą w trybie WAL od wersji 3.7 - może być tylko jeden zapis na raz, ale „czytelnicy nie blokują pisarzy, a pisarz nie blokuje czytników”
Jack Douglas
1
nawiasem mówiąc, wydaje się, że
Jack Douglas
2
Czemu? Myślę, że powinieneś zdefiniować swoje wymagania ... a może znajdziesz bardziej odpowiednią bazę danych ...
AK_
3
@AK_ Główne wymagania to pełna wersja ACID i bardzo prosta baza danych do opracowania i użytkowania. Stworzyliśmy niestandardową wersję do pracy jako klient-serwer, a wynik jest po prostu niesamowity! Ludzie nie doceniają zdolności SQLite i przeceniają potrzebę współbieżności dla małych firm. Ludzie muszą otworzyć umysł. Postępuj zgodnie z przepisem nie jest jedynym sposobem, aby przejść. Teraz mamy produkt bez konkurencji na naszym rynku.
Maniero,

Odpowiedzi:

25

SQLite jest osadzoną bazą danych i nie jest przeznaczona do użycia jako baza danych klient / serwer. Jeśli naprawdę chcesz, możesz użyć SQLitening .

Co to jest SQLitening

SQLitening to implementacja bardzo popularnej bazy danych SQLite typu klient / serwer.

SQLitening to biblioteka programisty w standardowej formie Win32 DLL. Jest instalowany jako standardowa usługa systemu Windows. Oprócz trybu klient / serwer biblioteka umożliwia programiście dostęp do baz danych SQLite w trybie lokalnym. W obu trybach (lokalny lub klient / serwer) baza danych jest wyjątkowo szybka i niezawodna. - Źródło: http://www.planetsquires.com/sqlite_client_server.htm

Giorgi
źródło
4
Czy możesz opracować lub podać link do Czym jest SQLitening? Ten link prowadzi do forum i nie ma słowa o tym, co to jest.
develCuy
17

Jak wspomniano wcześniej, sqlite nie jest aplikacją klient-serwer i nie jest budowany do wysoce współbieżnych operacji.

Niemniej jednak możesz „zrobić to klient-serwer”, jeśli używasz ssh.

ssh user@host sqlite3 databasefile select * from table

Prace.

ddeimeke
źródło
1
Czy jest to uważane za „klient-serwer”, ponieważ szyfrowałeś połączenie?
Robert Harvey
Nie, dzieje się tak tylko z powodu sieci między maszyną, która hostuje bazę danych, a maszyną uzyskującą dostęp do bazy danych.
ddeimeke
4

Nie, SQLite nie przedstawia punktu końcowego sieci - jest dostępny tylko przez system plików. To nie obsługują jednoczesny dostęp z wielu procesów na tym samym komputerze, ale w bardzo gruboziarnistych poziomie (DML blokuje całą tabelę). Więc możesz mieć kilkanaście procesów Apache httpd wszystkie z otwartą bazą danych SQLite na dysku lokalnym, wszystkie robią SELECTs i wszystko będzie dobrze. Ale tak naprawdę to niewłaściwe narzędzie do pracy - w tym scenariuszu użyłbym Postgres .

Gajusz
źródło
1
blokuje cały stół Tylko wtedy, gdy piszesz na nim, nie czytając wielu
procesorów
3

Oprogramowanie Paradigma wprowadza Valentina Server 6.0 (obecnie w fazie testów beta), czyli 3 w 1:

  • Valentina DB Server
  • Valentina SQLite Server
  • Serwer raportów Valentina

Serwer SQLite korzysta z silnika SQLite bez zmian, włączony WAL. SQLite Server działa na 3 systemach operacyjnych: Mac, Win, Linux .

Możesz używać Valentina Studio (darmowa) aplikacja do zarządzania tym serwerem DB, a także mySQL, postgreSQL, SQLite, MS SQL. Działa również jako natywna aplikacja C ++ na 3 systemach operacyjnych.

Serwer SQLite zawiera takie funkcje, jak: SSL, ACL, kopie zapasowe, REST API, kanały powiadomień, JSON, XML.

W tej chwili dostęp do tego serwera można uzyskać z C ++, Xojo i LiveCode. Wkrótce zostaną dodane PHP, Java, .NET.

Darmowa wersja Valentina Server obejmuje

  • 10 połączeń z bazami SQLite
  • 5 połączeń z centralami Valentina
  • 5 połączeń z Valentina Reports

Szczegóły można przeczytać w artykule .

Ruslan Zasukhin
źródło
2

SQLabs oferuje komercyjny produkt o nazwie cubeSQL, który może odpowiadać Twoim potrzebom.

dwurf
źródło
1

Możesz zhakować coś razem za pomocą NetCata , ale nie wyobrażam sobie, aby byłoby to bardzo eleganckie rozwiązanie.

TML
źródło
-5

Możesz skorzystać z usługi podobnej do dropbox . Istnieją rozwiązania hostowane samodzielnie. Jednak SQLite3 nie został stworzony dla modelu klient-serwer. Lepiej skorzystasz z innych rozwiązań opracowanych od podstaw przez model klient-serwer.

atmosfera
źródło
5
Dropbox i inne usługi synchronizacji plików NIE SĄ rozwiązaniem tego problemu. Dropbox nie zawiera żadnej logiki dotyczącej scalania zmian w bazie danych, do których jednocześnie pisze wielu użytkowników. Efektem końcowym będą utracone dane, praca i czas.
jptros