Thanks in advance!
Did you move all the files to a new filepath (i.e. all the database
devices?)
If so you have a couple of options. The one I'd recommend as the
easiest is to create symbolic links for all the database devices so
that they can be found using the old paths. Create the directory tree
from the root filesystem to a level just above where the files are
supposed to live, and then use the "ln -s" command to create a symbolic
link.
If that's not feasible you can start the server with the -T3608 trace
flag, and then update the file paths in master..sysdevices. The process
to do this is as follows:
First, go to $SYBASE/ASE-xxx, and edit the <servername>.cfg file. Change
the line that says "Allow update to system tables" from DEFAULT to 1, and
save the file.
Now go to $SYBASE/ASE-xxx/install, and edit the RUN_<servername> file, and
add -T3608 to the command line that executes the dataserver command. Also
change all the paths in this file to match the current location of the
various files (i.e. the <servername>.cfg file, the interfaces file, etc.)
Start the server - the -T3608 flag will tell ASE to only recover the
master database.
Log in to the server with isql, and update the sysdevices table to change
the phyname column to match the actual location of the data devices.
Important: shut down the server with "shutdown with nowait".
Remove the -T3608 from the RUN_xxx file, and restart the server. If you
haven't made any mistakes the server should now come up with all the
necessary devices.
It goes without saying that you should have backups of all these files
somewhere before you start, so that if you make a mistake you can start
over!
Michael
--
Michael Peppler - Peppler Consulting SaRL
mpep...@peppler.org - http://www.peppler.org
Sybase DBA/Developer - TeamSybase: http://www.teamsybase.com
Sybase on Linux FAQ - http://www.peppler.org/FAQ/linux.html
Hi Michelle--
Thanks for the information. I followed it for the second suggestion
but I still cannot start up sybase server. Do I need to reinstall
sybase? All we did was copy the files over to a new file location on
the new server.
The RUN file calls the dataserver executable with a -d parameter
that specifies the location of the master device. If the path to
master has changed, you need to update that parameter.
The other device names are contained in the sysdevices table in the
master database; you will need to boot ASE before you can modify them
(ideally you would have modified them before shutting down and
moving the server, but that is hindsight for you...).
To minimize pain, add another parameter to the dataserver call
in the RUN file '-T3608' . This traceflag tells ASE to
boot and only recover the master database. In the server's .cfg
file, edit the "allow updates to system tables" to the setting '1'.
Boot the server.
If you don't have a good recent dump of the master database,
start up backupserver and dump master now.
Look at the sysdevices table. The physname column contains the
full path name of the devices. Update each device as needed.
Best to do this in a transaction:
begin tran
update sysdevices set physname = "/blah/blah/blah" where name = <blah>
go
-- verify one row affected and the value is correct before committing
commit tran
go
When all values are updated
checkpoint
go
shutdown
go
Remove -T3608 from the RUN file
Boot server
Dump master again.
I suggest you post the errorlog contents for this boot attempt, that
will tell us where things got hung up on. The RUN file had a parameter
that says where the errorlog goes, if you aren't sure.
Ok, figured out one thing wrong--put the -T switch at the beginning
instead of the end of the file. Did that, now I'm getting a "there is
no valid license for ASE server product". What is the name of that
file (will need to take it from the other server).
"Michelle" ???
Do you know something about the poster that we don't?
\:-O