Hallo,
ich habe ein kleine( ) 3 GB große Datenbank und eine Client Software mit der ich meine Datenbank ansteuern kann.
Nun ich möchte meinen Client und meine Datenbank auf DVD kopieren,
diese dann jemandem in die Hand drücken, der kein PostgreSQL installiert hat.
Ziel ist es, dass die Datenbank per DVD AutoStart gestartet.
Danach ich einfach meinem Client von der DVD sage verbinde dich mit der
localhost Datenbank die auf der DVD sich befindet.
Natürlich sollte die Datenbank ReadOnly sein.
Was gehe ich vor:
Ich installiere auf meinem PC PostgreSQL
Ich kopiere das ganze Verzeichnis C:\Programme\PostgreSQL auf meine DVD
Ich starte von der DVD mit pg_ctl die DVD Datenbank
Ich starte den Client und verbinde mich mit localhost port 5432
Probleme:
Wie muss die postgres.conf aussehen, um die Datenbank auf minimalste Log stuffe zu setzten?
Mit welchem Benutzer starte ich die Datenbank?
Brauche ich überhaupt einen Benutzer zum starten, oder reicht mein WindowsAccount aus
Geht das Lesen von DVD ohne RamDisk
Geht das starten einer Datenbank überhaupt ohne installation von PostgreSQL
Ich würde mich freuen, wenn mir einer von euch helfen könnte.
Ich wäre auch mit Lesematerial zu frieden, wenn es soetwas wie eine AutoRun Live CD gibt, die nicht gebootet werden muss.
Wie gesagt, ich möchte im laufenden Betrieb eine DVD einlegen, die DVD startet automatisch die Datenbank.Danach möchte ich mich mit dem Client
anmelden und den Inhalt der Datenbank sehen/lesen können.
Schreibrechte will ich gar nicht haben, auch wenn es temporär möglich wäre.
Es soll ein ReadOnly Medium sein.
Ich stell mir das , wie eine DemoDVD vor, man zeigt jemandem anderen ohne installierte Software einfach seine Arbeit.
hier dürfte ein erhebliches Problem bestehen. Im Verzeichnis der Datenbank gibt zwei Dateien die Dir Problemen machen werden. Die Datei “postmaster.pid” enthält die aktuelle PID des Datenbankservers und die Datei “postmaster.opts” den Befehl um den postmaster zu starten. Dieser Befehl enthält zudem auch die vollständige Pfad-Angabe. Ich kann mir nicht vorstellen, dass Du sicherstellen kannst, dass das Laufwerk immer den gleichen Namen hat.
Mir fallen da noch mehr Probleme ein, die man umschiffen müsste: das Transactionlog ist nur eines davon.
Eine reine read-only Datenbank wird wohl nur schwer zu realisieren sein, was ich mir allerdings vorstellen könnte, das du alle Dateien von DVD zurück auf die Platte kopierst, die DB von dort startest und dann beim beenden wieder löscht.
Die Pfadangaben könnte man unter Umständen umgehen, indem man die Umgebungsvariablen von Windows nutzt und dort einträgt, hier dürfte es sicherlich eine Variable für TEMP geben, in die du das alles installieren kannst.
Das Erstellen oder Modifizieren von Datein ist nicht das Problem, die Frage lautet doch, wo liegen die default definierten Pfade, die PostgreSQL benutzt. Für zu schreibenen Dateien verwendet PostgreSQL “Data Directory”, dass ist der Pfad der Datenbank, als Bezugs-Pfad. Und der liegt in diesem Fall auf der DVD. Schreiben von Dateien ist da bekanntlich nicht möglich.
Die einzige Möglichkeit, die ich sehe, ist die DVD auf dem Computer zu kompieren. Ob der Intersent da aber 3 GB akzeptiert, wage ich zu bezweifeln. Von den Programm-Dateien wüde ich nur das notwendigste bereitstellen. Zudem müßte die Datei “postmaster.opts” danach angepast werden. In der Registry müssen Einträge erstellt werden, u. a. “Data Directory”. Eventuell muß auch die Datei “pgpass.conf” erstellt werden.
Schade, also geht das nicht so wie ich mir das Vorstelle.
Ich mein ich kann das Loggen und die Stats umlenken, aber wie bringe ich Ihm bei, dass das halt kein Pid geschrieben wird, und das die Daten auf DVD sind.
Ich meine das mit dem PID im Temp Ordner ginge ja auch noch.
Gibt es keine neuerungen seitens PostgreSQL???
Es muss doch eine read-only Version geben.
Muss es nicht. Eine Datenbank soll Daten verarbeiten, nicht read-only sein.
Also, habe mich gerade etwas mit den PG Entwicklern im IRC unterhalten, auf CD oder DVD sieht da keiner eine Möglichkeit. Höchstens, das ganze auf einem USB Stick unterzubringen, aber das dürfte die Kosten in die Höhe treiben, oder?
Eine Alternative wäre, die bereits existierende PostgreSQL Live CD zu nehmen und um die eigene Applikation zu erweitern. Muss der Kunde/Betrachter halt die DVD Booten. Eine weitere, ein Vmware Image zu erstellen und mitsamt dem Vmware Player auf die DVD zu packen.
doch mal die Frage gestellt, warum unbedingst 3GB? Geht es nicht auch mit 10 MB? Andere Lösung wäre 2 gleisig zu fahren, eine kleine Datenbank für die Neugier und eine große Datenbank wenn weiteres Interesse besteht. Dann ist man auch bereit entsprechende Kopierzeiten zu akzeptieren. Sollte dann aber auch nicht mehr wie 10 - 15 Minuten überschreiten.
Das Erstellen oder Modifizieren von Datein ist nicht das Problem, die Frage lautet doch, wo liegen die default definierten Pfade, die PostgreSQL benutzt. Für zu schreibenen Dateien verwendet PostgreSQL “Data Directory”, dass ist der Pfad der Datenbank, als Bezugs-Pfad. Und der liegt in diesem Fall auf der DVD. Schreiben von Dateien ist da bekanntlich nicht möglich.
Würde es vielleicht so gehen,
Ich kopiere alles was ich schreibtechnisch brauche auf C:\Temp,
sprich alle pg_foo ordner die bin struktur usw.
Lege auf der DVD schon die Ordner Sturtur so an, das ein Verweis auf C:\Temp liegt.
Also Verweis von pg_xlog auf c:\Temp\pg_xlog.
Ein Verweis von DVD .pid auf c:\Temp.pid
Nun starte ich die Datenbank und die zu schreibenden Dateien müsste er trotzdem schreiben können weil sie ja auf Temp liegen.
Symbolische Links wie unter Linux, das wäre jetzt toll.
Denkt Ihr, das würde funktionieren?
Ich bräuchte doch nur die Daten auf der DVD, postgresql sollte doch die Möglichkeit haben eine reine Datenquelle lesen zu können, ohne in das Verzeichnis ein .pid file zu legen usw.
Cluster oder Tablespace wären auch eine alternative.
Muss es nicht. Eine Datenbank soll Daten verarbeiten, nicht read-only sein
Ich will hier keine Diskussion über was eine DB ist und was sie machen muss,
sondern ich will einer dritten Partei meine Daten zeigen, ohne dass dieser Sie bearbeiten darf.
Es gibt eine Demo CD von Postgresql, aber die startet gleich ein komplettes Linux. Die könnte man modifizieren, aber dazu hatte ich früher schon mal etwas geschrieben.
Wenn ich die Boot CD pg-live jemandem in die Hand gebe, dann muss er erst einmal das Recht haben von CD oder DVD Booten zu dürfen, das ist nicht Selbstverständlich. Beispiel Bank oder UNI.
Außerdem möchte ich keinem die Möglichkeit geben, jegliche Zugriffsrechte von Windows zu übergehen, sprich per Linux auf Windows Platten zugreifen zu können usw.
Klar kann man das Ausschalten usw.
Das ist nicht das Thema.
Fakt ist ich möchte eine Autorun CD/DVD realisieren mit dem ich eine Demo der Daten einer dritten Person zeigen kann, ohne das irgendwas auf dem Rechner der Person installiert werden muss. Maximal das Temp file werde ich nutzen können oder dürfen.
Meinen Client und meine Autorun Software kann ich selber Programmieren, so dass die Benötigten Programme und auch Postgresql startet.
Nur gibt es für mich im Moment keine Möglichkeit, die Datenbank zu starten ohne das ein Eintrag im Ordner Data geschieht.
Eine Umleitung des .pid Files der Logs, Stats auf Temp per Einstellung wäre super. Postgresql starten mit einem beliebigen Benutzer usw.
So ich habe jetzt Verschiedenen Varianten getestet.
Leider schreibt PostgreSQL soviel zeug raus, auch wenn
man nichts macht außer die Datenbank zu starten.
Ich habe nun die Verzeichnisse versucht per Verknüpfung usw.
zum starten zu bekommen, aber auch das funktioniert nicht.
Da kommt halt Windows mit ich kenne keine Symbolischen Links
WAMP + PostgreSQL das wäre jetzt cool.
Wenn Ihr soetwas kennt, dann immer her damit.