Berkeley Db перенос платформы - PullRequest
       22

Berkeley Db перенос платформы

0 голосов
/ 23 сентября 2009

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

Ответы [ 2 ]

3 голосов
/ 30 ноября 2010

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

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

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

Возможно, вы рассмотрите следующее:

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

1 голос
/ 23 сентября 2009

Здесь описана утилита кросс-платформенной передачи файлов здесь .

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

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

...