Recovery Errors

This section contains error messages for Adaptive Server database recovery. Database recovery occurs during Adaptive Server start-up, load database, and load transaction.




Error 3401

Severity

21

Message text

Rec_logbounds: getnext SCAN_RID of last checkpoint failed on Rid from sysdatabases. %S_RID.

Explanation

When you restart Adaptive Server, recovery scans the log to find the last checkpoint record to determine the active portion of the log. Error 3401 is raised when recovery is unable to find a checkpoint record.

Error 3401 occurs with the following states:

State

Meaning

1

An attempt to start a log scan failed.

2

A log scan was started, but an attempt to find a checkpoint record in the log failed.

Action


Good Backup Available

If you have a good backup, restore the database as follows:

  1. Drop the database. If the drop fails, follow the instructions in “How to Drop a Database When drop database Fails” in the Encyclopedia of Tasks chapter.

  2. Create a database for load. Make sure the database you create has sizes as least as large as the values in sysusages for the original database (and that all other sysusages values match the original values). For more information about creating a database for load, refer to create database in the Adaptive Server Reference Manual.

  3. Load the database from backup. (Refer to load database in the Adaptive Server Reference Manual.)

  4. Use the online database command to make the database available for use.


No Good Backup Available

If you do not have a good backup, contact Sybase Technical Support. They may be able to help you recover from this error.

Additional information

Have the following information ready when you call Sybase Technical Support:

Versions in which this error is raised

All versions




Error 3403

Severity

22

Message text

During recovery initialization, page %ld was encountered.  This page belongs to object %ld, not the log.

NoteThis error may be caused by a hardware problem.

Explanation

During recovery, Adaptive Server scans the transaction log until the last page is found. During this scan, if a page is found that is allocated to syslogs but the object ID on the page header is not the same as that of syslogs, Error 3403 occurs.

Situations that may cause this error include the following:

This is a serious error and you will have to rebuild the affected database either using bcp or from clean backups.

Action

If you have a good backup, restore the database from your backup:

  1. Drop the database. If the drop fails, follow the instructions in “How to Drop a Database When drop database Fails” in the Encyclopedia of Tasks chapter.

  2. Create a database for load. Make sure the database you create has sizes as least as large as those in sysusages for the original database (and that all other sysusages values match the original values). For more information about creating a database for load, refer to “create database” in the Adaptive Server Reference Manual.

  3. Load the database from backup. (Refer to “load database” in the Reference Manual.)

  4. Use the online database command to make the database available for use.


No Good Backup

If you do not have a good backup, copy the data from the corrupted table into a new (dummy) table or into a file. Then rename your old, corrupted table and copy the data back into a new table using the original name. For information about doing this, refer to “How to Rescue Data from a Corrupted Table” in the Encyclopedia of Tasks chapter.

To prevent some occurrences of this error in the future, checkpoint each database that is being used before shutting down Adaptive Server.

Additional information

Refer to “Developing a Backup and Recovery Plan” in the System Administration Guide for complete information about how to safely create, dump, load, and re-create databases.

Versions in which this error is raised

All versions




Error 3404

Severity

21

Message text

Rec_complete: Could not open controlling database (id %d) of controlling database in multi-db transaction.

Explanation

The Adaptive Server transaction log records all changes in the database. When database activity occurs in the context of a transaction, BEGINXACT and ENDXACT records are written in the transaction log to mark the transaction boundary. If the transaction spans databases, it is known as a multi-database transaction; the database where the transaction was started (in the case of explicit transactions, the database where the first begin transaction was issued) is referred to as the controlling database.

When Adaptive Server is brought back up after a shutdown, the recovery process uses the transaction log to bring all the databases to a consistent state. Error 3404 is raised when Adaptive Server attempts to recover a multi-database transaction, but is unable to open the controlling database for the transaction.

Specifically, Error 3404 results when Adaptive Server is attempting to recover a transaction that started in a user database but modified data in master database. When this happens, Adaptive Server is unable to access the transaction log for the user database since the device on which the log resides is not yet open. Consequently master cannot be recovered. This error is frequently accompanied by Errors 913 and 3414.

Action

Use one of these options to correct this problem:

To avoid a recurrence of this error, do not start transactions in user databases that modify tables in master.

Additional information

Before calling Technical Support, have the following information available:

Versions in which this error is raised

All versions




Error 3414

Severity

10

Message text

Database '%.*s' (dbid %d): Recovery failed. Check the SQL Server errorlog for further information as to the cause.

Explanation

This error occurs during startup when Adaptive Server could not complete the recovery of the database listed in the error message.

You cannot use the database until whatever caused the error has been corrected because Adaptive Server marks the database suspect.

