postgres-db von win und linux zugänglich machen? (dual-boot win/linux)

    • taschenbillard
      taschenbillard
      Bronze
      Dabei seit: 08.10.2007 Beiträge: 1.452
      hi,

      ich habe eigentlich (noch) gar kein konkretes problem sondern ein kleines vorhaben und wollte nur mal wissen, ob wer hier (evtl. netsrak?) schon mit so ner konstellation erfahrungen gemacht hat.

      ich habe ein dualboot-laptop mit win7 64bit / fedora 15 64bit... i.d.r. lasse ich auf dem fedora meine postgres-db (ver. 8.4.8) laufen und greife dann übers netzwerk von meinem desktop-pc (winxp,32bit) auf diese db zu (pokertracker 3).

      es kommt aber auch schonmal vor (gar nicht mal so selten), dass ich auf dem laptop direkt unter win7 daddele. danach kopiere ich meine hh auf den desktop-rechner, schmeiße pokertracker an und importiere die hände nachträglich.

      um es mir da ein bisschen einfacher zu machen, hatte ich die idee, die postgres-db auf eine partition zu kopieren, die von beiden systemen zugänglich ist und zusätzlich eine zweite pt-installation auf das win7-system zu machen, damit ich nun auch unterwegs meine stats etc. habe.

      so werde ich es ausprobieren:
      - ntfs-partition für die db erstellen (label: poker)
      - 'poker' vom fedora aus über die fstab als postgres-user automatisch beim booten mounten (hier ist anzumerken, dass ntfs keine linux-filesystem-berechtigungen kennt und die berechtigungen nur temporär durch die mount-optionen bestimmt werden und beim unmounten wieder verfliegen! damit aber das linux-postgres diese schon vorhandene und dorthin kopierte db akzeptiert, muss sie dem user gehören, der auch den postgres-prozess gestartet hat (user 'postgres') )
      - gleiche postgres-version auf dem win-system installieren und von dort aus ebenfalls versuchen, auf diese datenbank zuzugreifen...

      hat hier schonmal jmd. sowas versucht? falls ja, wie sind die erfahrungen mit den unterschiedlichen zeichensätzen der systeme, gibt das kuddelmuddel? (aktuell weiss ich gar nicht, welchen zeichensatz mein linux benutzt, aber ich geh mal von unicode aus, aber unicode ist ja auch nicht unbedingt gleich unicode, so weiss ich, dass win defaultmäßig ein anderes unicode benutzt als linux...)

      naja, ich werds auf jeden fall mal ausprobieren, wobei ich noch die pt-leute wegen eines weiteren lizenzschlüssels anschreiben muss, weil ich meine zweitlizenz auf irgendeinem alt-system, welches es nicht mehr gibt, verbraten habe ...

      evtl. hat sich netsrak ja schonmal mit einer solchen konstellation befasst?

      danke und gruß
      tb
  • 5 Antworten
    • taschenbillard
      taschenbillard
      Bronze
      Dabei seit: 08.10.2007 Beiträge: 1.452
      okay, mounten der poker-ntfs-partition als 'postgres', kopieren des db-verzeichnisses dorthin und starten der db hat schonmal funktioniert...

      eintrag in der fstab sieht so aus:
      code:
      /dev/sda7    /mnt/cardgames    ntfs-3g    uid=postgres,gid=postgres,umask=0077,locale=en_US.UTF-8    0 0


      code:
      [root@vince ~]# ls -lah /mnt
      total 20K
      drwxr-xr-x.   5 root     root     4.0K Oct 18 09:07 .
      drwxr-xr-x.  24 root     root     4.0K Oct 18 09:23 ..
      drwx------.   1 postgres postgres 4.0K Oct 18 09:30 cardgames
      


      dann mit
      code:
      [root@vince ~]# cp -rp /usr/local/postgresql-8.4.8/data/* /mnt/cardgames

      alles rüberkopiert, dann als user 'postgres' die db starten:
      code:
      [postgres@vince ~]$ /usr/local/postgresql-8.4.8/bin/pg_ctl -D /mnt/cardgames/ start
      server starting
      LOG: database system was shut down at 2011-10-17 00:08:04 CEST
    • netsrak
      netsrak
      Gold
      Dabei seit: 11.03.2006 Beiträge: 36.823
      Nur das ich das richtig verstehe:
      du hast einen Rechner (Dualboot) auf dem du Linux und Windows booten kannst und möchtest in beiden Systemen Postgresql installieren und auf eine Postgresql Partition zugreifen?

      Kann mir nicht vorstellen dass das ohne Datenverlust geht. Ich rate von sowas schon bei 2 identischen Windows Systemen mit USB Platte für Postgres ab weil ich das einfach für zu instabil halte.
      Aber ich lasse mich gerne eines besseren belehren :D
    • taschenbillard
      taschenbillard
      Bronze
      Dabei seit: 08.10.2007 Beiträge: 1.452
      naja, datenverlust sehe ich eigentlich nicht, aber verstanden hast du`s schon richtig. will einfach (nie gleichzeitig) von beiden systemen aus auf die gleiche db zugreifen, die auf einer lokalen partition schlummert.

      im moment hab ich schwierigkeiten vom windows aus die db zu starten. erhalte mit
      code:
      C:\pgsql\bin>pg_ctl.exe start -D p:/
      p: = db-verzeichnis/partition
      den fehler
      code:
      C:\pgsql\bin>FATAL: ungültiger Wert für Parameter >>lc_monetary<<: >>en_US.UTF-8<<

      ich wusste doch, dass ich damit schwierigkeiten kriege, obwohl mein windows eigentlich in englisch ist
      code:
      Get-Culture
      in der powershell sagt mir allerdings auch deutsch ... hmmm

      wenn ichs in der postgres.conf auf "de_DE" stelle, gibts beim start sowas:
      code:
      C:\pgsql\bin>FATAL: database files are incompatible with server
      DETAIL: The database cluster was initialized with USE_FLOAT8_BYVAL but the server was compiled without USE_FLOAT8_BYVAL.
      HINT: It looks like you need to recompile or initdb.


      hab aber auch nur ein zip-file für postgres 8.4.9 statt 8.4.8 gefunden... werds jetzt wohl mal selbst kompilieren ...
      oder es auch einfach schon lassen, eigentlich keine lust, mich in die zeichensatz-problematik einzulesen, das ist mir immer zu nervig... -.-
    • taschenbillard
      taschenbillard
      Bronze
      Dabei seit: 08.10.2007 Beiträge: 1.452
      Original von taschenbillard
      ... werds jetzt wohl mal selbst kompilieren ...
      oh gott ne, das klingt megakompliziert ... werd mir wohl was anderes überlegen müssen ... hmmm
    • netsrak
      netsrak
      Gold
      Dabei seit: 11.03.2006 Beiträge: 36.823
      vermutlich sind die Dateiformate/Zeichenformate der Postgresql Dateien unter Linux/Windows nicht kompatibel.