关于BCP IN恢复数据库default segment满的问题!
本人用BCP作ASE 12.5的数据库备份和恢复,目前备份基本没问题,但是,近期数据库出现问题,要恢复,于是,便重新安装服务器,对其进行恢复,结果在恢复过程中出现以下2个问题:1、在创建数据库设备时,指定了设备大小,但创建的设备文件大小却与指定大小不一致。如,设备名为bfdb,设备文件名为bfdb.dat,我设定bfdb的大小为10G,但创建出来的bfdb.dat却只有
1.22G左右。在设备属性中显示设备尚有8G多的空间没有使用,却没法对设备大小进行扩展。
2、使用BCP IN 导入数据,当导入到一半左右时,系统便提示:Can't allocate space for object....'default' segment is full...,出现这个提示之后的所有数据便无法成功导入,重新建立一个设备给这个数据库使用,便可解决该问题。但备份出来的数据只有200多M,而我申请的设备大小有10G,应该不至于数据空间不足,请问这是什么原因,是不是数据库的配置不正确造成的,该如何解决?
由于问题比较急,希望高手们能帮帮忙。小弟在这里先行谢过了! 1、估计是你在创建逻辑设备时,大小计算错了,注意设备大小是以一个页面的大小为计算单位的,正确的计算方式是 页面大小分为2k、4k、8k、16k ,如果以2k为单位,你想创建一个10G大小的设备,那么计算的大小应该是:512×10240=5242880,具体语句如下:
use master
go
disk init
name=bfdb,
physname="/opt/bfdb.dat",
size = 5242880
go
这样创建出来的设备大小测试10G。
2、从错误提示”Can't allocate space for object....'default' segment is full.. “看,是数据段default segment满了,没有存储空间,你建库时分配的数据空间不足,需要扩库。
use master
go
alter database dbname on devname=200
go sp_extendsegment default segment 1、很可能是计算错误,需要注意的是某些版本的Sybase Central在处理2、4、8、16K页面时会计算错误
2、注意区分设备与数据库
页:
[1]