紧急求助!sybase故障,在线等待!!!!

我在执行一个事务的时候出现如下问题:

exec p_settle "20021021","20021120"
-----
Server Message: Number 3908, Severity 16
Attempt to BEGIN TRANsaction in database 'detail' failed because database is in BYPASS RECOVERY mode.
Server Message: Number 3901, Severity 17
This transaction uses too many databases and/or aggregates. The maximum allowed is 16. The transaction must be split into smaller sections.
(1 row affected)
(return status = -7)

该如何解决,在线等!!!!!!!
---------------------------------------------------------------

Error 3908
Severity 16
Message text Attempt to BEGIN TRANsaction in database ’%.*s’ failed because
database is in BYPASS RECOVERY mode.
Explanation Adaptive Server can start various types of transactions such as local (in
response to a local command), internal (for the server’s own use), external
(started by an external client like a TP Monitor) and subordinate (child
transactions started by a parent transaction in parallel).
Bypass recovery starts Adaptive Server without recovering one or more
databases. A database in this mode can be accessed even though it is not
recovered. You use this mode to allow access to the database for problem
analysis, to copy out data, and so on.
Error 3908 is raised when a transaction is attempted while the database is in
bypass recovery. Although certain commands are permissible in this mode, no
transactions - regardless of type - can be started when the database is in bypass
recovery.
Error 3908 is raised with the following states:
State Meaning
1 Attempted to start a transaction when the database is not available
for update. Applies to all possible transaction types.
2 Attempted to start a subordinate transaction when the database is not
available for update.
Error 3917
Action Do not attempt to start a transaction while the database is in bypass recovery.
Check if any automated jobs may have submitted a batch job that attempted
such a transaction. First restore the database to the original working status it
had (prior to bypass status) before attempting any transactions.
Use the following steps to reset the database status:
Note Although a status of zero is usually appropriate, it is not the only possible
status value you can use. Reset the database to the actual, normal status it had
prior to entering bypass recovery status.
1 Reset the database status to 0:
1> sp_configure "allow updates", 1
2> go
1> begin tran
2> go
1> use master
2> go
1> update sysdatabases set status=0
2> where name=

 1<database_name>   
 23&gt; go   
 3Check that the above update command affected only one row (if more than   
 4one row was affected, issue a rollback transaction.) Then commit the   
 5transaction and shut down Adaptive Server as follows:   
 61&gt; commit tran   
 72&gt; go   
 81&gt; shutdown with nowait   
 92&gt; go   
102 Restart Adaptive Server. Run dbcc checkdb and dbcc checkalloc on the   
11affected database to make sure there are no errors.   
12Version in which this   
13error is raised   
14All versions</database_name>
Published At
Categories with 数据库类
Tagged with
comments powered by Disqus