lqp - Восстановление битого sqlite-файла
January 18th, 2017
09:01 pm

[Link]

Previous Entry Add to Memories Tell A Friend Next Entry
Восстановление битого sqlite-файла
Знатоки SQL, а вот можете вы обьяснить мне, в чем разница между
bash$ sqlite3 corrupt-file.sqlite ".dump" |sqlite new-file.sqlite

и
bash$ sqlite3 corrupt-file.sqlite
>.mode insert
> .output dump.sql
> .dump
> .exit
bash$ cat dump.sql |sqlite3 new-file.sqlite

?

Почему во втором случае он выдает в 100 раз больший дамп и исполняется в 100 раз медленнее? Эт медленность дает что-нибудь в плане количества восстановленной информации?

Tags:

(4 comments | Leave a comment)

Comments
 
[User Picture]
From:[info]wasserstrahl
Date:January 18th, 2017 - 10:20 pm
(Link)
"|sqlite new-file.sqlite"
и
"|sqlite3 new-file.sqlite"
Команды разные, или это алиасы?

Формат вывода в первом случае отличается от второго?
From:[info]lqp
Date:January 19th, 2017 - 08:44 am
(Link)
Нет, это я в посте опечатался. Там везде sqlite3 и другого у меня в системе нет. И в любом случае разный размер дампа это не объясняет.
[User Picture]
From:[info]tzirechnoy
Date:January 18th, 2017 - 10:38 pm
(Link)
Не можэт там быть разного дампа. Про в 100 раз медленнее -- тебе правильно насчёт команды сказали, только это и придумывается.

А разных дампов при таких командах быть не можэт. Или ты скопипастил не ту команду (например, у тебя там .backup был) или ты перепутал про размеры. И вообще, возми diff и посмотри в чём разница, если она таки есть.
[User Picture]
From:[info]tzirechnoy
Date:January 18th, 2017 - 10:39 pm
(Link)
То есть, .dump вообще пофиг на .mode, да и в какой файловый дескриптор это выводить -- тожэ.

И дажэ вариантов с нетривиальным обрывом output pipe не придумывается, не должэн он выходить перед тем, как всё запишэт.
Powered by LJ.Rossia.org