Always consider to migrate the Development environment first , then UAT. Before moving to production Perform Regression testing on UAT enviornment.
Please consider to create the script to perform update stats,xp_postload(drop and re create index) for each and every database.
Steps for an ASE Database( You can repeat same steps for other databases) :
Step 1: Run the consistency checks in ASE database in Source (AIX) environment, to make sure that everything is fine.
Step 2: Put the database in single user mode.
Step3: Make sure there is no user activity on the Source Database .
Step 4: Run the sp_flushstats in the database.
Step 5: Take the backup of the database in Source (AIX) environment.
Step 6: Ftp the Files to Target environment. (AIX to Linux)
Step 7: Create and build the dataserver and databases in target Linux environment with exactly same configuration.
You might require to change some of the config param in Linux environment for performance point of view. ( Lets not discuss it here, as it is out of context).
Step 8: Also migrate the Login, roles from source server to target server
Step 9: Load the database in Linux environment.
(If there were user activity during dump process, load will be fail.)
Step 10: Online the database. If the target ASE version is new with source, It will also perform upgrade in this step.
Step 11: Fix the corrupt indexes using the xp_postload. If the Database size is more than 20G, try drop and re-create index , in this case xp_postload would not be effective.
Step 12: Update the stats on all tables.
Step 13: If there is replication setup in your environment, please setup replication after that.
1. If there is any user online during backup process, your load will fail( in the step for cross platform conversion).
2. After online database, we seen the -ve values in sp_helpdb output for few databases. There are two ways to fix this :
i) Try to run dbcc
dbcc usedextents(<DB name or DB ID>, 0, 1, 1)
ii) Use the Traceflag 7408 and 7409 in Run Server file and reboot the instance. It will not take much time as compare first option.
Traceflag 7408 : Force the server to scan *log segment* allocation pages; to recalculate free log space rather than use saved counts at boot time.
Traceflag 7409 : Force the server to scan *data* segment allocation pages; to recalculate free data page space rather than use saved counts at boot time.
Please let me know if you are planning for migration and need any assistance.