Клиенты FlylinkDC++ и StrongDC++ sqlite используют для хранения базу данных SQLite
к сожалению некоторых случаях (сбой по питанию,"синий экрана смерти" и т.п.) возможно повреждение FlylinkDC.sqlite
В этом случае DC++ не может функционировать нормально и в системном логе выводятся сообщения вида "SQLite - xxx - SQL logic error or missing database "
Самое простое лечение - "хирургическое"
- Закрываем программу
- Удаляем файл FlylinkDC.sqlite
- Запускаем программу
В этом случае база данных пересоздается автоматически но теряется информация:
- О скачанных файлах (не подкрашивается цветом - вы уже качали это файл );
- "Рейтинг" скачано/отдано;
- TTH всех файлов (выполняется полное перехэширование).
- Заигноренные юзеры;
- Информация о последних IP с привязкой к пользователям.
http://flylinkdc.googlecode.com/files/check-flylinkdc-sqlite.zip
Инструкция
- Распаковываем архив в каталог ...\FlylinkDC++\Settings
- Запускаем check_flylinkdc_sqlite.bat
echo PRAGMA integrity_check; | sqlite3.exe FlylinkDC.sqlite
wrong # of entries in index sqlite_autoindex_fly_tth_1
wrong # of entries in index iu_fly_ratio
rowid 3786 missing from index iu_fly_dic_name
wrong # of entries in index iu_fly_dic_name
wrong # of entries in index sqlite_autoindex_fly_tth_1
wrong # of entries in index iu_fly_ratio
rowid 3786 missing from index iu_fly_dic_name
wrong # of entries in index iu_fly_dic_name
Если все нормально, то пишется "Ok "
echo PRAGMA integrity_check; | sqlite3.exe FlylinkDC.sqlite
ok
p.s
(c) идея батника SMT + Karumo http://livedc.ucoz.ru/forum/2-6-6863-16-1286467870
upd: 16.03.2013
Добавлено способ восстановления
все делается проще с помощью той же sqlite3.exe
1 делаете резервную копию FlylinkDC.sqlite
2 в cmd переходим в каталог с поломаным FlylinkDC.sqlite
3 echo .dump | sqlite3.exe FlylinkDC.sqlite > FlylinkDC.sql
4 del FlylinkDC.sqlite
5 sqlite3.exe -init FlylinkDC.sql FlylinkDC.sqlite
6 проверяем
pragma integrity_check;
7 выходим .quit
Сам не проверял - нет битой базы.
теоретически если испорчены индексы то ничего вообще не потеряется
если задеты таблицы то тут будет нарушение целостности.
56 комментариев:
А не проще перед каждым, к примеру 10-ым, стартом программы делать резервную копию базы программно?
МОжно ли поднять базу "с колен" при таких ошибках?
C:\FlylinkDC++\Settings>echo PRAGMA integrity_check; | sqlite3.exe FlylinkDC.s
qlite
*** in database main ***
Page 16522 is never used
wrong # of entries in index i_fly_file_tth_id
wrong # of entries in index iu_fly_file_name
C:\FlylinkDC++\Settings>pause
Для продолжения нажмите любую клавишу . . .
если да то как? базу жалко в ней более 130ТБ отданой статистики
Возможно же наверно придумать самовостановления базы или сделать не общию базу, а состоящих из подбаз чтоб подменять битую базу рабочей или пересоздавалась автоматом
Возможно же наверно придумать самовостановления базы или сделать не общию базу, а состоящих из подбаз чтоб подменять битую базу рабочей или пересоздавалась автоматом
да гавно этот sql-ite!
в нормальных СУБД коррупция базы - экстраординарный, невозможный случай. а у sq-lite - обычное дело
[14:30:22] * Rei ratio: (Uploaded: 2,64 МБ | Downloaded: 0 Б)
рейтинг пропал вообще даже непоказывает
пожалуйста исправтие
> да гавно этот sql-ite!
> в нормальных СУБД коррупция базы - > экстраординарный, невозможный
> случай. а у sq-lite - обычное дело
Идеальных БД не существует. и любая база может быть разрушена.
Как вы думаете, зачем оракл придумал стендбай?
надо сделать резервное хранилище и туда сливать 1 раз в неделю)по умолчанию, кому не нравиться - в настройках менять) всю инфу. Хранилище - к примеру совместимый формат с CSV,DB2...4,XML - в общем любой другой
В этом случае база данных пересоздается автоматически но теряется информация:
О скачанных файлах (не подкрашивается цветом - вы уже качали это файл );
"Рейтинг" скачано/отдано;
TTH всех файлов (выполняется полное перехэширование).
Заигноренные юзеры;
Информация о последних IP с привязкой к пользователям.
А самое главное - очередь скачивания забыли.
Подскажите пожалуйста программу через которую можно редактировать эту базу. Sqlite manager для Firefox не открывает её.
http://www.mysql.ru/download/
Уже и база версия Version 3.7.3, а мы сидим на Version 3.7.2
3.7.3 вышел только вчера
http://www.sqlite.org/news.html
3.7.3 вышел только вчера
http://www.sqlite.org/news.html
Значит, ждём новой бетки :)
Я тоже согласен, что число падений на SQLite невообразимо больше, чем с тем же Firebird'ом...
С другой стороны, я не понимаю, зачем делается копия всех настроек программы, кроме базы данных!? Притом быть может эти резервные копии зиповать и оставлять только 10 последних рабочих!?
Я батник менял как надо, но вот беда, после установки новой версии он затирается :(.
Ну и можно предложить при запуске проверять корректность базы и при невозможности восстанавливать последнюю рабочую копию.
Возможно пригодится для разработчиков софта http://binural.org/soft/programming/1147926507-intel-parallel-studio-2011.html
дополнение при удалении базы потеряется и очередь скачивания.
Установил на win 7 FlylinkDC++ x64 во время запуска выводится ошибка о повреждении файла sql. Обошол эту проблему разрешением полного достопа юзера к директории программы. P.S. может кому пригодится... и еще win живет своей жизнью, проверяйте разрешения на доступ к директории программ...
У меня выдавало что то типа этого "SQLite: CFlylinkDBManager::CFlylinkDBManagerdatabase disk image is malformed". При этом FlyLinkDC++(r402) не запускался. Вылечил удалением файла FlylinkDC_log.sqlite. При этом потерял всего лишь историю чата/переговоров с юзерами. Очередь закачки не измеилась и даже не перехешировалась, статистика отданного/скачанного, подсветка того что у кого-то скачал или от меня скачали работает. Так что отделался легким испугом
Создайте cmd- или bat-файл, скопируйте в него ниже приведенный код, поправьте ОБЯЗАТЕЛЬНО переменные Arxivator, PathFly. По своему вкусу можете поправить и BackUpFiles, NameArx. Пользуйтесь, предварительно выгрузив FlylinkDC++ и т.п. ботву. У меня подобный cmd-шник создан был для uTorrent, когда чуть не потерял все данные по закачкам. Не знал, что и для Fly-я данные тоже надо бэкапить :) Сообщение "7 апреля 2011 г. 9:33" также мое.
@echo off
cls
set Arxivator=F:\Program Files\WinRAR\winrar.exe
set PathFly=F:\Program Files\FlylinkDC++
set BackUpFiles=*sqlite*
set NameArx=fly_
rem Arxivator - папка с архиватором WinRAR
rem PathFly - папка с установленным FlylinkDC++
rem BackUpFiles - маска файлов, что мы хотим сохранить, заархивировать
rem NameArx - имя архива (к нему автоматом добавится дата и время создания архива)
"%Arxivator%" a -m5 -md4096 -s -ep1 -agYYYY-MM-DD_HH-MM -t %NameArx% "%PathFly%\Settings\%BackUpFiles%"
set Arxivator=
set PathFly=
set BackUpFiles=
set NameArx=
Народ помогите решить проблему.
Операционка: Windows 7 x64.
Скачал FlylinkDC++ для 64 битной 7.
А он не запускается с вот такой ошибкой: http://i062.radikal.ru/1105/b5/3b67d737a3f1.jpg
Базы дданых удалены давно, 3 раза переустанавливал саму прогу, чистил реестр и ничего не помогло с продействованого.
После свежей установки r404 x64 и последующем запуске выскочило окно с кряказябрами, хорошо хоть ссылка сюда была видна. В общем помогло установка прав полного доступа на директорию C:\Program Files\FlylinkDC++\Settings для группы "Пользователи". Ещё очень смущает путь установки программы по-умолчанию в корневую директорию C: . Пользуют все-таки программу большой частью обычные пользователи, а тут вот эти закидоны программерские ..
Не запускается, посоветуйте что-нибудь. ошибка: SQLite:CFlylinkDBManager:CFlylinkDBManagerunable to open database
Ошибка базы данных FlylinkDC.sqlite!
SQLite-LoadPathCache: SQL Logic error or missing database
Вероятно,файл базы данных FlylinkDC.sqlite поврежден.
Вариант решения проблемы:
*Провести диагностику и ремонт файла по инструкции
http://flylinkdc.ru/2010/10/flylinkdcsqlite.html
После переустоновки даже пишит.Вроде полностья удалял
"помогло установка прав полного доступа на директорию C:\Program Files\FlylinkDC++\Settings для группы "Пользователи"
Спасибо!
подскажите: как именно нужно открыть доступ к папке с флаем для всех пользователей?
У меня пишет Провести диагностику и ремонт файла по инструкции
http://flylinkdc.ru/2010/10/flylinkdcsqlite.html-Выход нашел ремонтом этого файла.Устанавливаете Mozilla Firefox,скачиваете прогу sqlite-manager,после закидываете в мозиллу,появляется в инструментах мозилы вкладка sqlite-manager,далее указываете flylinkdcsqlite в папке флинки и открываете его.далее в таблице удаляете таблицу fly_path,а fly_hash_block и fly_hash переменовываете после закрытия sqlite-manager запускайте флинки и все.Если чего не понятно то подскажу.
"помогло установка прав полного доступа на директорию C:\Program Files\FlylinkDC++\Settings для группы "Пользователи"
Спасибо! +1
пришлось переименовать старый файл FlylinkDC.sqlite, при запуске FlyLink создался новый, c помощью SQLite Manager выгрузил из старой базы (закладка SQL с опциями CreateTable и Begin Transaction/Commit) таблицу fly_queue, удалил в новой базе таблицу fly_queue, загрузил (закладка SQL с опцией Begin Transaction/Commit) в новую то, что выгрузил из старой, запустил FlyLink, очередь скачивания появилась
ОБАЛДЕТЬ
Следуйте инструкциям восстановления, звучит как издевательство (инструкций восстановления нет)
почему нельзя было в программе реализовать архивацию? жалко очередь скачивания, и закачанные файлы
Как можно выделить из FlylinkDC.s
qlite список закачек. Уже второй раз после некорректрого закрытия не открывается очередь скачивания. Запускаешь Flylinc все нормально, при клике на иконке списка закачек вешает программу напроч.
Пришлите мне файлик FlylinkDC.sqlite для анализа?
Вранье у меня нету FlylinkDC.sqlite в корневой папке! и нету папки Settings (\FlylinkDC++\Settings) ( показывать скрытые файлы и папки галочка стоит в настройках )
Вранье у меня нету FlylinkDC.sqlite в корневой папке! и нету папки Settings (\FlylinkDC++\Settings) ( показывать скрытые файлы и папки галочка стоит в настройках )
О том, что база данных повреждена, я знаю и без предлагаемой программы. Вы лучше скажите как исправить базу.
Исходные данные:
Windows XP-SP3
FlyLink r5.01-beta52-build-8521
Флайлинк хешировал данные, в это время выключили свет, комп естественно вырубился.
При следующем запуске программы флай выдал ошибку: "Ошибка базы данных FlylinkDC.sqlite!
SQLite- LoadDir: SQL logic error or missing database Вероятно, файл базы данных FlylinkDC.sqlite поврежден.
Вариант решения проблемы:
* Провести диагностику и ремонт файла по инструкции http://flylinkdc.ru/2010/10/flylinkdcsqlite.html"
Зашёл на страницу... и что... где же сами инструкции по РЕМОНТУ???? Не понятно.
Диагностика батником выдала следующее: "
C:\Program Files\FlylinkDC++\Settings\check-flylinkdc-sqlite>echo PRAGMA integrity_check; | sqlite3.exe FlylinkDC.sqlite
*** in database main ***
On tree page 4909 cell 12: Rowid 39918 out of order (min less than parent min of 39984)
On tree page 2436 cell 1: Rowid 40034 out of order (max larger than parent max of 40023)
On tree page 8193 cell 6: Rowid 40024 out of order (min less than parent min of 40034)
On tree page 5932 cell 2: Rowid 40054 out of order (min less than parent min of 40083)
On tree page 7021 cell 1: Rowid 40107 out of order (max larger than parent max of 40095)
On tree page 7466 cell 346: 2nd reference to page 9129
On tree page 7466 cell 346: Child page depth differs
On page 7466 at right child: 2nd reference to page 9171
On tree page 6056 cell 97: 2nd reference to page 8413
On tree page 6056 cell 97: Child page depth differs
On tree page 6056 cell 98: 2nd reference to page 8408
On tree page 6056 cell 99: Child page depth differs
Page 4547 is never used
Page 7577 is never used
Page 8752 is never used
Page 8787 is never used
Page 9149 is never used
wrong # of entries in index sqlite_autoindex_fly_hash_1
Error: near line 1: database disk image is malformed
C:\Program Files\FlylinkDC++\Settings\check-flylinkdc-sqlite>pause
Для продолжения нажмите любую клавишу . . ."
Спасайте, в базе данных информация за полгода.
Здравствуйте. я сделал как сказано, удалил файл FlylinkDC.sqlite. Программа не запускается пишет ту же самую ошибку. Так же скачал программу по ссылке http://flylinkdc.googlecode.com/files/c ... sqlite.zip, проверил - пишется "ОК", я так понял что файл в порядке. Скажите пожалуйста, в чем проблема?
поищите по диску сколько у вас FlylinkDC.sqlite ?
я нашел только в C/Program files (x86)/Settings и там был FlylinkDC.sqlite и FlylinkDC_log.sqlite. А где еще можно поискать? и как искать? через поиск не ищет. Думаете могут быть еще FlylinkDC.sqlite ?
1. какая версия флая у вас стоит?
2. поищите по всему диску.
как я понял у меня r500-beta123, хотя могу ошибаться, не знаю как посмотреть точно. Так по всему диску это можно неделю потратить искать, но все же попробую. Проще нет решений? может просто флай переустановить или не поможет?
Значит у вас хранится файл в профиле.
конечно поставьте нормальную версию
или r500-релиз
или r501-beta69
Спасибо. Переустановил программу. все заработало.
FlylinkDC++ выдает эту ошибку SQLite - grtDIC_ID: database disk image is malformed Probdbly,the database File FlylinkDC.
FlylinkDC++ выдает эту ошибку SQLite - grtDIC_ID: database disk image is malformed Probdbly,the database File FlylinkDC.
Probdbly,the database File FlylinkDC.sqlite is corrupted.
Solution to the problem:
flylinkdc.blogspot.com/2010/10/flylinkdc...
*To diagnose and repair the file according to instructions
(в очередной раз...) SQLite испортил всю свою базу,
- много часов добавлений книг и видео которые решил скачать попозже [из-за нехватки места на диске]
- в этот раз ещё ладно, почти всё было скачано, но вот в прошлый - из-за вас козлов-разрабов...
--
PS: нах. этот тупой SQLite
верните .XML+.BAK, как в том же (родоночальнике) StrongDC++...
PS: а, ещё он имеет привычку c не-100% вероятностью при запуске/обновлении (т.е.с рандом эффектом) портится при превышении нек.числа записей в БД...
Помню как то пришлось удалять и закачивать файлы, для освобождения места в БД - под добавляемые.
Притом база была не то чтобы большая, где то 150MB всего, особенно в сравнении с тем сколько флай жрёт (иногда) в RAM...
Одним словом - в топку SQLite !
PSS: это я к тому что даже
SQLite + .BAK
- не полноценное из-за
глючности решение.
PS:
+Оптимизацию:
а) чтобы небыло STALLs при добавлении - файлы добавлять в конец существующей базы,
без копирования файла-базы, и соответственно без создания .BAK-файла (его созд.только при старте)
PS: а, ещё лучше - в доп.файлы с индексом в имени - в сл.вылета ОС - потеряется(либо же обнулится - на FAT разделах) только последнее добавление набора файлов
b) чтобы небыло STALLs при массовом удалении [по завершении скачивания] - аналогично, но установив поле ForDelete=True.
PS: LastIP & статистику-скачек другими - хр.в отд.XML файл-базах,
+всё по аналогии
PS: А, для ускорения(тем более для владельцев древних компов, в принципе так же и современных - при одновр.нагрузке их другими программами/играми)
- галочку отключения этой "нуочень полезной функции", (порой)круто тормозящей все дисковые операции и потому вообще реакцию ОС...
Я уж не говорю подозрительной - с точки зрения ведения слежки/логирования за другими пользователя самим пользователем и тем более возможной утечки этого лога, другими...
PS: добавления файлов(в отл.от всего остального) должно сопровождаться FLUSH на ур.ОС, равно как и перед закрытием .BAK файла.
PS: Когда кол-во "ИНДЕКСНЫХ"-файлов превысит скажем сотню(чтобы файловая система не тормозила из-за тормознутости их поиска в каталоге) - автообновление базы,с созданием её .BAK файла понятно.
PSS: "индексные"-файлы с базой, для удобства, расп.в отд.подкаталоге.
PSS: Причём для ускорения диск.оп. - их лучше реал-ть предсоздаваемыми-при-старте; каждый размером в 32kB(усл.говоря 100+ записей файлов), которые при необх.можно увеличить(при старте затем уменьшить). В начале каждого - признак занятости и одновременно просто валидности сод-го +с уч.что начиная с хп запись может идти непоследовательно, и чтобы не делать тормозный ОС Flush для таких файлов - к каждому полю добавить поле (цикличного)индекса, номер же первого и последнего в начале файле (согласующийся с др.файлами) и будет признак занятости и одновременно просто валидности, если он непоследователен или внутри индексация нарушена - "индексный" файл бит или недозаписан, равно как отсутствует или нулевого размера. Кстати следующий файл может быть валидным, как раз из-за непосл.записи и WriteDelay. При компановке - эти значения обнулять.
я ничего не понял... как устранить ошибку.
все делается проще с помощью той же sqlite3.exe
1 делаете резервную копию FlylinkDC.sqlite
2 в cmd переходим в каталог с паломатым FlylinkDC.sqlite
3 echo .dump | sqlite3.exe FlylinkDC.sqlite > FlylinkDC.sql
4 del FlylinkDC.sql
5 sqlite3.exe -init FlylinkDC.sql FlylinkDC.sqlite
6 проверяем
pragma integrity_check;
7 выходим .quit
смысл в том чтобы сделать dump/load базы (обычная процедура для бд)
странно что аффтор про это не написал
Спасибо.
аффтор добавил вашу версию в топик. :)
нз) зате меня просто "Ваше Величетво Администратор Баз Данных" )))
завите *
пардон
может тогда - зовите? )
ну и в величестве ошибка :)
Здравствуйте! Есть некоторая проблема, суть которой опишу ниже.
Год назад начал качать кучу файлов для изучения иностранного языка с различных хабов, общий объём для скачки был порядка 100Гб. Качал около полугода со скоростью инет соединения 4 мбит/с. Скачалась примерно половина от запланированного(много отдельных файлов по различным пользователям). Вообщем, суть в чём, была одна причина, по которой моя ОС частично накрылась. Кое-как реанимировал, 90% программ оказались нерабочими, пришлось переставлять, тоже самое произошло и с Стронгом-лайт. Расстроился, удалил, реестр подчистил. Поставил GreyLink_0.58_64-bit, но заново перекачивать файлы не стал(буду обновлять ОС до Win 8, потом начну заново, хоть и геморно). Недавно порылся на системном диске и случайно обнаружил папку SSQLite++CrashDump, а там файл около 140 Мб с таким же названием. Вот думаю чудо!!! Неужели возможно имплантировать старую БД в новую(или заменить вообще). Расширение данного файла БД *.dmp
Подскажите спецы, это возможно?
Привет.
нет .dmp файл это дамп падения стронга-дайт
базу данных от туда не достать
у базы имя *.sqlite
Понял. Печально...
Спасибо за ответ!
Отправить комментарий