-- Incompatible blade version to migrate a database from informix 12.10 FC15 to informix 14.10 FC9.
Posted in 2023
Guillermo Giron Riveroll got an incompatible blade version error importing a 12.10.FC15 dbexport into 14.10.FC9 due to TimeSeries. Marcus Haarmann said dbimport cannot move datablade data and suggested an in-place upgrade. Art Kagel and Mike Walker advised removing TimeSeries objects from the schema. Markus Holzbauer showed the schema differences are small. No final outcome.
Auto-generated by Claude from the posts below — may be imperfect; read the full thread.
Topics: Stored Procedures & SPL, Data Types & Schema Design, Migration, Import/Export & Data Conversion
|
view attached
Hi everyone
I am trying to migrate a database from informix 12.10 FC15 on "server A" to informix 14.10 FC9 on "server B".
To extract the data, the command was used:
dbexport -d dsolutiondbs dsolutionAnd to import it I'm trying to use the command:
dbimport -d dsolutiondbs dsolutionBut when it runs it gives me the following message:
create function "informix".calendarpatternout (CalendarPattern)
returns lvarchar with (not variant)
external name "$INFORMIXDIR/extend/TimeSeries.6.00.FC9/TimeSeries.bld(ts_cal_pattern_output)" language c;
-- Incompatible blade version (import TimeSeries.6.00.FC9; available TimeSeries.6.01.FC2)
Could you help me solve this please?
Thanks and regards
------------------------------
Guillermo Giron Riveroll
------------------------------
According to the documentation:
https://www.ibm.com/docs/en/informix-servers/14.10?topic=data-migration-tools
Note:
dbimportcannot be used to move datablade data between Informix versions.
The supported process would be (in my understanding) an inplace upgrade of the existing 12.10 instance to the 14.10
version. (which would internally upgrade the datablade tables).
In case you are moving data to a different server, try to install the 12.10 edition there and make a full restore, followed
by an upgrade to 14.10.
Check the online.log for any errors during upgrade. The datablade data should be updated.
If you do a dbexport in the upgraded instance afterwards, the SQL file should contain references to the actual
version of the datablade.
Another approach would be to manually delete the datablade tables in the dbexport output (the .sql file) and restore without the
additional stuff, and the recreate the datablade in the database after loaded in the 14.10 version.
But the datablade typically will introduce column types etc. which are maybe used in your tables, so removing might not be so easy.
You could do a step-by-step approach by loading the tables which refer to datablade tables separately.
(remove these from the sql file and load the others first, then adding the datablade, then creating the special tables ....)
But this is definately more complex than an inplace-upgrade, which should do the conversion for you.
Hope this helps.
Guillermo:
Using dbexport/dbimport with a datebase that has timeseries data elements defined is a problem. You will have to edit the schema file removing all of the references to timeseries tables (like the calendartable table) and functions from the schema file. Then you should be able to reload the database with dbimport.
Art
------------------------------
Art S. Kagel, President and Principal Consultant
ASK Database Management Corp.
www.askdbmgt.com
------------------------------
The first question is do you use TimeSeries and need it migrated over? The problem is because when TimeSeries tables are referenced, the TimeSeries datablade is registered automatically, and create a bunch of tables, procedures, etc in the database. These appear in the SQL generated by the dbexport.
If you don't actually use timeseries, you may just be able to unregister the timeseries blade and the dbexport everything again. Or you can just run the dbexport then edit the SQL file to remove the TimeSeries objects, as the others suggested. While annoying, it's not difficult as the objects are grouped together.
BTW, are you sure you don't want to use the "-ss" option on dbexport? I'm also not sure that the syntax of your dbexport command in your post was correct.
------------------------------
Mike Walker
xDB Systems, Inc
www.xdbsystems.com
------------------------------
It is problematic to use dbexport/dbimport on a datebase that has timeseries data elements specified. You will need to modify the schema file to remove all references to timeseries tables and functions (such as the calendartable table). The database should then be reloaded using dbimport at that point.
------------------------------
ai blog writer
------------------------------
Hi Guillermo,
I have tried following to figure out what are the difference between TS datablade in IDS 12 vs. IDS 14:
On IDS 12 run following:
$ dbaccessdemo7 stores12
$ dbschema -d stores12 > stores12.sqlCopy stores12.sql file to IDS 14 host.
On IDS 14 run following:
$ dbaccessdemo7 stores14
$ dbschema -d stores14 > stores14.sql
$ diff stores12.sql stores14.sql
$ cat stores12.sql | nawk '{sub(/TimeSeries\\.6\\.00\\.FC9/,"TimeSeries.6.01.FC2",$0);sub(/spatial\\.8\\.22\\.FC2/,"spatial.8.22.FC4",$0);printf("%s\\n",$0)}' > stores12B.sql
$ diff stores12B.sql stores14.sqlSo the difference in schema between TS 6.00.FC9 and 6.01.FC2 are only the version string,
one new distinct type, one new function and one modified view.
Schould be simple to modify the schema file before import in IDS 14.
Cheers,
Markus
------------------------------
Markus Holzbauer
------------------------------