У меня есть большой (несколько Гб) berkeley db, который я думаю о переносе с Windows (2K) на Linux (либо Redhat, либо Ubuntu). Я не уверен, как это сделать. Могу ли я просто переместить файлы БД или мне нужна специальная утилита преобразования?
Миграция платформы Berkeley Db
Ответы (2)
Файлы базы данных и журналов переносимы между различными системами с обратным порядком байтов. Berkeley DB распознает тип системы, в которой он находится, и соответственно заменяет байты для структур данных, которыми он управляет, которые составляют саму базу данных. Файлы регионов Berkeley DB, отображаемые в памяти, не переносимы. Это не такая уж большая проблема, потому что файлы регионов содержат кеш и блокировки, которые, поскольку ваше приложение не будет работать во время перехода, будут воссозданы в новой системе.
Но будьте осторожны, Berkeley DB ничего не знает о порядке байтов или типах в ваших данных (в ваших ключах и значениях, хранящихся в "DBT"). Код вашего приложения отвечает за знание того, на какой системе оно работает, как оно хранит данные (с прямым порядком байтов или с прямым порядком байтов) и как их передавать (или просто переупорядочивать при доступе). Кроме того, обратите особое внимание на функцию сравнения btree. Это тоже может отличаться в зависимости от архитектуры вашей системы.
Файлы базы данных и журналов также переносимы между операционными системами с той же оговоркой, что и с порядком байтов: данные приложения являются обязанностью приложения.
Вы можете рассмотреть следующие вопросы:
- Выбор порядка следования байтов
- DB->set_lorder()
- Руководство по началу работы с Berkeley DB для транзакционных Приложения
- Справочное руководство по Berkeley DB
- Закадровый голос о Berkeley DB/DS (Data Магазин)
- Закадровый голос о Berkeley DB/CDS (Concurrent Data Store )а>
- Документация по Berkeley DB
Раскрытие информации: я работаю в Oracle менеджером по продуктам Berkeley DB. :)
Существует кроссплатформенная утилита для передачи файлов, описанная здесь.
Вам также может понадобиться позаботиться о порядке байтов на вашем компьютере, но это обсуждается немного здесь.
Если вы используете Java Berkeley, хотя это не имеет значения?