Thread: Extract (Recover) data from a cluster built on a different architecture (ARM).

Hi

I'm looking for a way to extract the data from a PostgreSQL 8.3.14
database (cluster) that was built using an an ARM/Linux server.  The
problem is that the hardware itself is a brick and the replacement
hardware will be X86/AMD64.

Sadly my backups are all copies of the DB files and don't include a
recent text based dump (fail!).  All attempts so far to start up a
server using the original files have failed with a couple of different
errors (Failed to parse...).  I'm rapidly coming to the conclusion
that this is to do with endianness.  X86 is little endian whereas ARM
is primarily big endian.

Are there any tools for recovering data from a database built with a
different architecture or is my data toast unless I can lay my hands
on an ARM box?

Thanks so much for your time.

Re: Extract (Recover) data from a cluster built on a different architecture (ARM).

From
Cédric Villemain
Date:
2011/4/24 Phil Couling <couling@gmail.com>:
> Hi
>
> I'm looking for a way to extract the data from a PostgreSQL 8.3.14
> database (cluster) that was built using an an ARM/Linux server.  The
> problem is that the hardware itself is a brick and the replacement
> hardware will be X86/AMD64.
>
> Sadly my backups are all copies of the DB files and don't include a
> recent text based dump (fail!).  All attempts so far to start up a
> server using the original files have failed with a couple of different
> errors (Failed to parse...).  I'm rapidly coming to the conclusion
> that this is to do with endianness.  X86 is little endian whereas ARM
> is primarily big endian.

I would test with qemu to get a virtualized ARM then install
postgresql and dump the data.

>
> Are there any tools for recovering data from a database built with a
> different architecture or is my data toast unless I can lay my hands
> on an ARM box?

I don't think it exists one

>
> Thanks so much for your time.
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>



--
Cédric Villemain               2ndQuadrant
http://2ndQuadrant.fr/     PostgreSQL : Expertise, Formation et Support

Phil Couling <couling@gmail.com> writes:
> I'm looking for a way to extract the data from a PostgreSQL 8.3.14
> database (cluster) that was built using an an ARM/Linux server.  The
> problem is that the hardware itself is a brick and the replacement
> hardware will be X86/AMD64.

> Sadly my backups are all copies of the DB files and don't include a
> recent text based dump (fail!).  All attempts so far to start up a
> server using the original files have failed with a couple of different
> errors (Failed to parse...).  I'm rapidly coming to the conclusion
> that this is to do with endianness.  X86 is little endian whereas ARM
> is primarily big endian.

> Are there any tools for recovering data from a database built with a
> different architecture or is my data toast unless I can lay my hands
> on an ARM box?

You might possibly be able to do it with a different big-endian machine
such as PPC (it would also have to match on alignment rules and
floating-point format, but I think you'd probably squeak by on those).
Cedric's suggestion of an emulator is probably a surer answer though.

            regards, tom lane



On Sun, Apr 24, 2011 at 4:16 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Phil Couling <couling@gmail.com> writes:
> I'm looking for a way to extract the data from a PostgreSQL 8.3.14
> database (cluster) that was built using an an ARM/Linux server.  The
> ...
> Are there any tools for recovering data from a database built with a
> different architecture or is my data toast unless I can lay my hands
> on an ARM box?

You might possibly be able to do it with a different big-endian machine
such as PPC (it would also have to match on alignment rules and
floating-point format, but I think you'd probably squeak by on those).
Cedric's suggestion of an emulator is probably a surer answer though.

                       regards, tom lane

QEMU can emulate an ARM system. It won't be really fast, but it might work for you.  Disclaimer: I've never used QEMU to emulate an ARM system, but the docs say that you can.

http://wiki.qemu.org/Main_Page