sybase早版本中增加原有数据库空间出错
环境:操作系统是win2000,分区格式为NTFS,分为C:,D:,E:三个区,D:为存放数据库文件地方。
sybase为11.9
问题:
当应用在执行数据操作时,会提示我Can't allocate space for object `%.*s' in database `%.*s' because `%.*s' segment is full. If you ran out of space in syslogs, dump the transaction log. Otherwise, use ALTER DATABASE or sp_extendsegment to increase size of the segment.我先是尝试清除日志,当我清除日志后问题依然存在,后来发现是当初分配给该数据库的空间已经用完(D盘硬盘空间还有很大,只是分配给该数据库的空间已经用完)。我尝试用alter database database_name on database_drive1=100但无效。用sybase central在数据库右键属性里进行修改也不能成功。甚至后来出现"ALTER DATABASE failed. Log space in master database has reached the last chance threshold. Please free-up log space in master database and try again. "这样的错误。
现在我是不知如何是好。请众兄弟姐妹指教指教!我万分感谢!因为是新人没有分可给。以后将报答!
[ 本帖最后由 dtfox 于 2008-12-13 16:09 编辑 ] 并且已经在google和baidu进行过搜索,未果! name db_size owner dbid created status
---- ------- ----- ----------- ------- ------
past 1500.0 MB sa 6 Dec 13, 2005trunc log on chkpt
device_fragments size usage free kbytes
---------------- ---- ----- -----------
past_data 1000.0 MB data only 0
past_log 500.0 MB log only 511984
数据库的情况,空间没有了。 11.9啊...
那就disk init先,建立一个设备,不过这个版本需要指定设备号,具体的语法可以查到
然后alter database past on 新设备
然后操作就不会报错了 原帖由 D_D_D_D 于 2008-12-14 00:38 发表 http://bbs.chinaunix.net/images/common/back.gif
11.9啊...
那就disk init先,建立一个设备,不过这个版本需要指定设备号,具体的语法可以查到
然后alter database past on 新设备
然后操作就不会报错了
我不知道disk init怎么做,因为我根本没有使用过sybase。希望能得到详细操作流程和具体语句。谢谢
在CSDN上听有人说是因为master使用太多需要清理,不知道是不是那么一回事。我也去测试一下。 看见CSDN上有人那么据说后,我去sp_helpdb master后确认了有项目为0了,在使用dump tran master with truncate_only清理后,已经有了些许的空间,但是当我通过sybase central增加该数据库的空间时,确实不在出现以上错误,但是仍然提示我:“CREATE of ALTER DATABASE failed because the device 'past_data' has no space available either for log or for data.”,是不是因为该数据库本身没有空间,就无法增加其空间呢?该如何处理?谢谢。
我SQL Advantage里用alter database past on past_data = 100也是提示上述错误。 先删master的日志是正确的,disk init举例
DISK INIT
NAME=设备名,
PHYSNAME=物理设备名,
VDEVNO=虚拟设备号,
SIZE=块数
希望还是能自己看看,别人都写了对提高没有任何好处的
然后就可以alter databasepast on了
设备最好做的大点,因为11.9不支持 disk reinit 非常谢谢4d的帮助,现问题已经解决。谢谢谢谢。
页:
[1]