Sybase ASE Bypassing cross platform load issues

Bypassing cross platform load issues

When loading an ASE database dump made on another platform you may run into problems. For instance, this can happen when the dump is made on an Solaris Sparc platform but you want to load it into an ASE running on Intel x86. As documented by Sybase, you need to prepare a DUMP for A CROSS-PLATFORM ENVIRONMENT before attempting to load it.

Under some circumstances you may not want to follow the required steps and force ASE to bring the database online anyway.

IMPORTANT This method may result in some loss of data

After loading the database and Msg 3151 is reported

3151 ERROR
Adaptive Server cannot load this database because the database thatwas dumpedwas not quiescent when the dump was performed. Run sp_flushstats before DUMP DATABASE and ensure that the database is not updated during the dump.

Steps below for bypassing “3151 ERROR” and force ASE to bring the database online

1> use master
2> go
1> EXEC sp_configure ‘allow updates’,1
2> go
1> update sysdatabases set status = -32768,status3=131072 where name=’TestDB’
2> go

Shutdown the server and start it up again
Log on to ASE and rebuild the transaction log for the database

1> dbcc traceon(3604)
2> go
1> dbcc save_rebuild_log(TestDB)
2> go
1> update sysdatabases set status = 0 where name=’TestDB’
2> go

Shutdown the server and start it up again.
The database will now be brought online, watch the error-log for any problems.
Now the database should be recovered successfully.

Log on to the server and:

1> update sysdatabases set status3=524288 where name=’TestDB’
2> go
1> use Testdb
2> go
1> sp_post_xpload
2> go
1> update sysdatabases set status3=0 where name = ‘TestDB’
2> go

Done…

You should be able to use the database for querying data.

Leave a comment