Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment exporter le schéma de base de données dans Oracle vers un fichier de vidage

Cela dépend de quelle version d'Oracle ? Les anciennes versions nécessitent exp (export), les versions plus récentes utilisent expdp (data pump); exp était obsolète mais fonctionne toujours la plupart du temps.

Avant de commencer, notez que Data Pump exporte vers le "répertoire" Oracle côté serveur, qui est un emplacement symbolique Oracle mappé dans la base de données vers un emplacement physique. Il peut y avoir un répertoire par défaut (DATA_PUMP_DIR), vérifiez en interrogeant DBA_DIRECTORIES :

  SQL> select * from dba_directories;

... et sinon, créez-en un

  SQL> create directory DATA_PUMP_DIR as '/oracle/dumps';
  SQL> grant all on directory DATA_PUMP_DIR to myuser;    -- DBAs dont need this grant

En supposant que vous puissiez vous connecter en tant qu'utilisateur SYSTEM, ou un autre DBA, vous pouvez exporter n'importe quel schéma de ce type vers le répertoire par défaut :

 $ expdp system/manager schemas=user1 dumpfile=user1.dpdmp

Ou en spécifiant un répertoire spécifique, ajoutez directory=<directory name> :

 C:\> expdp system/manager schemas=user1 dumpfile=user1.dpdmp directory=DUMPDIR

Avec l'ancien utilitaire d'exportation, vous pouvez exporter vers votre répertoire de travail, et même sur une machine cliente distante du serveur, en utilisant :

 $ exp system/manager owner=user1 file=user1.dmp

Assurez-vous que l'exportation est effectuée dans le bon jeu de caractères. Si vous n'avez pas configuré votre environnement, le jeu de caractères du client Oracle peut ne pas correspondre au jeu de caractères de la base de données et Oracle effectuera la conversion du jeu de caractères, ce qui n'est peut-être pas ce que vous souhaitez. Vous verrez un avertissement, si tel est le cas, vous devrez répéter l'exportation après avoir défini la variable d'environnement NLS_LANG afin que le jeu de caractères du client corresponde au jeu de caractères de la base de données. Cela obligera Oracle à ignorer la conversion du jeu de caractères.

Exemple pour l'UTF8 américain (UNIX) :

 $ export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

Windows utilise SET, exemple en japonais UTF8 :

 C:\> set NLS_LANG=Japanese_Japan.AL32UTF8

Plus d'informations sur Data Pump ici :http://docs.oracle.com/cd/B28359_01/server.111/b28319/dp_export.htm#g1022624