Multi-file search and replace one-liner.No problem! Who says you can't move an Oracle Enterprise 11g database to Oracle 10g XE? I fired up SqlDeveloper, connected to my 10g XE instance, and selected some data. I believe my warnings are due to character set incompatibilities, and since I'm set to blow up this copy of the database in a development environment anyway, I'm not going to research them now.
Import terminated successfully with warnings. Imp SYSTEM/xx FILE=/home/me/export.dmp FULL=Y In my case, I had to create matching tablespaces and users before the importing with success. Once you "get it right" move the export back to your development box. before exp to pick up the correct version of the executable. Oh, and in case you are thinking you might just break out a HEX editor and change the EXPORT version in the header to the correct version, it won't work. I was still using the darn 11g exp because I failed to put the 10g exp on the path on the 11g server before I ran exp. IMP-00000: Import terminated unsuccessfully
IMP-00010: not a valid export file, header failed verification All rights reserved.Ĭonnected to: Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production Imp SYSTEM/xx FILE=/home/me/export.dmp FULL=y This is what I see on my development laptop. Did I mention the error? Yes, the one I got after importing initially, the export file created using 11g's exp.
In my case I now yell "Doh!" because I get the same damn error I had before. Okay, now cross your fingers and attempt the import, hoping to succeed though you just know that critical 11g features won't be supported on XE and will probably cause all your effort to be for naught. Now copy the resulting export.dmp file back to your target computer, the one running 10g XE. Scp /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/* I ssh over to the 11g server and set up my environment to add the current directory (temp) to the LD_LIBRARY_PATH.Įxport LD_LIBRARY_PATH=.:/usr/lib32:/usr/local/lib32 Scp exp course I don't have the needed 10g libs on the 11g server, so I just copy the all Oracle libs over to the same directory. In my environment, everything is Linux, so my quick-and-dirty approach was to create a temp directory on the 11g server and scp the 10g version of exp over to it. The easy solution? Just use the 10g version of the tools that ship with XE to dump the 11g database.
If you're like me an you attempt to simply export using the exp tool that ships with 11g, you will discover that there are incompatibilities between version which will prevent you from importing with 10g XE. The first step is to export your database. Of course you should know that XE is stripped down, so read up and make sure that you won't be losing features that you'll absolutely need to run your production or test database.
Your best free option is to install Oracle 10g XE, especially if you are running Ubuntu because installation is a snap. Here's the situation: you are working in an environment that uses Oracle Enterprise 11g, you want to do some development on your personal computer using your own database, and for whatever reason you cannot simply install a full-blown non-free version of Oracle on your laptop.