Tuesday, February 3, 2009

UDE-00018: Data Pump client is incompatible with database version

Problem Description
Whenever you made an attempt to connect with a higher version Export Data Pump client(expdp) to a lower version database then UDE-00018 error occurs.

Here expdp version 11.1.0.6.0 and you tried to export database 10.2.0.1.0.

C:\>F:\app\Administrator\product\11.1.0\db_1\BIN\expdp.exe arju/a@orcl schemas=arju directory=d dumpfile=test.dmp

Export: Release 11.1.0.6.0 - Production on Tuesday, 03 February, 2009 23:09:00

Copyright (c) 2003, 2007, Oracle. All rights reserved.
UDE-00018: Data Pump client is incompatible with database version 10.2.0.1.0

Similarly, if you made an attempt to connect with a higher version Import Data Pump client to a lower version database then UDI-00018 error returns.

Here impdp version 11.1.0.6.0 and you tried to import data into database 10.2.0.1.0.

C:\>F:\app\Administrator\product\11.1.0\db_1\BIN\impdp.exe arju/a@orcl tables=test directory=d dumpfile=test.dmp


Import: Release 11.1.0.6.0 - Production on Tuesday, 03 February, 2009 23:03:11

Copyright (c) 2003, 2007, Oracle. All rights reserved.
UDI-00018: Data Pump client is incompatible with database version 10.2.0.1.0

Cause of the Problem

With the help of higher version of data pump client either impdp or expdp connect to a lower version database is not supported. If you try to do so either UDI-00018(for import) or UDE-00018 (for export) will occur.

An example for clarification
Example on this post is based on experimental issue and on windows environment. Here

TNSNAMES entry san connect to a database 11g,
TNSNAMES entry orcl connects to a database 10g,
Both 10g and 11g database contains a user named arju with password a.
In 10g database the parameter compatible is set to 10.2.0.1.0
In 11g database the parameter compatible is set to 11.1.0.0.0
Both databases are on the same computer.

Step 01: Connect to 11g database and create directory named d on to windows D: drive.
C:\>sqlplus arju/a@san

SQL*Plus: Release 11.1.0.6.0 - Production on Tue Feb 3 22:37:20 2009

Copyright (c) 1982, 2007, Oracle. All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


SQL> create directory d as 'd:';

Directory created.

Step 02: Connect to 10g database and create directory named d on to windows D: drive.

C:\>sqlplus arju/a@orcl

SQL*Plus: Release 11.1.0.6.0 - Production on Tue Feb 3 22:37:46 2009

Copyright (c) 1982, 2007, Oracle. All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> create directory d as 'd:';

Directory created.

Step 03: On 11g database create a table test and insert one row into it.
C:\>sqlplus arju/a@san

SQL*Plus: Release 11.1.0.6.0 - Production on Tue Feb 3 22:38:17 2009

Copyright (c) 1982, 2007, Oracle. All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> create table test(a number);

Table created.

SQL> insert into test values(1);

1 row created.

SQL> commit;

Commit complete.

Step 04: Using 11g expdp take a dump of 11g's table test.

C:\>F:\app\Administrator\product\11.1.0\db_1\BIN\expdp.exe arju/a@san tables=test directory=d dumpfile=test.dmp


Export: Release 11.1.0.6.0 - Production on Tuesday, 03 February, 2009 22:39:43

Copyright (c) 2003, 2007, Oracle. All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "ARJU"."SYS_EXPORT_TABLE_01": arju/********@san tables=test directory=d dumpfile=test.dmp
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 64 KB
Processing object type TABLE_EXPORT/TABLE/TABLE
. . exported "ARJU"."TEST" 5.007 KB 1 rows
Master table "ARJU"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for ARJU.SYS_EXPORT_TABLE_01 is:
D:\TEST.DMP
Job "ARJU"."SYS_EXPORT_TABLE_01" successfully completed at 22:40:20

Step 05: i)Using 10g impdp try to import this dump on to 10g database.

C:\>J:\oracle\product\10.2.0\db_1\BIN\impdp.exe arju/a@orcl directory=d dumpfile=test.dmp tables=test

Import: Release 10.2.0.1.0 - Production on Tuesday, 03 February, 2009 23:02:04

Copyright (c) 2003, 2005, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
ORA-39001: invalid argument value
ORA-39000: bad dump file specification
ORA-39142: incompatible version number 2.1 in dump file "d:\test.dmp"

ii)Using 11g impdp try to import this dump on to 10g database.
C:\>F:\app\Administrator\product\11.1.0\db_1\BIN\impdp.exe arju/a@orcl tables=test directory=d dumpfile=test.dmp

Import: Release 11.1.0.6.0 - Production on Tuesday, 03 February, 2009 23:03:11

Copyright (c) 2003, 2007, Oracle. All rights reserved.
UDI-00018: Data Pump client is incompatible with database version 10.2.0.1.0

Here is one more test whenever you try to use 11g expdp to export data from 10g,
C:\>F:\app\Administrator\product\11.1.0\db_1\BIN\expdp.exe arju/a@orcl schemas=arju directory=d dumpfile=test.dmp

Export: Release 11.1.0.6.0 - Production on Tuesday, 03 February, 2009 23:09:00

Copyright (c) 2003, 2007, Oracle. All rights reserved.
UDE-00018: Data Pump client is incompatible with database version 10.2.0.1.0


Solutions and things good to remember
1)Whenever you use expdp to export data always use the same version Export Data Pump client as the version of the database from which you are taking dump. Though, you can use up to one major version lower expdp client, but this is not recommended.
If your database version is 11.1.0.6.0 then you can use expdp tool of any of 11g or 10g but it is recommended to use 11.1.0.6.0 expdp tool.

2)Whenever you use impdp to import data always use the same version Import Data Pump client as the version of the database to which you are importing dump. Though, you can use up to one major version lower impdp client, but this is not recommended.
If your database version is 11.1.0.6.0 then you can use impdp tool of any of 11g or 10g but it is recommended to use 11.1.0.6.0 expdp tool.

3)Import Data Pump (impdp) can always read Export Data Pump (expdp) dumpfile sets created by older versions of the database. For example export dumpfile sets of database 10.1.0.5 can easily be imported into database version 11.1.0.6.

4)If you decide dumpfiles need to be imported into a lower version database, then while exporting data use the Export Data Pump parameter VERSION to match the compatibility level of the database to which you will import. For example to import dumpfile sets to a 10.2.0.1 database(where compatibility is set to 10.2.0.1) from a database 11.1.0.6(where compatibility is set to 11.1.0.0), while using data pump export client along with the command use VERSION parameter where value of VERSION need to be 10.2 i.e as a whole append "VERSION=10.2" words with your expdp command.
Related Documents
http://arjudba.blogspot.com/2009/02/important-guideline-about-data-pump.html
http://arjudba.blogspot.com/2009/02/how-to-do-data-pump-import-from-higher.html
http://arjudba.blogspot.com/2008/04/data-pump-exportimport-how-we-can-do-it.html
http://arjudba.blogspot.com/2008/04/exportimport-datapump-parameter-query.html
http://arjudba.blogspot.com/2008/04/improve-data-pump-performance.html
http://arjudba.blogspot.com/2009/02/how-to-take-data-pump-export-on-another.html
http://arjudba.blogspot.com/2009/02/compatibility-table-of-oracle-data-pump.html
http://arjudba.blogspot.com/2008/04/datapump-parameters-include-and-exclude.html

No comments:

Post a Comment