PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Win 7 x64 - Oracle Datapump, Shared Folders und NullSessionShares


PHuV
2011-08-10, 13:28:16
Ich habe ein kompliziertes Problem:

Kunde hat 2 Window 2008 R2 Server mit Oracle 11g laufen.

Damit ich Daten per Datapump überspielen kann, und die Zielmaschine nicht genügend Platz hat, habe ich das Laufwerk per Freigabe mounten lassen.

Da bekomme ich dann aber so Fehlermeldungen wie

Angemeldet bei: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bi
t Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORA-39002: Ung³ltiger Vorgang
ORA-39070: Log-Datei kann nicht ge÷ffnet werden.
ORA-29283: Ung³ltiger Dateivorgang
ORA-06512: in "SYS.UTL_FILE", Zeile 536
ORA-29283: Ung³ltiger Dateivorgang

Dazu gibt es ein Metalink-Eintrag und eine MS-Eintrag , daß man den Paramter

http://support.microsoft.com/kb/124184

daß man den Schlüssel

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters

NullSessionShares

mit dem Freigabenahmen hinzufügen soll.

Nun habe ich zum einen das Problem, daß ich mit

net share

die Freigabe nicht sehe, sondern nur den Namen über die Eigenschaften bekomme.

Jetzt wollte ich mal über VMware, Windows 7 x64 und Oracle 11g das ganze mal simulieren, jedoch habe ich hier nur den Shared-Folders-Ordner, der dann auf meine Host-Laufwerke zugreift.

Hat jemand hier Erfahrungen, bei mir funktioniert das weder beim Kunden noch bei mir. Muß man den NullSessionShares mit $ am Ende angeben? Mit secpol.msc und Lokale Richtlinien/Sicherheitsoptionen und den diversen Netzzugriff-Parametern habe ich auch schon rumgespielt, z.B. Zurückgreifen auf NULL-Sitzung für lokales System zulassen - aktiviert, usw. Ich bin ratlos, es kommt immer die obige Fehlermeldung von Oracle. Ne Menge Doku zu Null-Sitzungen, Named Pipes und NullSessionShares habe ich auch gelesen, aber keine brauchte mich weiter. UNC-Auflösung funktioniert auch nicht.

Kann ich das überhaupt über die VMware und Shared Folders simulieren?

Rajin the troll
2011-08-10, 13:48:27
Mal ne etwas ansere Frage, was spricht agegen den Speicherplatz der Betreffenden Maschinen entsprechend zu erhöhen?

Und soll das ne regelmäßige Lösung sein oder etwas das nur einmal gemacht wird.

Und ich gehe mal auf anhieb auch nicht davon aus das der von dir Verlinkte KB Artikel überhaupt noch zutrifft.

Da sich der Artikel noch auf
Microsoft Windows NT Workstation 3.5
Microsoft Windows NT Workstation 4.0 Developer Edition
Microsoft Windows NT Server 3.5
Microsoft Windows NT Server 4.0 Standard Edition

bezieht, wäre ich mir garnicht sicher ob bei nem 2008 R2 Server der Schlüssel überhaupt noch eine Wirkung erzeilt.

Edit: Hatte recht, wenn man das unbedingt braucht geht das jetzt anders http://social.technet.microsoft.com/Forums/en-US/winserverPN/thread/89c392fa-aece-4cc4-888f-69ad212b9b85

PHuV
2011-08-10, 13:58:48
Das ist der Punkt:

Freigaben, auf die anonym zugegriffen werden kann - Das habe ich auch bereits probiert, hier habe ich testweise die Shared Folders von der VMware angegeben, kein Erfolg.

Das mit dem Platz muß Du mir nicht sagen, aber beim Kunden klappt eine so einfache Erweiterung nicht. Verständlich, da sie über eine SAN-Storage arbeiten, die ist mal nicht so einfach erweiterbar.

