1

Я имею дело с сторонним приложением, которое работает с базой данных SQLite 3 с WAL (запись на запись на Ahead) на локальном компьютере, и я ищу, чтобы зеркалировать эту базу данных (читать только, это одностороннее зеркалирование) в другую систему. Проблема в том, что я работаю в отдельном процессе, который, кажется, несколько усложняет ситуацию.Realtime одностороннее зеркалирование базы данных SQLite

База данных создается и открывается с нормальным режимом блокировки, поэтому нет никакой проблемы с ее чтением из другого процесса, но я пытаюсь либо найти существующую реализацию, либо получить некоторые указатели на то, с чего начать. Мое понимание, основанное на других сообщениях, заключается в том, что стандартные перехватчики обновления sqlite (например, sqlite3_update_hook) не будут работать вне процесса.

Ключевой проблемой является скорость, я хотел бы идеально иметь возможность обнаруживать каждое обновление, как только это произойдет, и начать его передачу. Это означает, что большинство вариантов опроса не может быть и речи, но даже если бы они были, как бы вы обнаружили самые последние изменения?

Я вижу два файла, которые выглядят многообещающими: фактический файл WAL (foo.db-wal) и этот индексный файл с отображением памяти (foo.db-shm). Я надеюсь, что эти два содержат информацию, которая мне нужна: A. Обнаруживать, когда происходят изменения в базе данных и B. Уметь захватывать только инкрементные изменения с момента последнего обновления.

Но указатель на некоторые существующие решения будет намного предпочтительнее ... :-)

ответ

0

SymmetricDS может быть решением для вас

Смежные вопросы