Неблокирующая резервная копия Sqlite - PullRequest
0 голосов
/ 23 января 2020

Мне нужна возможность резервного копирования базы данных sqlite, не блокируя ее для вставок. Я могу сделать это с Sql Server просто отлично, но я надеялся, что есть способ сделать это с Sqlite.

Код резервной копии:

            using (var location = new SQLiteConnection(sqliteConnectionString))
            using (var destination = new SQLiteConnection(buConnectionString))
            {
                location.Open();
                destination.Open();
                location.BackupDatabase(destination, "main", "main", -1, null, 0);
            }

и код, который выдает там ошибку:

            using (var connection = new SQLiteConnection(constring))
            {
                connection.Open();
                using (var cmd = new SQLiteCommand(sql, connection))
                {
                    using (var tx = connection.BeginTransaction())
                    {
                        foreach (var t in data)
                        {
                            cmd.Parameters.AddWithValue("$Id", t.TagId);
                            cmd.Parameters.AddWithValue("$StampedIn", t.StampedIn.
                                ToString("yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture));
                            cmd.Parameters.AddWithValue("$StampedOut", t.StampedOut.
                                ToString("yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture));

                        }
                        cmd.ExecuteNonQuery();
                        tx.Commit();
                    }
                }
                connection.Close();
            }

Объект данных содержит около 3000 элементов, каждый из которых регистрируется / обновляется один раз в секунду. Любые идеи о том, как сделать резервную копию без блокировки базы данных, будут полезны. Спасибо всем

...