Миграция платформы Berkeley Db

У меня есть большой (несколько Гб) berkeley db, который я думаю о переносе с Windows (2K) на Linux (либо Redhat, либо Ubuntu). Я не уверен, как это сделать. Могу ли я просто переместить файлы БД или мне нужна специальная утилита преобразования?


person scoobydoo    schedule 22.09.2009    source источник


Ответы (2)


Файлы базы данных и журналов переносимы между различными системами с обратным порядком байтов. Berkeley DB распознает тип системы, в которой он находится, и соответственно заменяет байты для структур данных, которыми он управляет, которые составляют саму базу данных. Файлы регионов Berkeley DB, отображаемые в памяти, не переносимы. Это не такая уж большая проблема, потому что файлы регионов содержат кеш и блокировки, которые, поскольку ваше приложение не будет работать во время перехода, будут воссозданы в новой системе.

Но будьте осторожны, Berkeley DB ничего не знает о порядке байтов или типах в ваших данных (в ваших ключах и значениях, хранящихся в "DBT"). Код вашего приложения отвечает за знание того, на какой системе оно работает, как оно хранит данные (с прямым порядком байтов или с прямым порядком байтов) и как их передавать (или просто переупорядочивать при доступе). Кроме того, обратите особое внимание на функцию сравнения btree. Это тоже может отличаться в зависимости от архитектуры вашей системы.

Файлы базы данных и журналов также переносимы между операционными системами с той же оговоркой, что и с порядком байтов: данные приложения являются обязанностью приложения.

Вы можете рассмотреть следующие вопросы:

Раскрытие информации: я работаю в Oracle менеджером по продуктам Berkeley DB. :)

person Greg Burd    schedule 30.11.2010

Существует кроссплатформенная утилита для передачи файлов, описанная здесь.

Вам также может понадобиться позаботиться о порядке байтов на вашем компьютере, но это обсуждается немного здесь.

Если вы используете Java Berkeley, хотя это не имеет значения?

person John    schedule 22.09.2009
comment
Я использую привязку C++. Кстати, я посмотрел ссылку, которую вы предоставили. Я не уверен, что он переносит данные, вместо этого он, кажется, позволяет просматривать файлы на разных платформах - если я не ошибаюсь? - person scoobydoo; 23.09.2009
comment
Я думал, что эта утилита может прозрачно решать проблемы совместимости файлов. Я думаю, что если вы решите, чтобы операционная система работала хорошо, а затем чтобы Berkeley DB работала хорошо на других ваших платформах, тогда вы должны быть настроены. В любом случае, наилучшие пожелания; мои знания исчерпываются вашим вопросом. - person John; 25.09.2009