Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
Поиск в базе посредством sql-запроса результатов не дает. Просмотр в hexview подтверждает, что данные в базе есть. Подозреваю, что они помечены как "удаленные". Вопросы: 1. Влияет ли индексация на физическое наличие данных в файле? 2. Как восстановить удаленные (но имеющиеся в файле) данные? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2009, 18:26 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
Не совсем понятно про какой "файл" идет речь... Ваши данные в классе? Раз идет речь про sql... В классах нет "пометки на удаление" и потом некой "паковки класса"... Теоретически индексы могут "попортится" (но мы с этим не сталкивались)... Тогда sql-запросы, использующие порченые индексы, будут показывать неверные результаты... Но первая же переиндексация все восстановит. ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 08:52 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
Есть класс ClassName (persistent). Экземпляры этого класса хранятся в файле cache.dat (традиция, как я понимаю). Проблема: данные физически присутствуют в файле (я проверил это просмотрев файл cache.dat в hexview), но достать их посредством sql-запроса (в SQL-менеджере) не получается :( Предположение: Есть два уровня удаления записей - логический (путем специальной пометки записи) и физический (путем действительного избавления от записей помеченных как "удаленные") Вопрос: 1. Как "восстановить" запись помеченную как "удаленную"? Переиндексация класса посредством do ##class(ClassName).%BuildIndices() не помогла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 10:08 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
Andrew Kovalchukтрадиция, как я понимаю Такой интерпретации кащейского хранения данных я еще не встречал... Andrew Kovalchukданные физически присутствуют в файле (я проверил это просмотрев файл cache.dat в hexview) Ясно. Andrew KovalchukЕсть два уровня удаления записей ... Не в Каше. Если прошла команда KILL - данные удалены, а другой команды и нет... Andrew KovalchukПереиндексация класса посредством do ##class(ClassName).%BuildIndices() не помогла. Значит данных в классе уже нет. То, что вы нашли с помощью hexview это информация в блоке, помеченая как "свободная"... Но помечена она т.с. для самого Каше. Не для класса. В классе все - даных нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 10:38 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
Хотя (теоретически) можно попробовать дежурналирование... Может про это подскажут те, кто им пользуется. ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 10:40 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
Может какие резервные копии БД есть? ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 10:40 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
Резервные копии есть, но, видимо, удаление было произведено давно (гораздо дальше имеющихся бэкапов) и все версии содержат тот же набор данных. Хранить же резервные копии годичной давности нет смысла - слишком быстро течет информация да и размер у базы недетский. Теперешняя проблема обнаружилась совершенно случайно. Неужто нельзя информацию из свободного блока приписать к какому-то блоку данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 11:12 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
Andrew KovalchukНеужто нельзя информацию из свободного блока приписать к какому-то блоку данных? Эт врядли! (с) к/ф Белое солнце пустыни Но, как вариант, написать программку по "вычитыванию" этих данных из файла cache.dat (уже как из файла), а потом написать добавление этих данных снова в класс... Но наш паталогоанатом уехал... А сам я такими делами никогда не занимался. На будущее... Сами пишите алгоритмы "пометок" для удаления и последующей "паковки" ваших классов. Возможно это защитит вас от таких ситуаций... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 11:26 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
krvsa, наш паталогоанатом уехал... А сам я такими делами никогда не занимался Эт точно! (с) к/ф Белое солнце пустыни. Доктор сказал - в морг, значит в морг. И не пробуйте! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 13:33 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
Есть такая утилита ^SALVAGE. Ее можно получить в ISC, если у вас есть тех.поддержка. Она позволяет скопировать все блоки данных (в том числе, помеченные как свободные) в другую базу (БД2). Естественно, там появляется много ненужного мусора, поэтому следующий разумный шаг - найти требуемый(е) глобал(ы) в БД2, удалить из них все лишнее, или наоборот, вытащить нужное и (если результат порадует) вернуть в рабочую БД1. Процесс творческий, требует уверенного знания структуры хранения таблиц в глобалах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 15:41 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
Alexey MaslovЕсть такая утилита ^SALVAGE. Ее можно получить в ISC, если у вас есть тех.поддержка. Её дают бесплатно? Она кросверсионная? Или только под какую-то определенную версию Каше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 15:44 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
Дают , если вы на тех.поддержке. Подробностей насчет кроссверсионности не знаю. В 2008.1 работает, 8Кб базы понимает ;) работает ли с длинными (до 3.6Мб) строками, не проверял. Но в SQL/Objects, кстати, длинные строки и не поддерживаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 16:00 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
По ходу, ее (^SALVAGE) можно скачать отсюда. Внутри zip-а и про версии есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 17:48 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
На работе завтра покачаю... А то мало ли чего. ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 20:20 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
Andrew Kovalchuk Вопрос: 1. Как "восстановить" запись помеченную как "удаленную"? Переиндексация класса посредством do ##class(ClassName).%BuildIndices() не помогла. %PurgeIndices() перед переиндексацией выполняли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2009, 21:16 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
Alexey Maslov , качнул, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2009, 08:12 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
dialsAndrew Kovalchuk Вопрос: 1. Как "восстановить" запись помеченную как "удаленную"? Переиндексация класса посредством do ##class(ClassName).%BuildIndices() не помогла. %PurgeIndices() перед переиндексацией выполняли? Не делал. Это обязательно перед построением новых индексов? По документации, вроде, нет. Я не понимаю, чем зачистка старых индексов поможет "удаленным" записям? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2009, 14:41 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
Andrew KovalchukРезервные копии есть, но, видимо, удаление было произведено давно (гораздо дальше имеющихся бэкапов) и все версии содержат тот же набор данных. Хранить же резервные копии годичной давности нет смысла - слишком быстро течет информация да и размер у базы недетский. Теперешняя проблема обнаружилась совершенно случайно. Неужто нельзя информацию из свободного блока приписать к какому-то блоку данных? как меня радуют люди, экономящие на бэкапах при наличии оракловых баз в несколько терабайт и кучи их бэкапов бывает экономят по 10-15 гиг лично мой совет - срок хранения - год. хотя б один из недели бэкап. но это патетика, размер базы интересно какой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2009, 23:29 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
Andrew KovalchukdialsAndrew Kovalchuk Вопрос: 1. Как "восстановить" запись помеченную как "удаленную"? Переиндексация класса посредством do ##class(ClassName).%BuildIndices() не помогла. %PurgeIndices() перед переиндексацией выполняли? Не делал. Это обязательно перед построением новых индексов? По документации, вроде, нет. Я не понимаю, чем зачистка старых индексов поможет "удаленным" записям? Как показывает практика, при разрушении индексов, перестроение индексов без операции "Purge" не всегда приводит к ожидаемому результату. К сожалению, об этом в документации не сказано ничего... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2009, 23:49 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
Andrew KovalchukРезервные копии есть, но, видимо, удаление было произведено давно (гораздо дальше имеющихся бэкапов) и все версии содержат тот же набор данных. Тут вопрос то какой - если вы делали бэкапи встроенными средствами, а не просто копированием cache.dat - то по идее свободных блоков там быть не должно. А если они так все равно есть - возможно еще вариант что у Вас где то на уровне хранения нет отображения этих данных в SQL. В этом случаем нужно смотреть глобалы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2009, 13:10 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
PtnAndrew KovalchukРезервные копии есть, но, видимо, удаление было произведено давно (гораздо дальше имеющихся бэкапов) и все версии содержат тот же набор данных. Тут вопрос то какой - если вы делали бэкапи встроенными средствами, а не просто копированием cache.dat - то по идее свободных блоков там быть не должно. А если они так все равно есть - возможно еще вариант что у Вас где то на уровне хранения нет отображения этих данных в SQL. В этом случаем нужно смотреть глобалы Бэкапы делались простым копированием cache.dat ^SALVAGE после четырех часов работы (1,5 млн. элементов) написал в destination аж ноль узлов :( В связи с обнаружением базы древней давности сабжевый вопрос следует переформулировать следующим образом: Имеется две базы Каше (backup and actual). Каким образом возможно слияние данных хранящихся в этих базах? Приветствуются посылы в сторону документации и примеры кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2009, 18:48 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
Andrew KovalchukБэкапы делались простым копированием cache.dat Файлы cache.dat копировались при работающем сервере или при остановленном? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2009, 20:15 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
Во первых нужно узнать ответь на вопрос ну я Далее... встроенных средств, думаю, нет - задача больно редкая. Монтируете обе базы [BBASE] - backup [ABASE] - actual Получаете каким либо образом (или просто составляете) список всех глобалов из ABASE Индексные (*I ) лучше исключить. Для каждого глобала вызываете команду merge Код: plaintext 1. 2. 3. 4. 5. Потом перестраиваете индексы у всех хранимых классов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2009, 07:52 |
|
||
|
Восстановление данных. Прямое вмешательство в cache.dat
|
|||
|---|---|---|---|
|
#18+
ну яAndrew KovalchukБэкапы делались простым копированием cache.dat Файлы cache.dat копировались при работающем сервере или при остановленном? При остановленном. На запущенном сервере, насколько мне известно, работают штатные средства резервирования (но у нас они не используются). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2009, 09:33 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=35892731&tid=1558512]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
144ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 258ms |
| total: | 507ms |

| 0 / 0 |
