关于SQLite复制

wooyq4lh  于 2022-11-15  发布在  SQLite
关注(0)|答案(2)|浏览(204)

我正在用C++在Linux上使用SQLite。我想在另一台计算机上复制SQLite数据库。我想使用fstream读取SQLite数据库文件,并在另一台计算机上创建一个副本。
我的代码是:

ifstream _fstream;
_fstream.open("Sourcefile",ios::in); 
 ofstream _ostream;
_ostream.open("ReplicatedFile",ios::out);
_ostream << _fstream;
_ostream.close();
_fstream.close();
n3h0vuf2

n3h0vuf21#

您可能想看看内置的SQLite Backup API,它允许在线备份数据库。这可以用来创建一种形式的复制,当然,您必须自己将文件移动到远程位置(如果需要)。最好使用sqlite_backup_*()函数,而不是直接访问文件,因为SQLite函数将锁定数据库。

fcy6dtqo

fcy6dtqo2#

我不确定这是否是您想要的,但是如果您需要跨多个服务器(分布式)进行复制,Rqlite可能适合您。
Rqlite是一个分布式关系数据库,它使用SQLite作为存储引擎。Rqlite使用RAFT在SQLite数据库的所有示例之间达成共识,确保对系统所做的每一次更改都适用于法定数量的SQLite数据库,或者根本不更改。
您可以在此处阅读更多内容:http://www.philipotoole.com/replicating-sqlite-using-raft-consensus/

相关问题