Error 926 is a related error which is raised when attempting to access a database that could not recover. Refer to the writeup for Error 926.

Action

To determine why recovery failed, examine the Adaptive Server error log for any errors prior to the 3414 error. It is important to identify the errors before the first occurrence of the 3414 error because subsequent attempts to start Adaptive Server may not give the detailed error information you need to diagnose the problem.

If you do not have sufficient information to recover from the previous errors, you can recover from known, clean backups or contact Sybase Technical Support for assistance.

Versions in which this error is raised

All versions




Error 3418

Severity

21

Message text

Not enough deses to open '%.*s'.

Explanation

This error occurs during startup when Adaptive Server could not complete recovery of the system database listed in the error message.

Error 3418 is called for the following system databases which existed in sysdatabases prior to starting recovery:

Possible reasons for Error 3418 include:

When Error 3418 occurs, Adaptive Server shuts down automatically. Since the affected databases are required for Adaptive Server to start successfully, manual intervention is required to start Adaptive Server when this error occurs.

Action

To determine why recovery failed, examine the Adaptive Server error log.

Contact Sybase Technical Support for assistance with the manual intervention required to start Adaptive Server and recover from this error.

Versions in which this error is raised

All versions




Error 3425

Severity

21

Message text

Transaction (%ld, %d) not found in transaction table.

NoteThis error may be caused by a hardware problem.

Explanation

This error occurs during recovery when an end (commit or rollback) transaction log record was found that does not have a corresponding begin transaction record. Therefore, the transaction could not be rolled back or committed and recovery or load could not complete for that database.

You cannot use the affected database until whatever caused the error has been corrected because Adaptive Server marks the database suspect.

Action

If the error occurred during start-up (rather than during load database or load transaction), determine which database had the error by looking at your Adaptive Server error log.

If you have a clean backup, restore your database using that backup.

If you do not have a clean backup, call Sybase Technical Support.

Additional information

If you need assistance from Sybase Technical Support, have the following information available when you call:

Versions in which this error is raised

All versions




Error 3429

Severity

21

Message text

Error recovering database '%.*s' - could not connect to commit service to check completion status of xact: %S_RID.

Explanation

The two-phase commit service allows an application to coordinate updates within a Server or among two or more Adaptive Servers. The commit service uses one Adaptive Server, the commit server, as a central recordkeeper that helps the application determine whether to commit or roll back transactions in case of failure.

During database recovery, each outstanding transaction is handled in one of the following ways:

If the transaction reached the prepare-to-commit stage of the two-phase commit, Adaptive Server must find out whether the controlling transaction committed. If the controlling transaction is at the same site, Adaptive Server can directly examine the log. But if the transaction was handled by the commit service, Adaptive Server must query the commit service to find out whether the controlling transaction has been committed.

Adaptive Server queries the commit service using the probe utility. As a standard client, probe requires the following:

Error 3429 occurs when Adaptive Server uses probe to query the commit service to find out whether the controlling transaction committed, and probe cannot connect to the commit service because the connection is refused or times out.

After Error 3429 occurs, Error 3414 is raised and the database status is set to “suspect.”

Action

  1. Solve the problem that is preventing probe from connecting to the commit service. Make sure that the commit service Adaptive Server is running. If it is hung or otherwise inaccessible, shut down and restart the commit service Adaptive Server.

  2. For the affected database, execute one of the procedures supplied in “How to Reset a Database's “suspect” Status” in the Encyclopedia of Tasks chapter.

  3. Shut down and restart Adaptive Server to recover the database.

Additional information

Refer to the Open Client DB-Library/C Reference Manual for information about the two-phase commit service.

Versions in which this error is raised

All versions




Error 3434

Severity

20

Message text

Cannot change sortorder. Server shutting down.  Restart to continue with sortorder unchanged.

Explanation

When you restart a server after changing the server’s sort order, the recovery process must rebuild system tables in both master database and user databases, and rebuild indexes that are affected by the sort order change. Error 3434 occurs when recovery is unable to recreate a system index or table following the sort order change.

The error can be raised:

  1. When you change from a case-sensitive sort order to a case-insensitive sort order, and conflicts arise between key values that are differentiated only by case. For example, key values ’Joe’ and ’joe’ will cause a conflict when rebuilding the index with a case-insensitive sort order.

    Error 3436 (“Cannot rebuild index %d for the ’%.*s’ table in the ’%.*s’ database.”) precedes Error 3434 in this situation.

  2. When one or more databases for load exist in the server. You cannot change sort order when the server contains a database that was created for load.

Error 3434 rolls back the transaction in progress, reverts to the original sort order, and shuts down the server.

Action

