Project

General

Profile

Actions

Feature #1992

closed

Восстановление поврежденных бд Azoth

Added by Mellon over 8 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Plugins: Azoth
Target version:
Start date:
04/15/2016
Due date:
% Done:

100%

Estimated time:
20:00 h

Description

Как указано в #1991, повреждение бд приложения вызывает проблему. Вариантом её решения является попытка автоматического восстановления поврежденной базы данных.

Например, имеем следующую ситуацию:

% sqlite3 history.db                             
SQLite version 3.12.0 2016-03-29 10:14:15
Enter ".help" for usage hints.
sqlite> pragma integrity_check;
Error: database disk image is malformed
sqlite> 

В таком случае возможным решением является следущая последовательность действий:
0. Смотрим размер файла базы данных.

1. Смотрим доступное место на диске с директорией содержащей поврежденную базу

2. Если 1. меньше 0., то предлагаем пользователю 3 варианта:
1) почистить раздел вручную и попробовать снова;
2) удалить старую базу и создать новую;
3) выйти из программы

3. Если 1. больше 0., то:

4. переименовываем поврежденную базу в <name>-backup.db

5. Дампим поврежденную базу в новую, например:

sqlite3 history-backup.db '.dump' | sqlite3 history.db

6. Выдаем результат, например.
"Размер файла поврежденной базы данных: 522975232 Кб
Размер файла восстановленной базы данных:
489742336 Кб, Восстановлено 2946948 записей."


Related issues 2 (1 open1 closed)

Related to Bug #1991: SEGV при поврежденной бдConsolidated0xd34df00d04/15/2016

Actions
Related to Bug #2065: Восстановление поврежденных бд приложенияAssigned0xd34df00d08/10/2019

Actions
Actions

Also available in: Atom PDF