web-dev-qa-db-fra.com

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

J'ai un schéma de base de données sur le serveur Oracle installé sur une machine Linux. J'ai besoin d'exporter les informations relatives au schéma dans un fichier de vidage.

Comment faire ça?

11
Megha Sharma

Cela dépend de quelle version d'Oracle? Les versions plus anciennes nécessitent exp (exportation), les versions plus récentes utilisent expdp (pompe de données); exp est 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 pouvez vous connecter en tant qu'utilisateur SYSTEM ou 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 jeu de caractères correct. 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 DB et Oracle effectuera la conversion du jeu de caractères, ce qui n'est peut-être pas ce que vous voulez. Vous verrez un avertissement, si c'est le cas, vous voudrez répéter l'exportation après avoir défini la variable d'environnement NLS_LANG afin que le jeu de caractères client corresponde au jeu de caractères de la base de données. Cela entraînera Oracle pour ignorer la conversion de jeu de caractères.

Exemple pour UTF8 américain (UNIX):

 $ export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

Windows utilise SET, par exemple en utilisant le 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

22
codenheim