我正在用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();
2条答案
按热度按时间n3h0vuf21#
您可能想看看内置的SQLite Backup API,它允许在线备份数据库。这可以用来创建一种形式的复制,当然,您必须自己将文件移动到远程位置(如果需要)。最好使用
sqlite_backup_*()
函数,而不是直接访问文件,因为SQLite函数将锁定数据库。fcy6dtqo2#
我不确定这是否是您想要的,但是如果您需要跨多个服务器(分布式)进行复制,Rqlite可能适合您。
Rqlite是一个分布式关系数据库,它使用SQLite作为存储引擎。Rqlite使用RAFT在SQLite数据库的所有示例之间达成共识,确保对系统所做的每一次更改都适用于法定数量的SQLite数据库,或者根本不更改。
您可以在此处阅读更多内容:http://www.philipotoole.com/replicating-sqlite-using-raft-consensus/