发布网友 发布时间:2022-04-21 07:30
共2个回答
热心网友 时间:2023-11-07 03:26
Sybase提供的解决方法:
强行恢复数据库步骤 (可在故障及恢复手册 第二章 75页找到)
1. 使用强制选项启动IQ服务器,在start_asiq命令中使用 -iqfrec 选项
例如:
start_asiq @query.cfg -gd dba -gm 1 -iqfrec query query.db
日志显示:
=============================================================
IQ server starting with:
200 connections ( -gm )
42 cmd resources ( -iqgovern )
1245 threads ( -iqmt )
512 Kb thread stack size ( -iqtss )
637440 Kb thread memory size ( -iqmt * -iqtss )
16 IQ number of cpus ( -iqnumbercpus )
=============================================================
I. 01/27 20:13:38. Rollback log...
I. 01/27 20:13:38. Checkpointing...
I. 01/27 20:13:38. Starting checkpoint of "query" (query.db) at Wed Jan 27 2010 20:13
I. 01/27 20:13:38. Finished checkpoint of "query" (query.db) at Wed Jan 27 2010 20:13
I. 01/27 20:13:38. Recovery complete
I. 01/27 20:13:39. Database "query" (query.db) started at Wed Jan 27 2010 20:13
I. 01/27 20:13:39. IQ Server query.
I. 01/27 20:13:39. Database server started at Wed Jan 27 2010 20:13
I. 01/27 20:13:39. Trying to start TCPIP link ...
I. 01/27 20:13:39. Starting on port 2638
I. 01/27 20:13:44. TCPIP link started successfully
I. 01/27 20:13:44. Now accepting requests
New process id is 7472
Server started successfully
你应该指定两次数据库名称,一次是指定强制恢复的数据库,一次是指定启动的数据库,-iqfrec 选项要求数据库名称。
注意这是指物理数据库的名称,是大小写敏感的。 不要使用select_dbname得到的名称,那是逻辑名称。
2. 运行sp_iqcheckdb命令去检查数据库是否存在泄露的空间
连接到正在恢复的数据库。
以分配模式运行存储过程 sp_iqcheckdb:sp_iqcheckdb 'allocation database'
如果检查显示以下信息:
======================================== ============================== =====
DBCC Allocation Mode Report
======================================== ============================== =====
** DBCC Status Errors Detected *****
** Block Count Mismatch -118573 *****
** Blocks Leaked 118573 *****
则说明存在泄露空间,你需要正常的停止IQ服务器,并使用-iqdroplks选项去重新启动IQ服务器 (手册77页 “在强制恢复中恢复泄露空间”)
例如:start_asiq @query.cfg -gd dba -gm 1 -iqdroplks query -iqfrec query query.db
连接到正在恢复的数据库。
以分配模式运行存储过程 sp_iqcheckdb:sp_iqcheckdb 'allocation database'
如果没有报错并且 sp_iqcheckdb 显示消息:
======================================== ============================== =====
DBCC Allocation Mode Report
======================================== ============================== =====
DBCC Status Freelist updated
DBCC Status No Errors Detected
则说明泄露的空间已恢复并且是强制执行的恢复。
发出检查点。checkpoint
3.使用常规方法停止服务器。(取消 -iqfrec 及 -iqdroplks 启动选项)
使用常规方法重新启动服务器,然后继续正常的处理。
热心网友 时间:2023-11-07 03:26
数据库正在执行关闭中,说明有其它会话已经执行shutdown操作,正在关闭Sybase数据库服务器。