This was my initial reading too Paul, but reading the OP post again it could be either - who knows what is meant by "syncing". I also think this is the main point for the OP - If by syncing he really means "copying the file" then Richard's advice, else if he means "adding via normal DB connection" then the other options.

If the DB files are copied, it needs to be copied in perfect version sync, so the program/service filling the DB needs to be informed to wait a moment while copying. I still think for this scenario the backup API would be better. Otherwise, posting SQL to the second DB would require no such trickery, no wait-states and be a lot less IO intensive.


On 2/13/2015 10:16 AM, Paul Sanderson wrote:
Richard

I read that the db on the standby machine is being updated at a record
by record level, i.e. not copied in its entirety. In this scenario I
can't see the two db files being guaranteed binary compatible. Copying
the journal across in this scenario would imo be a mistake.
Paul
www.sandersonforensics.com
skype: r3scue193
twitter: @sandersonforens
Tel +44 (0)1326 572786
http://sandersonforensics.com/forum/content.php?195-SQLite-Forensic-Toolkit
-Forensic Toolkit for SQLite
email from a work address for a fully functional demo licence


On 13 February 2015 at 02:47, Richard Hipp <d...@sqlite.org> wrote:
On 2/12/15, Mayank Kumar (mayankum) <mayan...@cisco.com> wrote:
Hi All

We have two systems which are running in active/standby configuration. The
active machine, is actively writing sqlite transactions to a file abcd.db.
The standby is syncing the abcd.db  file from the active  machine on a
communication channel and writing the delta records to the  abcd.db on the
standby machine.

Now my question is , lets say the active machine crashes in the middle of
the transaction and we have a hot journal created on the active machine.
Does it make sense to copy the hot journal to the standby machine, so that
the sqlite application on the standby will notice this hot journal and use
it to recover any lost transactions
Not only does it make sense - it is mandatory if you want to preserve
the integrity of the database file.

While a transaction is underway, the journal (either the *-journal
file or the *-wal file) is part of the state of the database.  If you
fail to copy it over to another machine and then try to open that
database on the other machine, the database will be incomplete and
potentially corrupt.

The journal files have a well-defined and documented format.  They are
independent of the byte-order and word-size of the machine they were
created on.
--
D. Richard Hipp
d...@sqlite.org
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to