Check the error log to obtain more information about the error. Actions depend on the likely cause of the error:

  1. If the error is related to key value conflicts, determine the table and index from the 3436 error message, and check for ’duplicate key’ messages in the error log. Correct the reported conflict and retry the sort order change.

  2. If the server contains a database created for loading a dump (for load database), take the following steps to correct the problem:

    1. Drop the for-load database(s).

    2. Manually change the sort order on the server. See “How to Manually Change Sort Order or Default Character Set” in the Encyclopedia of Tasks chapter for details.

    3. Restart the server.

After changing the sort order, refer to "If You Changed the Sort Order or Default Character Set" in the System Administration Guide and do the steps described there. It is very important that you do these steps to guarantee the integrity of your data.

Additional information

  1. You can achieve similar results without changing the sort order to case insensitive by using the upper or lower functions in your queries. For example, if tableX has col1 with values "sybase", "Sybase", and "SYBASE", you could run the following isql statement:

    select cols from tableX where lower(col1) = "sybase"
    

    This treats all of the values as lowercase for the query.

  2. In many cases, you cannot reload your data from a database dump after reconfiguring the sort order. Refer to "Database Dumps and Configuration Changes" in the System Administration Guide for details.

Versions in which this error is raised

All versions




Error 3445

Severity

10

Message text

SQL Server could not bring database '%.*s' online.

Explanation

This error occurs when Adaptive Server cannot bring a database online for one of the following reasons:

Action

Look at the error messages that precede the 3445 message to determine why the 3445 error occurred, and resolve those problems.

If you cannot solve the problem:

  1. Determine the current log version for the database. For example, to determine the log version of a database called test_db, use the following commands:

    1> load database test_db from 'test.dump' with headeronly
    2> go
    

    Backup Server session id is:  6.  Use this value when executing
    the `sp_volchanged' system stored procedure after fulfilling any 
    volume change request from the Backup Server.
    

    Backup Server: 6.28.1.1: Dumpfile name `test_db952820A2F8' section 
    number 0001 mounted on disk file 
    `/remote/solaris/rel1100/install/test.dump'
    

    This is a database dump of database ID 6, name `test_db', from
    Oct  9 1995 11:35AM.  SQL Server version: 
    SQL Server/11.0/B/Sun_svr4/OS5.2/1/OPT/Fri Aug 1805:10:26 PDT 1995. 
    Backup Server version: 
    Backup Server/11.0/B/Sun_svr4/OS5.4/1/OPT/Thu Aug 17 21:54:21 PDT 1995.
    

    Database contains 1536 pages; checkpoint RID=(Rid pageid = 0x405; 
    row num = 0xd); next objectID=3031; sort order ID=50, status=0; 
    charset ID=1.
    Database log version=2; database upgrade version=1.
    

  2. Call Sybase Technical Support. Have the following information ready:

Versions in which this error is raised

All versions




Error 3446

Severity

16

Message text

You do not have privilege to bring database '%.*s' online.

Explanation

The online database command marks a database available for public use after a normal load sequence and, if needed, upgrades a loaded user database and transaction log dumps to the current version of Adaptive Server.

Only a System Administrator, Database Owner, or Operator can execute online database. Error 3446 occurs when you do not have any of these privileges and you attempt to execute an online database command.

Action

Make sure you have the needed privileges or ask a user who does have the needed privileges to run the online database command.

Additional information

Refer to the Reference Manual for information about online database.

Refer to the Security Administration Guide for information about using the “sa” account and roles in Adaptive Server.

Refer to “grant” in the Adaptive Server Reference Manual for information about granting roles.

Versions in which this error is raised

All versions




Error 3447

Severity

10

Message text

