2016-11-30 4 views
1

Ich laufen Oracle-Xe-11g auf Rancher OS. Ich möchte die Datensicherung meiner Datenbank übernehmen. Als ich mit dem Befehl versuchtWie man Oracle-Xe-11g Backup von laufenden Docker Container

docker exec -it $Container_Name /bin/bash 

dann trat ich:

exp userid=username/password file=test.dmp 

Es funktioniert prima, und schuf die test.dump Datei.

Aber ich möchte den Befehl mit dem docker exec Befehl selbst ausführen. Wenn habe ich versucht, diesen Befehl ein:

docker exec $Container_Name sh -C exp userid=username/password file=test.dmp 

ich diese Fehlermeldung immer bin: sh: 0: Can't open exp.

+0

Andockfenster kopieren müssen, wenn Sie sh durch bash ersetzen in Ihr Befehl? – user2915097

+0

Ich brauche deinen Image-Namen, damit ich Tests ausführen kann. –

+0

docker run -d --name Oracle-DB -p 49160: 22 -p 1521: 1521 -e ORACLE_ALLOW_REMOTE = wahr wnameless/oracle-xe-11g Dies ist der Befehl, den ich für Oracle db ausführen – Ritcha12

Antwort

2

Das Problem ist: Beim Laufen bash mit -c Schaltern wird es nicht als interaktives oder ein Login-Shell so bash won‘läuft t lese die gleichen Startskripte. Alles, was in /etc/profile, ~/.bash_profile, ~/.bash_login oder ~/.profile eingestellt ist, würde übersprungen werden.

Umgehung:

Lauf Ihres Container mit folgendem Befehl ein:

sudo docker run -d --name Oracle-DB -p 49160:22 -p 1521:1521 -e ORACLE_ALLOW_REMOTE=true -e ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe -e PATH=/u01/app/oracle/product/11.2.0/xe/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin -e ORACLE_SID=XE -e SHLVL=1 wnameless/oracle-xe-11g 

Was ich tun ist, um die Umgebungsvariablen in dem Behälter mit docker gesetzt angeben.

Jetzt die Backup-Datei zu erzeugen:

sudo docker exec -it e0e6a0d3e6a9 /bin/bash -c "exp userid=system/oracle file=/test.dmp" 

Bitte beachten Sie die Datei wird im Inneren des Behälters erzeugt werden, so dass Sie es Host über docker cp command

+1

Der genau gleiche Fehler? –

+0

versucht mit Pfad zu exp Fehler erhalten Nachricht 206 nicht gefunden; Keine Nachrichtendatei für Produkt = RDBMS, fVergewissern Sie sich, dass ORACLE_HOME richtig eingestellt ist Exportieren erfolgreich beendet EXP-00000: Nachricht 0 nicht gefunden; Keine Nachrichtendatei für Produkt = RDBMS, Einrichtung = EXP [Rancher @ IP-172-31-27-83 ~] $ dann versucht, ORACLE_HOME auch zu setzen. aber nochmal fehler. dann schrieb ich Skript in den Container und es läuft erfolgreich. und wenn ich die gleiche Sache zusammen mit dem Befehl es funktioniert nicht versuchen Befehl ist: Docker exec -it $ Container_Name bash -C "Patth/zu/Skript" Selbe über Fehler bekomme ich – Ritcha12

+0

Nein, der Fehler ist Nachricht 206 nicht gefunden; Keine Nachrichtendatei für Produkt = RDBMS, Einrichtung = EXP: Release 11.2.0.2.0 - Produktion am Do 1. Dezember 2016 10.40.55 Copyright (c) 1982, 2009, Oracl ungültiges Format von Export-Dienstprogramm Namen Stellen Sie sicher, dass ORACLE_HOME ordnungsgemäß gesetzt Export EXP-00000 erfolglos beendet : Nachricht 0 nicht gefunden; Keine Nachrichtendatei für Produkt = RDBMS, Einrichtung = EXP [Rancher @ IP-172-31-27-83 ~ – Ritcha12

Verwandte Themen