[IQ 16 Migration] Share an unfamiliar option in iqunload utility
Recently, one of my customers encountered an error below in the middle of running the iqunload utility in order to upgrade their IQ database to IQ 16.
2014-07-06 20:14:13 Unloading table definitions
2014-07-06 20:14:13 SA tables
2014-07-06 20:14:18 SA columns
2014-07-06 20:14:44 IQ tables
2014-07-06 20:15:06 IQ columns
2014-07-06 20:15:23 IQ indexes
2014-07-06 20:16:23 SA indexes
2014-07-06 20:16:32 Unloading index definitions
2014-07-06 20:16:32 Unloading functions
2014-07-06 20:16:32 Unloading view definitions
2014-07-06 20:16:32 Unloading procedures
2014-07-06 20:16:32 Unloading triggers
2014-07-06 20:16:32 Unloading SQL Remote definitions
2014-07-06 20:16:32 Unloading MobiLink definitions
2014-07-06 20:16:35 Creating new database
Exception Thrown from stcxtlib/st_database.cxx:1938, Err# 49, tid 2 origtid 2
O/S Err#: 0, ErrID: 5120 (st_databaseException); SQLCode: -1000338, SQLState: ‘Q0038’, Severity:14
[21221]: Insufficient cache to allocate free list. Main buffers required: 136; main buffers avaliable:31.
— (stcxtlib/st_database.cxx:1938) .
***** SQLerror: Insufficient cache to allocate free list. Main buffers required: 136; main buffers avaliable:31.
— (stcxtlib/st_database.cxx:1938) .
The customer ran the iqunload utility as follows :
iqunload -p8192 -au -c “UID=DBA;PWD=SQL;ENG=DBPADW1;DBF=/asiq/DBPADW1/DEV/DBPADW1.db;start=@DBPADW1.cfg” -o unload.out -ms_filename “/dev/radw500gl001“ -v
While searching for the solution, I found a unfamiliar option “-new_startline” and its usage in iqunload utility.
The reason the error above happens is as below.
“Insufficient cache memory causes migration errors. iqunload uses default values for various cache sizes (catalog cache, main buffer cache, temp cache).
If the legacy database requires higher cache values, use the -ch and -cl options as part of the START connection parameter to increase the cache size.
Default cache settings for large schemas may be too small and can exhaust dynamic memory in the iqsrv16 server.
Use the -c switch to increase the server cache memory and -new_startline to pass the switch to the server.”
So, I was able to resolve the problem by specifying the “-new_startline” option so that the utility_db server can use it to create the new catalog store.
iqunload -p8192 -au -c “UID=DBA;PWD=SQL;ENG=DBPADW1;DBF=/asiq/DBPADW1/DEV/DBPADW1.db;start=@DBPADW1.cfg” -o unload.out -ms_filename “/dev/radw500gl001“ -v -new_startline “-ch 2048M -iqmc 4000 -iqtc 4000”
Please refer to the manual page describing the option.
[IQ 16.0]
http://help.sap.com/saphelp_iq1608_iqmig_lin/helpdata/en/a8/70a1b984f21015b6fc845d0c93df3e/content.htm?frameset=/en/a8/70a1b984f21015b6fc845d0c93df3e/frameset.htm¤t_toc=/en/a8/8cb5ae84f210158632dabe4df1f2d4/plain.htm&node_id=78
http://help.sap.com/saphelp_iq1608_iqmig_lin/helpdata/en/a6/859fc384f21015be8dde2c42f1bd77/content.htm?frameset=/en/a6/859fc384f21015be8dde2c42f1bd77/frameset.htm¤t_toc=/en/a8/8cb5ae84f210158632dabe4df1f2d4/plain.htm&node_id=84
[IQ 15.4]
http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc30051.1540/doc/html/san1282692549548.html
http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc30051.1540/doc/html/san1282692546876.html