Использование в Sas.Планета кеша в формате Berkeley
Модератор: Tolik
Re: Использование в Sas.Планета кеша в формате Berkeley
Коллеги, есть у меня сильно распухший кэш в БерклиДБ, из которого я удалил через САСПланету очень немалую кучу тайлов, но размер занимаемый на винте не изменился. А вопрос в следующем - что надо запустить из управления БД и с какими ключами, чтобы ничего не запороть, и таки ужать освободившийся кэш до адекватных размеров?
- DJ VK
- Гуру
- Сообщения: 1468
- Зарегистрирован: 16 апр 2009, 13:57
- Откуда: 8 км. от МКАД
- Благодарил (а): 80 раз
- Поблагодарили: 314 раз
Re: Использование в Sas.Планета кеша в формате Berkeley
Невнимательно читаешь. В этой самой теме раза 2-3 минимум это уже обсуждалось. Рекомендую полистать прошлые сообщения годика за 2 с половиной (когда накопился опыт эксплуатации Беркли). первую половину то есть можно не читать.Sant118 писал(а):я удалил через САСПланету очень немалую кучу тайлов, но размер занимаемый на винте не изменился
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Использование в Sas.Планета кеша в формате Berkeley
Есть 3 способа:
- использовать консольные утилиты db_dump и db_load, перенаправив вывод первой на ввод второй
- переименовать *.sdb в *.bad и натравить на кэш sdb_util с включённой опцией восстановления из bad файлов
- в управлении кэшем просто скопировать весь кэш в новую папку
Первый способ самый хардкорный, но и самый быстрый.
Второй способ будет создавать промежуточные файлы на диске для каждого sdb файла.
Третий способ самый юзер-френдли, но и медленнее первых двух. Хотя, если разместить папку env целевого кэша на RAM диске, то всё будет достаточно быстро.
- использовать консольные утилиты db_dump и db_load, перенаправив вывод первой на ввод второй
- переименовать *.sdb в *.bad и натравить на кэш sdb_util с включённой опцией восстановления из bad файлов
- в управлении кэшем просто скопировать весь кэш в новую папку
Первый способ самый хардкорный, но и самый быстрый.
Второй способ будет создавать промежуточные файлы на диске для каждого sdb файла.
Третий способ самый юзер-френдли, но и медленнее первых двух. Хотя, если разместить папку env целевого кэша на RAM диске, то всё будет достаточно быстро.
Re: Использование в Sas.Планета кеша в формате Berkeley
Как раз оправдывает полностью. Никакой файловый кэш на выделенном сервере не будет на 100+гигах работать так же быстро при ad-hoc доступе, как настроенная СУБД.xromeo писал(а):Не вариант. Цель не оправдывает средстваиспользуйте БД, которые заточены на сетевую работу - у нас же есть поддержка СУБД в конце концов!
Не какую-то, а специалист по которой есть в доступности. Или в чём самому придётся разбираться. Ну и из списка поддерживаемых, разумеется.xromeo писал(а):надо выбирать какую-то субд
СУБД состоит из клиентской части и собственно сервера. На все клиентские машины ставится первое. На один сервер - второе. Как правило, на сервер можно не ставить отдельно клиентскую часть, даже если на самом сервере запускать сас.xromeo писал(а):устанавливать на все машины
Это самое простое. Через конвертер кэша, или менеджер кэша, или как он там называется.xromeo писал(а):как-то конвертировать из Беркли в эту СУБД
Вы будете удивлены, но всё ещё хуже: Berkeley это ВСТРАИВАЕМАЯ БД, а они вообще для одного приложения только используются (даже не для двух приложений на одном компе под одним юзером), исключения лишь подтверждают это правило.xromeo писал(а):А что касается Berkeley-кэша - получается так, что он подходит только для однопользовательского режима. Один компьютер - один кэш - один пользователь.
- vdemidov
- Гуру
- Сообщения: 1687
- Зарегистрирован: 12 дек 2008, 13:10
- Откуда: Киев
- Благодарил (а): 191 раз
- Поблагодарили: 157 раз
Re: Использование в Sas.Планета кеша в формате Berkeley
vasketsov
Как-то ты ну очень оперативно отвечаешь. Всего пол года прошло.
Как-то ты ну очень оперативно отвечаешь. Всего пол года прошло.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Re: Использование в Sas.Планета кеша в формате Berkeley
Читал, потому и спросил что и с какими ключами запустить, так как область баз данных для меня тёмный лес, а там лишь написано "использовать дб_дамп и дб_лоад", что не очень информативно. Понятия не имею с какими ключами и тем более как перенаправить вывод первой на ввод второй.zed писал(а):Есть 3 способа:
- использовать консольные утилиты db_dump и db_load, перенаправив вывод первой на ввод второй
- переименовать *.sdb в *.bad и натравить на кэш sdb_util с включённой опцией восстановления из bad файлов
Третий способ самый юзер-френдли, но и медленнее первых двух. Хотя, если разместить папку env целевого кэша на RAM диске, то всё будет достаточно быстро.
Видимо придется вторым способом...
Еще вопрос: как папку env можно оторвать от папки самой базы? РАМ диск есть, но всего 4 гига. Расписал бы кто-нибудь подробно для непрограммеров, а для простых юзеров, на некоторых форумах шапку темы делают со всей информацией в подробнейшем виде - очень удобно.
- Parasite
- Администратор
- Сообщения: 5646
- Зарегистрирован: 23 окт 2008, 17:38
- Благодарил (а): 124 раза
- Поблагодарили: 508 раз
Re: Использование в Sas.Планета кеша в формате Berkeley
А зачем (учитывая, что "область баз данных для меня тёмный лес"©)?Sant118 писал(а):как папку env можно оторвать от папки самой базы?
The only difference between me and a mad man is that I am not mad. /Salvador Dali/


