TOP 10 DO's and Don'ts :Migrating from Ingres 6.4.x to OpenIngres 1.2 DO's and DON'Ts of making the 6.4.x to OpenIngres 1.2. TOP TEN ITEMS TO KEEP IN MIND. 1) DO set up a new file system when installing OpenIngres 1.2 This will make for a cleaner install. (Can have multi installations setingenv II_INSTALLATION param.) While CA claims that you can upgrade an existing installation. I would recommend that you start from scratch. This will make sure all front-end catalogs, new exec's, lib's get installed correctly. Whenever possible use the same directory names and or mount points for data , source, unload dirs. and so forth. (see #7 this doc) You may need to tune some kernel params, and you will need a roll back plan. This gets a bit nasty trying to get back to your original setup. When you've installed over your original. Also makes chasing down bugs a lot easier. Once you have the second install up and running then migrate your data and apps. This action is also prudent when dealing with production apps and data. 2) DO Install all patches and bug fixes. Latest patches are available from CA direct. http://www.cai.com The rush to get OpenIngres 1.2 to market has left a few holes. (Note: OpenIngres 1.2 for HPUX must install patch to work correct.) This will also eliminate the first question CA-Ingres tech support asks. (Um... I don't know.. have you installed the patch?...) 3) DO Install compatability links. When switching platforms or upgrading your O/S make sure to install the compatability links. These links are usually provided by the O/S vendor. These links will enable OpenIngres to find all the Unix Utils and/or lib's that it needs. If you do not install these links you get lots of cannot open/find Unix errors. (Note: AIX v4.2 (IBM RS6000) must install compatability links OpenIngres 1.2 will not run correctly.) 4) DO Make back-up copies of config.dat and symbol.tbl file the path is -II_INSTALLATION/Ingres/files These files are critical to your old and or new installation. Having a good backup before starting is always wise. 5)DON'T -forget to use the -c flag when unloading your databases. The -c flag in the unloaddb command dumps data down to the ASCII level. Technically this is only required when switching platforms or O/S. However, I would recommend that you always use this flag. (Eliminates another variable, should you be stuck tracking down a problem on the reload) 6)DON'T - use the unloaddb util. The unloaddb util dumps data, forms, reports, app's ect. all at once. However, in migrations like this I have found it best to separate the data move from the app move. Call me a wimp, but it's easier for me to focus on an application port and then data migration. (Kind of a divide and conquer thing.) This is true when dealing with large amounts of data or a complex application. Also I would recommend this one, two punch when dealing with production data. In that, it is unlikely that you will be able to finish a migration before the data needs to be refreshed. Therefore having different data and application migration scripts becomes paramount. 7) DO use the copydb util to move the data. (Note: Don't forget to use the -c flag. see #6 this doc.) The copydb util will give you copy.in copy.out sql script files. When possible use the same name for unload and reload dirs. If you can use the same mount point and dir names when moving to a new platform. (Note: copy.in and copy.out scripts have a path hard coded. By using the same path names when possible you don't have to edit as much.) You will need to modify these scripts in the following ways; change the 'from' dir path. This is where the data will be loaded from. If you have used the same unload and reload path names you may not need to change this. Change the 'location'. If you have used multi locations make sure all alternates are setup in accessdb before you attempt a re-load. I would also recommend that you insert a 'drop' command before each create table statement. This will allow you to rerun this script without having to destroy the db and start over. It also makes sure the new table Scriptures and fields are correct. 8) DO modify the log file. You may need to adjust the transaction log file size. (II_INSTALLATION/Ingres/logs. In OpenIngres 1.2 this is done through the cbf util. very easy to do.) You may get aborts do to the log file filling up. Over estimate the size of this file during the migration. You can always go back and change it later. (NOTE: ********* WARNING ********* when you set up your new OpenIngres 1.2 installation make sure and use the same char set between the two databases. ISOxxxxxx if you do not do this you could corrupt data on the reload.) 9) DO have plenty of tmp disk space. Remember it takes almost two and a half times the size of a table to sort and/or rebuild indices. (not including log space) Its worth the hassle to get more disk than you need. Disk is cheap when compared to your time, and or the down time your company will take. (Note: OpenIngres 1.2 defaults jornalling ON. This will become active after you chkpoint for the first time.) When you run the reload scripts dump the output to a log file. use a command like sql [dbname] reload.log& this will give you something to look at should the reload fail. 10) DO take your time. You will more that likely have to do this migration a couple times before you get it right. Just plan on it. It's better to take your time than get it wrong. *************(Source-code) ABF MIGRATION NOTES ******************** Please note the following; OSQ - There are a number of newly reserved words and syntax changes from 6.4.x to OpenIngres 1.2 (Namely outer-joint statements and the use of " " see white pages http://www.cai.com ) Most have to do with new SQL standards. You may wish make a test compile on a few of your more complex .osq files. This might show if your migration is going to take longer than you planned on. FORMS - On a couple occasions I have had a few forms fail on reload because of an invalid date field format. However, the date field appeared to be correct to me. I was under time constraints so I did not chase this problem down to a root cause. I edited the form.txt file (reload file) and deleted the field in question. This allowed the form to reload. Used vifred to re-add the field. ANSI C - The HPUX v.10 O/S cc does not default to ANSI c compliant. You must pass an -a flag to the cc command. However, the Ingres linker does not pass this flag by default. Again under a time constraint, so I created the obj files from the command line (using the -a flag) this tricked the linker into using the newly created obj files and the build app went through. I'm sure H.P and Ingres are working on a solution. I know you can pass link options however, I have not tried a solution. **********************************************************************l J.Tyler McGraw Systems West 136 South Main Stree #A300 Salt Lake City UT, 84101 (801)364-7900 V (801)364-9700 Fax. tmcgraw@xmission.com E-Mail. Tyler McGraw is an Ingres consultant. Current Utah Ingres Users Group Pres.and all-around nice guy. (ha ha ha ).
© William Yuan 2000
Email William