É possível usar o SQLite como um banco de dados cliente-servidor? [fechadas]

32

Existem técnicas ou ferramentas para trabalhar com o SQLite em um ambiente de banco de dados de tamanho médio / tráfego / simultaneidade?

Maniero
fonte
3
Você pode explicar por que isso seria útil? Caso contrário, acho que merece fechar como uma pergunta não real. O SQLite não é um banco de dados cliente-servidor e é realmente comercializado para a multidão que não precisa de um banco de dados cliente-servidor.
jcolebrand
1
@Eelke, embora isso não seja mais verdade no modo WAL da versão 3.7 - só pode haver uma gravação por vez, mas "os leitores não bloqueiam escritores e um escritor não bloqueia leitores"
Jack Douglas
1
aliás, atualmente a Wikipedia parece estar errada
Jack Douglas
2
Por quê? Eu acho que você deve definir suas necessidades ... e talvez você encontrará uma base de dados mais adequado ...
AK_
3
@AK_ Os principais requisitos são o ACID completo e o banco de dados muito simples de desenvolver e usar. Criamos uma versão personalizada para funcionar como cliente-servidor e o resultado é simplesmente incrível! As pessoas estão subestimando a capacidade SQLite e a necessidade de simultaneidade para pequenas empresas. As pessoas precisam abrir a mente. Siga a receita não é o único caminho a percorrer. Agora, temos um produto sem concorrência em nosso mercado.
Maniero

Respostas:

25

O SQLite é um banco de dados incorporado e não se destina a ser usado como um banco de dados cliente / servidor. Se você realmente quiser, poderá usar o SQLitening .

O que é SQLitening

SQLitening é uma implementação cliente / servidor do banco de dados SQLite muito popular.

SQLitening é uma biblioteca de programadores no formato DLL Win32 padrão. Ele é instalado como um serviço padrão do Windows. Além do modo cliente / servidor, a biblioteca permite que o programador acesse também os bancos de dados SQLite no modo local. Nos dois modos (local ou cliente / servidor), o banco de dados é extremamente rápido e robusto. - Fonte: http://www.planetsquires.com/sqlite_client_server.htm

Giorgi
fonte
4
Você pode elaborar ou fornecer um link para O que é SQLitening? Esse link vai para um fórum e não tem uma palavra sobre o que é realmente.
usar o seguinte código
17

Como mencionado anteriormente, o sqlite não é um aplicativo cliente-servidor e não é criado para operações altamente simultâneas.

No entanto, você pode "torná-lo cliente-servidor", se você usar ssh.

ssh user@host sqlite3 databasefile select * from table

trabalho.

ddeimeke
fonte
1
Isso é considerado "cliente-servidor" porque você criptografou a conexão?
Robert Harvey
Não, é apenas por causa de uma rede entre a máquina que hospeda o banco de dados e a máquina que acessa o banco de dados.
ddeimeke
4

Não, o SQLite não apresenta um ponto de extremidade de rede - é acessível apenas através do sistema de arquivos. Ele oferece suporte ao acesso simultâneo de vários processos na mesma máquina, mas em um nível muito granular (o DML bloqueia uma tabela inteira). Assim, você pode ter uma dúzia de processos httpd do Apache, todos com um banco de dados SQLite no disco local aberto, todos fazendo SELECTs e isso funcionaria perfeitamente. Mas, na verdade, é a ferramenta errada para o trabalho - eu usaria o Postgres nesse cenário.

Gaius
fonte
1
fechaduras toda uma tabela somente quando você está escrevendo sobre ele não ler muitos processadores pode ler da mesma tabela;)
ucefkh
3

A Paradigma Software apresenta o Valentina Server 6.0 (em teste beta agora), que é de 3 em 1:

  • Valentina DB Server
  • Valentina SQLite Server
  • Valentina Report Server

O SQLite Server usa o mecanismo SQLite sem alterações, habilitado para WAL. O SQLite Server funciona em 3 sistemas operacionais: Mac, Win, Linux .

Você pode usar o aplicativo Valentina Studio (gratuito) para gerenciar este servidor de banco de dados, bem como mySQL, postgreSQL, SQLite, MS SQL. Ele também funciona como um aplicativo nativo do C ++ em 3 sistemas operacionais.

O SQLite Server contém recursos como: SSL, ACL, Backups, API REST, Canais de Notificação, JSON, XML.

No momento, o acesso a esse servidor pode ser feito em C ++, Xojo e LiveCode. Em breve será adicionado PHP, Java, .NET.

A versão gratuita do Valentina Server inclui

  • 10 conexões com bancos de dados SQLite
  • 5 conexões com Valentina DBs
  • 5 conexões com o Valentina Reports

Detalhes que você pode ler no artigo .

Ruslan Zasukhin
fonte
2

O SQLabs oferece um produto comercial chamado cubeSQL que pode atender às suas necessidades.

dwurf
fonte
1

Você pode hackear algo em conjunto usando o netcat , mas não consigo imaginar que seria uma solução muito elegante.

TML
fonte
-5

Você pode usar um serviço semelhante ao dropbox . Existem soluções auto-hospedadas. No entanto, o SQLite3 não foi criado para um modelo cliente-servidor. Você se sairia melhor com outras soluções desenvolvidas de raiz pelo modelo cliente-servidor.

atmosx
fonte
5
O Dropbox e outros serviços de sincronização de arquivos NÃO SÃO uma solução para esse problema. O Dropbox não contém nenhuma lógica em relação à mesclagem de alterações em um banco de dados no qual vários usuários estão gravando simultaneamente. O resultado final será perda de dados, trabalho e tempo.
jptros