Ich habe Oracle 10 auf einem Computer und da habe ich eine Datenbank centt. Auf B-Computer habe ich Oracle 11.2.0 installiert und es gibt keine Datenbank. Der Name der Datenbank auf einem Computer ist Centt und dort habe ich auch einige Benutzer wie STT, WNN, Tnn usw. Jetzt möchte ich die gesamte Datenbank von einem Computer mit allen Benutzern in eine Datei exportieren (zB allDBdump.dat) . Dann möchte ich diese Datenbank (Datei allDBdump.dat) zu B Computer importieren. Ich habe Exportbefehl auf einem Computer wie unten verwendet:Wie exportiere ich eine komplette Datenbank von Oracle 10 und importiere sie mit allen Benutzern nach Oracle 11.2.0?
exp userid=sys/sys file='c:\allDBdump.dat' log='c:\allDBdump.log' FULL=Y
Nun würde Ich mag mit allen Benutzern gesamte Datenbank auf einem Computer importieren. Ich weiß, dass ich vor dem Import eine Datenbank auf einem Computer erstellen muss, von "Database Configuration Assistant". Dann brauche ich durch Befehle alle Benutzer in SQL-Tool zu erstellen:
CREATE USER st IDENTIFIED BY st;
GRANT ALL PRIVILEGES TO st WITH ADMIN OPTION;
GRANT IMP_FULL_DATABASE TO st WITH ADMIN OPTION;
Dann benutze ich Befehl Datenbank importieren:
imp 'sys/[email protected]:1521/centt as sysdba' FULL=Y file=allDBdump.dat fromuser=st touser=st
Diese Lösung ist gut, aber ich brauche alle Benutzer vor dem Import wissen . Die Frage ist, wie man es macht, wie man allDBdump.dat importiert, ohne alle Benutzer auf einem Computer zu erstellen. Etwas wie:
imp 'sys/[email protected]:1521/centt as sysdba' FULL=Y file=allDBdump.dat IMPORT_ENTIRE_DATABASE_WITH_ALL_USERS_ON_A_COMPUTER
Ihnen sehr danken.
sich selbst einen Gefallen tun und verwenden impdp/expdp statt exp/imp. Es gibt einige Dinge, die exp/imp in neueren Versionen von Oracle (z. B. Kontexten) nicht korrekt behandeln wird. –