Domyślam się, że użycie 64-bitowej bazy danych na 32-bitowym pliku LMDB jest trudne do zakończenia ze względu na fakt, że lmdb jest oparty na mapowaniu pamięci.
Konieczny jest zatem konwerter wymagający zrozumienia podstawowego formatu danych. Ten link The LMDB file format wydaje się być dobrym początkiem.
Tańszą alternatywą wydaje się zrzucenie pliku na 64-bitowej platformie (mdb_dump
) i ponowne załadowanie go na 32-bitowej platformie (mdb_load
). Mimo to powoduje to ograniczenia wskazane na stronie połączonego podręcznika: Dumping i ponowne ładowanie baz danych, które korzystają z funkcji porównawczych zdefiniowanych przez użytkownika spowoduje utworzenie nowych baz danych, które używają domyślnych funkcji porównawczych. W tym przypadku jest całkiem prawdopodobne, że przeładowana baza danych ulegnie uszkodzeniu bez możliwości naprawy, co uniemożliwi zapisanie ani odzyskanie danych.
Jednak podczas przeszukiwania Internetu, gdzieś przeczytałem, że można go użyć do przeniesienia 32-bitowego DB do 64-bitowego. Mogę tylko podejrzewać, że powinien działać również w odwrotny sposób (jak nigdy nie widziałem tego formatu). Ponieważ zrzut jest formatem tekstowym, powinno być możliwe – może być z pośrednim krokiem przetwarzania tekstu.
Inną, raczej tanią alternatywą dla IMHO, byłoby uruchomienie 32-bitowego lmdb na platformie 64-bitowej. Jak wiem, jest to typowe i zwykłe w Windowsie, nie byłem (całkowicie) pewien dla Linuksa i znalazłem to: SE: How to run 32-bit app in Ubuntu 64-bit?. Niestety, pytający stwierdził, że nie jest to możliwe w tym konkretnym przypadku.
Czy można ponownie skompilować plik wykonywalny? – Jouster500