Sybase ASE 12.5.3 to 15 Upgrade Notes / Issues / Gotchas
We are encountering several issues with upgrading our existing Sybase ASE 12.5.3 servers to Sybase ASE 15.0.2. The major issues are as follows:
1. Issues with client libraries / ODBC / OLEDB. This is a big one - many of our application use old (12.0) client libraries. ASE 15 is not compatible with these libraries, and (as I understand it) the ODBC connection strings need to be changed. This prevents applications such as Microsoft Access and Excel from reading ASE metadata. Since we have a large number of applications that connect this way, this is a big deal.
2. Client connections can crash ASE 15. Yes, that's right - any client machine that connects to your server can crash ASE 15.0.2 prior to at least ESD #2. These seem to be related to cursors:
CR 480890: ASE 1502 killing of a cursor session crashes server ** NOT YET FIXED, Possible fix in 15.0.2 ESD#2??** CR 478838: Interrupting a query that contains a group by operator and doing a cursor fetch, causes stack overflow and corruption. This also brings down the server. Fixed on ASE 15.0.2 ESD #2As of October 2007, Sybase can not give a firm release date for ESD #2, and I've been told "by the end of 2007, or perhaps early 2008". Wow, NOT good.
3. Licensing. I have been able to get ASE to crash by putting valid licenses in the license file. More specifically, sp_config'ing optional features such as encrypted column or semantic partitioning initially seems to work, but if ASE is shut down and restarted, it will core dump. Sybase tech support will not send my core dump to engineering. I've been told that my SPDC account was incorrectly set up, and I need to talk to my salesperson. In my opinion the license file should never cause my database server to core dump, even if the license file is completely corrupt or contains random garbage.
As an aside: Sybase, you have an extremely small market share compared to Microsoft SQL Server and Oracle. Neither of your competitors have these stringent licensing requirements - why are you making your product so hard to use compared to the competition? If you must track usage, I'd suggest something similar to Oracle, which tracks usage and provides an audit record, but does not prevent use of the product.
4. There are some changes in syntax, such as "reserved_pgs" changing to "reserved_pages", and "data_pgs" changing to "data_pages". This is relatively minor, but will cause things like threshold procedures to fail. The sample threshold proc in the ASE 15 documentation will not work, as it has not been updated to reflect the new syntax.. Not a big deal, but this is something to watch out for. It would have been nice to keep both syntaxes around for a version or two to allow sites to migrate.
5. We had some issues with roles not mapping correctly, which prevented some of our databases from coming online after the upgrade. This was a pretty easy fix though:
check the upgrade log and/or ASE log for messages about update step 245
IE: Error: 2601, Severity: 14, State: 6 Attempt to insert duplicate key row in object 'sysusers' with unique index 'ncsysusers1' Error: 3461, Severity: 20, State: 1 Database 'my_db': upgrade could not install required upgrade item '245'. Error: 3454, Severity: 20, State: 1 Database 'my_db': ASE could not completely upgrade this database; upgrade item 1417 could not be installed.if this happens, try:
use my_db go select uid, name from sysusers where name in ('ha_role','dtm_tm_role') go sp_configure 'allow up', 1 go delete sysusers where name in ('ha_role', 'dtm_tm_role') go delete sysroles go insert sysroles select ssr.srid, su.uid,0,0 from master..syssrvroles ssr , sysusers su where su.name = ssr.name go sp_configure 'allow up', 0 go use master go online database my_db goAs an aside, on a more general level you can find missing roles and /or invalid sysusers/sysroles by running:
select * from sysusers where uid not in ( select lrid from sysroles) and suid = -2 and uid > 0
6. Replicated databases do not automatically come online. There's some odd behavior as well - per the documentation, you're supposed to:
dbcc dbrepair($database, ltmignore) online database $databasebut this doesn't work. What you have to do is:
online database $databasethis will fail, but you have to do it. THEN:
dbcc dbrepair($database, ltmignore) online database $database
7. Be aware that ASE will not send warning emails about license expiration (as configured with sp_lmconfig) if you use Microsoft exchange. Or more accurately, ASE sends the mail, but Exchange rejects it. Sybase is aware of the issue and should be fixing it in an upcoming release. As a workaround, it.s fairly trivial to write a script to check licensing information.
Errors installing EBF 14777 ESD#1
If you get the following error message:
Installer unable to find installed product "Sybase Adaptive Server Enterprise Suite 15.0.2 GA" or newer version in "/home/sybase" You Need to have "Sybase Adaptive Server Enterprise Suite 15.0.2 GA" or newer version to proceed with the installation.This is a result of the installer not being able to find a valid vpd.properties file in the $SYBASE directory. The InstallShield installer is very sensitive to any changes from the original installation (IE: not using the default sybase home directory). If you have moved the files to another directory as part of a deployment strategy, for instance, the information in the vpd.properties is no longer valid, and so the EBF installer won't work correctly. To get around this, set an environment variable INSTALL_ALL_PATCH=1, then the upgrade will work.