I post this topic because regularly I will need to give the data of one of my database to other institutions.
I have one informix instance IDS 11.5, WorkGroup Edition (not cluster).
My Os is AIX.
- The institutions OS can be Linux, Unix or Windows : So I can't use onbar or ontape, because the AIX backup is not compatible with linux environment or Windows environment
- I can't stop my environment : It is impossible to be in exclusive mode on the database : So I can't use dbexport command...
I think the better solution is to have an other instance on my environment, restore the backup of my production environment and execute the dbexport on the database.
My questions is :
- there is no way to execute a dbexport without exclusive connexion ?
- Maybe can you suggest an other solution to transfer my database ?
- Maybe there is a tool or procedure to create a multiplateform backup or an export depending of my constraints?
I can see 3 different solutions for you, each with different requirements:
1) the most "academic" : upgrade to 11.70 Growth Edition or 12.1 WorkGroup Edition on all involved systems, and use the Flexible Grid/ENterprise Replication functionality that will allow you to replicate data the way you want, even between different OS platforms.
You can choose the tables you want to copy and even put filters on data.
This is fast, robust, secure, extremely versatile plus data integrity is garanteed.
2) use the myexport/myimport utilities written by Art Kagel. They work in a similar way as dbexport/dbimport, except that dbexport does not lock the database. Both have very interesting features in terms of performance.
You can find them in the IIUG website software repository. Look for "myexport" and "myimport"
3) If you have time and you like scripting, it is not difficult to simulate dbexport in a basic way. Build a script around the main query:
unload to export_script.sql delimiter " "
SELECT "unload to " || tabname clipped || ".unl SELECT * FROM " || tabname clipped || ";"
WHERE tabid > 99
Run the export_script.sql script with dbaccess to export the data
And same idea for the import script
unload to import_script.sql delimiter " "
SELECT "load from " || tabname clipped || ".unl INSERT INTO " || tabname clipped || ";"
WHERE tabid > 99