Database `%.*s' appears to be in the process of being loaded; SQL Server will not bring it online automatically. Use the ONLINE DATABASE command to bring this database online.

Explanation

During a load database, Adaptive Server takes the database being loaded offline. When the load is complete, you bring the database back online manually with the online database command. If your backup strategy involves loading a sequence of transaction logs after a load database, the fact that the database will be unavailable for use until you enter the online database command will allow you to complete your loads without interference from other processes changing that database.

Error 3447 occurs during the recovery phase of Adaptive Server start-up, when the recovery process attempts to bring all the recovered databases online automatically and Adaptive Server sees that the database named in the error message is being loaded.

This error does not occur for master, as Adaptive Server always brings master online.

Action

Finish the load database sequence and then use online database to make the database available for use.

Additional information

Refer to the Reference Manual for information about online database.

Versions in which this error is raised

All versions




Error 3452

Severity

20

Message text

Database '%.*s': upgrade item %d depends on item %d, which could not be installed. Please refer to previous messages for the cause of the failure, correct the problem and try again.

Explanation

Databases can be upgraded during an online database command or when you are using the sybinit upgrade utility. Many upgrade steps depend on other upgrade steps having been done previously.

Error 3452 occurs when the first upgrade step shown in the message depended on the second reported step, and that second step has failed. The database upgrade does not complete when this error occurs.

You will not be able to bring the database named in the error message online until you resolve the problem that led to the 3452 error.

Action

  1. Find the previous message describing the failure of the dependent (second) step.

  2. Fix the problem that caused the failure. If appropriate, follow the directions for a failed upgrade in the Adaptive Server installation and configuration guide.

  3. If you were running online database when Error 3452 occurred, issue the online database command to restart the database upgrade.

Versions in which this error is raised

All versions




Error 3454

Severity

10

Message text

Database '%.*s': SQL Server could not completely upgrade this database; upgrade item %d could not be installed.

Explanation

Databases can be upgraded during an online database command or when you are using the sybinit upgrade utility. Error 3454 is an informational message telling you that Adaptive Server could not completely upgrade the database listed in the message. The 3454 error is preceded by other errors that show why the upgrade failed.

You cannot bring the database named in the error message online until you resolve the problem that led to the 3454 error.

In the following example, these messages appeared during start-up, when Adaptive Server attempted to bring a database online but failed to upgrade it:

00:95/11/21 18:34:36.51 server Database 'test' appears to be at an older 
revision than the present installation; SQL Server will assess it, 
and upgrade it as required.
00:95/11/21 18:34:36.59 server Error: 1105, Severity: 17, State: 1
00:95/11/21 18:34:36.61 server Can't allocate space for object
'sysattributes' in database 'test' because the 'system' segment is full. 
If you ran out of space in syslogs, dump the transaction log. 
Otherwise, use ALTER DATABASE or sp_extendsegment to increase 
the size of the segment.
00:95/11/21 18:34:36.63 server Error: 3460, Severity: 20, State: 1
00:95/11/21 18:34:36.65 server  Database 'test': upgrade could not 
record the installation of upgrade item '80'. Please refer to 
previous error messages to determine the problem. 
Fix the problem, then try again.
00:95/11/21 18:34:36.68 server Error: 3451, Severity: 20, State: 1
00:95/11/21 18:34:36.70 server Database 'test': upgrade has failed for 
this database.  Please refer to previous messages for the cause of 
the failure, correct the problem and try again.

00:95/11/21 18:34:36.73 server Error: 3454, Severity: 20, State: 1
00:95/11/21 18:34:36.75 server Database 'test': SQL Server could not 
completely upgrade this database; upgrade item 80 could not 
be installed. 
00:95/11/21 18:34:36.76 server SQL Server could not bring database 
'test' online.

Action

  1. Look at the error messages preceding the 3454 error message to determine what happened.

  2. Refer to the recovery steps suggested for those errors.

  3. Correct the problem.

  4. If the error occurred when you were running online database, issue the online database command for that database after the problem is fixed. Adaptive Server will automatically try to finish the upgrade.

    If the error occurred during an Adaptive Server upgrade, follow the recovery directions in the Adaptive Server installation and configuration guide.

Versions in which this error is raised

All versions




Error 3470

Severity

10

Message text

SQL Server could not completely upgrade database '%.*s', but the database was online when upgrade began, so it will be left online.

Explanation

When Adaptive Server tries to bring an already online database to the online state and it finds that some elements of the database have not been upgraded, it tries to complete the database upgrade. Error 3470 occurs when that attempt to upgrade the database fails.

Action

  1. Determine the current upgrade version for the database. For example, to determine the upgrade version of a database called test_db, use the following commands:

    1> load database test_db from 'test.dump' with headeronly
    2> go
    
    

    Backup Server session id is:  6.  Use this value when executing
    the `sp_volchanged' system stored procedure after fulfilling any 
    volume change request from the Backup Server.
    

    Backup Server: 6.28.1.1: Dumpfile name `test_db952820A2F8' 
    section number 0001 mounted on disk file 
    `/remote/solaris/rel1100/install/test.dump'
    

    This is a database dump of database ID 6, name `test_db', from
    Oct  9 1995 11:35AM.  SQL Server version: 
    SQL Server/11.0/B/Sun_svr4/OS5.2/1/OPT/Fri Aug 1805:10:26 PDT 1995. 
    Backup Server version: 
    Backup Server/11.0/B/Sun_svr4/OS5.4/1/OPT/Thu Aug 17 21:54:21 PDT 1995.
    

    Database contains 1536 pages; checkpoint RID=(Rid pageid = 0x405; 
    row num = 0xd); next object ID=3031; sort order ID=50, status=0; 
    charset ID=1.
    Database log version=2; database upgrade version=1.
    

  2. Call Sybase Technical Support. Have the following information ready:

Versions in which this error is raised

All versions