ORA-56935: les travaux Data Pump existants utilisent une version différente du fichier de données de fuseau horaire. En voilà une drôle d’erreur renvoyée par la console SQL Plus d’un serveur Oracle.

Dans un exemple de migration d’une base de données entre un serveur Oracle 11g et un 12c, l’erreur ORA56935 est apparue, empêchant ainsi l’import de la base au format datapump. Cela peut aussi arriver entre Oracle 10g et 11g, de 10 à 12, etc.

Cela parle d’un problème de fuseau horaire, bien évidemment les deux serveurs sont dans le même réseau et avec le même serveur de temps NTP.

 

Erreur lors d’un import Oracle

ORA-39006 : erreur interne
ORA-39065 : exception de processus maître inattendue dans DISPATCH
ORA-56935 : les travaux Data Pump existants utilisent une version différente du fichier de données de fuseau horaire
ORA-39097 : Le travail Data Pump a détecté une erreur inattendue -56935

 

Solution officielle Oracle

Sur le site du support Oracle référençant les Database Error Messages (lien) :

ORA-56935 : existing datapump jobs are using a different version of time zone data file
Cause: An attempt was made from a datapump job to request a different version of time zone data file from the one used by existing datapump jobs.
Action: Wait until existing datapump jobs unload the secondary time zone data file.

 

Solution efficace

La manipulation se fait avec une simple ligne de commande, au niveau du serveur SGBDR, pas d’un tablespace.

1. Ouvrir une console SQLPlus sur le serveur Oracle 12c (celui qui reçoit l’import de BDD).

2. Se connecter avec un compte sys ou équivalent.

sqlplus oracle sql plus

3. Entrer et valider la commande suivante :

ALTER SESSION SET EVENTS ‘30090 TRACE NAME CONTEXT FOREVER, LEVEL 32’;
exec dbms_dst.unload_secondary;

4. On peut vérifier la nouvelle valeur du fuseau horaire / timezone par cette commande (via Oracle SQL Developer par exemple) :

SELECT PROPERTY_NAME, SUBSTR (property_value, 1, 30) value
FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME LIKE ‘DST_%’
ORDER BY PROPERTY_NAME;

5. Le serveur peut maintenant accepter un import de datapump sans provoquer d’erreur de fuseau horaire ORA-56935.