Rajin the troll
2011-08-10, 15:55:11
So ich hab jetzt nochmal in meinen Notizen reingeschaut.
Ich gehe mal davon aus das das Exportverzeichniss in der DB richtig angelegt ist und
auch die lese/schreib´rechte in der db entsprechend vergeben wurden.

Lässt du den dump über den systemprozess oder einen user laufen?
Hilft es eventuell in der db einen export/import user zu erstellen der mit gleichen Daten (login/passwort) auch auf dem Zielsystem existiert?

eine übername des Dumps per Netzwerk-import/Export ist keine option?

PHuV
2011-08-10, 18:15:09
So ich hab jetzt nochmal in meinen Notizen reingeschaut.
Ich gehe mal davon aus das das Exportverzeichniss in der DB richtig angelegt ist und
auch die lese/schreib´rechte in der db entsprechend vergeben wurden.

Dafür habe ich ein Script, was seit 4 Jahren funktioniert. Ich habe es auch mit einem internen Laufwerk gegetestet. ;)


Lässt du den dump über den systemprozess oder einen user laufen?

Immer über System, da bei mehreren Schemen oder remapping mit User nicht funktioniert.


Hilft es eventuell in der db einen export/import user zu erstellen der mit gleichen Daten (login/passwort) auch auf dem Zielsystem existiert?

So mache ich es ja aktuell auch.


eine übername des Dumps per Netzwerk-import/Export ist keine option?

Netzwerk-Import?

Haarmann
2011-08-11, 06:47:25
PHuV

Ich dumpe per Ora 10R2 immer auf nen LAN Share - welches Tool nutzt dazu?

Geholt habe ichs damals auch per LAN Share.

Gast
2011-08-11, 13:48:34
http://www.orafaq.com/wiki/Datapump#Network_import

"With network mode imports, one doesn't need any intermediate dump files (GREAT, no more FTP'ing of dump files). Data is exported across a database link and imported directly into the target database."

Ohne genau zu wissen, was du eigentlich bezweckst - wäre das keine Option?

Die Kombination Oracle / Windows + shares scheint oft eine problematische Sache zu sein, siehe z.b. auch http://fritshoogland.wordpress.com/2010/01/20/using-datapump-on-windows-to-write-to-a-share/

Im angegebenen Fall dürfte es so funktioniert haben:
"If you use an unc-Path as directory e.g.
create direcotoy my_dumps ‘\\server5\share2\dir1\’;
the expdp works fine;
BE SURE that the share has write access to everyone , because Oracle.exe runs as SYSTEM under MS-Servers."

PHuV
2011-08-11, 14:42:55
PHuV

Ich dumpe per Ora 10R2 immer auf nen LAN Share - welches Tool nutzt dazu?

Geholt habe ichs damals auch per LAN Share.

Was ist den bitte ein Lan Share? :confused:

PHuV
2011-08-11, 14:48:27
http://www.orafaq.com/wiki/Datapump#Network_import

"With network mode imports, one doesn't need any intermediate dump files (GREAT, no more FTP'ing of dump files). Data is exported across a database link and imported directly into the target database."

Ohne genau zu wissen, was du eigentlich bezweckst - wäre das keine Option?

Das hört sich erst mal gut an, werde ich mal austesten, danke.


Die Kombination Oracle / Windows + shares scheint oft eine problematische Sache zu sein, siehe z.b. auch http://fritshoogland.wordpress.com/2010/01/20/using-datapump-on-windows-to-write-to-a-share/

Im angegebenen Fall dürfte es so funktioniert haben:
"If you use an unc-Path as directory e.g.
create direcotoy my_dumps ‘\\server5\share2\dir1\’;
the expdp works fine;
BE SURE that the share has write access to everyone , because Oracle.exe runs as SYSTEM under MS-Servers."

Und genau das funktioniert eben nicht. Den Link habe ich auch als erstes gefunden.

