Sybase IQ will not start

If there is a problem starting the server, start_iq returns a non-zero value. If you did not specify a log file after the -o switch on startup, the error is written to the first one of the following that is defined:

Possible causes

Action

Transaction log file does not match the database The following messages appear in the server log file (.srvlog) and in the window where you are starting the server:

Starting database "dbname" (/dbdir/dbname.db) 
at Fri Apr 27 2009 10:53 Transaction log: dbname.log
Error: Cannot open transaction log file 
-- Can't use log file "dbname.log" since the database 
file has been used more recently
Cannot open transaction log file 
-- Can't use log file "dbname.log" since the database 
file has been used more recently
Database server stopped at Fri Apr 27 2009 10:53

If these errors are reported when you are starting the server, check to be sure the server is using the correct transaction log file. If you cannot find the correct transaction log file, the safest way to recover from this situation is to restore from the last valid backup.

If you cannot find the correct transaction log and restoring from backup is not an option, then use the emergency recovery method described in “Emergency recovery without a transaction log”.

Server cannot find the transaction log If the server fails to start because it cannot find the transaction log, the following messages appear in the server log file:

Transaction log: /dbdir/dbname.log...
Error: Cannot open transaction log file 
-- No such file or directory
Cannot open transaction log file 
-- No such file or directory

If this error is reported when you attempt to start the server, find the transaction log file and copy the file to the same directory as the database .db file. If you cannot find the correct transaction log file, then restore from the last valid backup.

If no other option for starting the server is available, you may be able to start the server using the method discussed in “Emergency recovery without a transaction log”. Contact Sybase Technical Support for assistance, if necessary.

WARNING! This procedure is highly risky and is not recommended except in extreme cases.

Server name is not unique on your network If the server name is not unique on your network, i.e., multiple systems have a server with the same name, the following messages appear in the server log file (*.srvlog or the name specified in the -o startup option) when you attempt to start the server using start_iq:

DBSPAWN ERROR:  -85
Communication error

If you see these errors in the server log file and the server will not start, try to start the server using the iqsrv15 command. The iqsrv15 command returns a more specific error message:

A database server with that name has already started

Once you have verified that the problem is a duplicate server name on your network, start the server with a name that is different from the names of servers that are already running.

Server port number is not unique on the machine If a Sybase IQ server is running and you attempt to start another Sybase IQ server on the same machine using the same port number, the following messages appear in the server log file (*.srvlog):

Trying to start TCPIP link ...
TCPIP communication link not started
Unable to initialize requested communication links
...
DBSPAWN ERROR:  -85
Communication error

Server failed to start

If you see these messages in the server log file and the server will not start, run the stop_iq command to display the names and port numbers of Sybase IQ servers already running on the machine. Then try to start your server, specifying either a port number that is not in use or no port number. When you start a server and do not provide a port number (and the default port number is already in use), Sybase IQ generates an available port number.

Here are the messages you see in the server log file, when you start the server and do not specify a port number:

Trying to start TCPIP link ...
Unable to start on default port; starting on port
49152 instead
TCPIP link started successfully
Now accepting requests
...
Server started successfully

Not enough memory on Windows If the Sybase IQ server will not start on a 32-bit Windows system, make sure you have enabled the Microsoft 4GT RAM Tuning feature, if appropriate for your version of Windows server. The 4GT option configures the Windows operating system at boot time to allow the allocation of up to 3GB of dynamic memory for a user process. See “System requirements” in the chapter “Installing Sybase IQ” in the Installation and Configuration Guide for Windows for a list of supported Windows platforms and details on enabling the 4GT feature.

Environment variables are not set correctly If your database configuration file parameters differ from those used by start_iq, make sure the correct parameters are used to start the server. See “Setting environment variables” in Chapter 1, “File Locations and Installation Settings,” in Reference: Building Blocks, Tables, and Procedures.

You cannot run start_iq If you cannot run the start_iq command and you normally use a configuration file or other command line switches, try starting the server using only start_iq with the server name and database name. If the server starts with this simple command, then the problem is probably caused by one or more of the switches or parameters entered on the command line or in the configuration file. Try to isolate which parameter or switch is preventing the server from starting.

If the server does not start with the most basic start_iq command, try starting the iqdemo demo database using your configuration file and command line switches. If the server starts with the iqdemo database, there may be a problem with your database. Refer to the section “Database connection issues”.

If you still cannot run the start_iq command, use the Start Database Server utility in Sybase Central or the iqsrv15 command.

Before running iqsrv15, you must perform the following tasks (which start_iq normally does for you):

For any database created with a relative pathname, you must start the database server from the directory where the database is located.

Note what directory you are in when you start the server. The server startup directory determines the location of any new database files you create with relative pathnames. If you start the server in a different directory, Sybase IQ cannot find those database files.

Any server startup scripts should change directory to a known location before issuing the server startup command.

Syntax for iqsrv15 is as follows:

iqsrv15 -n server-name -gm numberother-server-switches ] [ database-file [ database-switches ] ]

NoteOn the iqsrv15 command line, the last option specified takes precedence, so if you want to override your configuration file, list any options you want to change after the configuration file name. For example:

iqsrv15 @iqdemo.cfg -x 'tcpip{port=1870}' iqdemo

The –x parameter here overrides connection information in the iqdemo.cfg file.

When you start the server with the iqsrv15 command, it does not run in the background, and messages do not automatically go to the server log. However, if you include the -o filename server switch, messages are sent to the named file in addition to the server window.

If the server fails to start when you run the iqsrv15 command, then attempt to start again using the iqsrv15 utility with minimal switches and parameters. For example:

iqsrv15 -n <servername> <dbname>.db -c 32m
-gd all -gl all

If the server starts with the minimum parameters and switches, then one of the parameters or switches normally used to start the server may be causing a problem. Try to isolate which parameter or switch is preventing the server from starting.

See also

Chapter 2, “Running Sybase IQ,” and Chapter 3, “Sybase IQ Connections” for more information on server startup, including the section “Troubleshooting startup, shutdown, and connections”