-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Использование в Sas.Планета кеша в формате Berkeley
В первоначальном вопросе про "ключи" и слова небыло. А команды очень простые (предполагается что утилиты лежат в корне с папкой SAS):Sant118 писал(а):Читал, потому и спросил что и с какими ключами запустить
Код: Выделить всё
db_recover -h cache_db\sat\env\ -vКод: Выделить всё
db_dump cache_db\sat\z19\137\83\550.335.sdb | db_load cache_db\sat\z19\137\83\550.335.sdb.newЯ создаю папку env на RAM диске, а в папке с кэшем создаю символьную ссылку на ту папку. После завершения копирования, удаляю ссылку и переношу папку env на её законное место. В новых виндах (начиная с Vista) для создания ссылок есть команда mklink. Far Manager умеет их создавать из коробки (Alt+F6), для TotalCommander нужен плагин. Если погуглить по вопросу NTFS Link, то найдётся много интересного.Sant118 писал(а):Еще вопрос: как папку env можно оторвать от папки самой базы?
-
sergbrother
- Новичок
- Сообщения: 24
- Зарегистрирован: 13 май 2012, 08:57
Re: Использование в Sas.Планета кеша в формате Berkeley
Доброго.
В течении последних 5 лет собирал базу всего что мог по Центральному региону РФ (Москва, область, Тула, Калуга, Орел, Тверь, Питер, Коломна и т.д.) в Sasplanet.
Сначала уперся года три назад в 50 миллионов файлов тайлов под Windows XP (это когда ее Berkely DB не использовал).
Потом после консультаций с Zed'ом перешел на Berkely DB.
Вроде все неплохо.Объем базы около 600 ГБайт.
Но есть одна беда - база работает только на одном отдельно взятом ноутбуке Panasonic. Перетащить ее на другие компы с помощью простого копирования всех файлов типа Sascache/*.* с последующим использованием в другом экземпляре Sasplanet не получается - он все эти файлы не показывает вообще (никакие), а через пару минут сваливается и подкрушивает базу.
При этом все имена файлов и пути к ним пишет в строке статуса правильно, просто ни хрена не кажет.
Что же я делаю неправильно?
Или скопировать и указать путь недостаточно?
В течении последних 5 лет собирал базу всего что мог по Центральному региону РФ (Москва, область, Тула, Калуга, Орел, Тверь, Питер, Коломна и т.д.) в Sasplanet.
Сначала уперся года три назад в 50 миллионов файлов тайлов под Windows XP (это когда ее Berkely DB не использовал).
Потом после консультаций с Zed'ом перешел на Berkely DB.
Вроде все неплохо.Объем базы около 600 ГБайт.
Но есть одна беда - база работает только на одном отдельно взятом ноутбуке Panasonic. Перетащить ее на другие компы с помощью простого копирования всех файлов типа Sascache/*.* с последующим использованием в другом экземпляре Sasplanet не получается - он все эти файлы не показывает вообще (никакие), а через пару минут сваливается и подкрушивает базу.
При этом все имена файлов и пути к ним пишет в строке статуса правильно, просто ни хрена не кажет.
Что же я делаю неправильно?
Или скопировать и указать путь недостаточно?