Ich habe jetzt eine ganz blöde Lösung gemacht: Auf den Windows-Share die großen Archivelogs und Teile der Flash Recovery Area rübergeschoben. Datapump-Dateien dann auf das normale Laufwerk kopiert, Import im Noarchivelog-Modus durchgeführt. Datapump-Dateien wieder gelöscht, und die anderen Dateien wieder hergestellt. Wichtig, es läuft, und Kunde kann arbeiten. Aber auf Dauer ist das garantiert keine Lösung.

Erst mal danke für Eure Hilfe.

Wäre den eine extra-Samba-Installation vielleicht eine Lösung :uponder: ?

Gast
2011-08-11, 16:01:47
Öhm - irgendwie vermischt du da glaube ich mehrere Sachen, beschreibe doch noch mal genau, was du eigentlich erreichen willst...

Datapump ist ein tool zum exportieren und importieren von Daten, vorwiegend eingesetzt um ein subset von Daten von A nach B zu bringen. Entweder mittels a) eines dumpfiles oder b) direkt via db_link
Datapump hat nichts zu tun mit archivelogs (weder im Falle a) noch b) - diese finden Verwendung beim Backup/Restore/Recover von Datenbanken, wofür es aber ein eigenes tool gibt (RMAN). Auch die flash recovery area hat im Normalfall nichts mit Datapump zu tun, sofern man das DIRECTORY-object für das dumpfile nicht explizit dahinlegt.

in kurz:
- Backup/Recovery von ganzen Datenbanken (zum Zwecke Datensicherung) => RMAN
- Ein Duplikat/Klon einer DB anlegen => RMAN duplicate (geht mit 11g sogar übers Netz)
- um "nur Daten" rüberzubringen von A nach B gibts viele gangbare Wege:
=> Datapump, Streams, transportable tablespaces, CTAS über db_link, ...
- evtl wäre auch eine standby-Konfiguration ein gangbarer Weg (d.h. eine primäre Datenbank updated laufend eine standby Datenbank)

PHuV
2011-08-11, 17:45:53
Danke für die Info, aber das meiste davon kenne ich ja. Aktuell hatte ich das Problem, einfach ein Schema von Rechner A nach B zu bekommen, ich selbst bin nicht vor Ort, sondern werkle über eine VPN-Verbindung beim Kunden. Er selbst hat mehrere Oracle-Rechner, meistens mit Win 2008 oder 2003. Zwischen den Rechnern gibt es auch Netzverbindungen. Per Rman als Standby klonen kann ich nicht, da Testsystem auch noch für anderen Instanzen zum Test verwendet wird, sprich mehrere Schemen drauf sind. Zudem will ich ja nicht eine gesamte DB klonen oder recovern, wenn ich nur ein Schema haben will, da nehme ich schon die Datapump. ;)

Jetzt war nur das Problem, daß das Produktivsystem zwar Platz hatte, aber das Testsystem eben nicht. Die Frage ist nun, wie ich einfach und schnell mal so ein Schema rüberspielen kann. Der obige Hinweis, daß die Datapump auch über Netz exportieren und importieren kann, ist schon mal gut, da muß ich dann wohl auch nicht mehr umständlich mit Dateienkopieren hin und her rummachen. Wenn ich, so wie unter Unix, einfach nur ein Laufwerk richtig mounten könnte, und nicht nur über einen Dienst, wie der Windows Share, wäre mir ja auch schon geholfen, auf dem Produktivrechner gibts die erwähnte San-Anbindung mit dicke Platz. Die Datapump ist da leider etwas pingelig.

PHuV
2011-08-12, 15:33:36
http://www.orafaq.com/wiki/Datapump#Network_import

"With network mode imports, one doesn't need any intermediate dump files (GREAT, no more FTP'ing of dump files). Data is exported across a database link and imported directly into the target database."


So, das habe ich gerade mit 2 VMs vernetzt probiert, funktioniert einwandfrei (wenn man diese blöde umständliche Konfiguration der Windows-Firewall nicht vergißt). Nochmals danke, damit spart man sich wirklich das Datei-Hinundher-Geschiebe.