Chinaunix首页 | 论坛 | 博客
  • 博客访问: 213621
  • 博文数量: 28
  • 博客积分: 128
  • 博客等级: 民兵
  • 技术积分: 400
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-19 13:05
个人简介

生活的内容不全是工作,工作只是生活的一部分;享受生活,热爱工作!

文章分类
文章存档

2015年(1)

2014年(23)

2011年(4)

分类: Sybase

2014-07-09 18:45:06

用户在使用IQ 15 数据库一段时间后,执行批量程序时报“You have run out of space in IQ_SYSTEM_MAIN",

经检查,用户的DBSPACE使用率为1%,IQ_SYSTEM_MAINH 的使用率为100%,

数据库表对像创建在了IQ_SYSTEM_MAIN上了,没有创建在用户的Dbpace上,造成IQ_SYSTEM_MAIN 空间满。

解决办法如下:

1.回收用户在IQ_SYSTEM_MAIN上创建数据库对象(表和索引等)的权限

       REVOKE CREATE ON IQ_SYSTEM_MAIN FROM PUBLIC;


2.为用户设置缺省dbspace及授予用户在user_dbspace上创建对像

       GRANT CREATE ON XXX_USER_MAIN TO user;                    

       SET OPTION user.DEFAULT_DBSPACE='XXX_USER_MAIN'


3.把IQ_SYSTEM_MAIN上的表查出来,形成SQL文件

select  'alter table' +  creator||'.'||tname +' move to XXX_USER_MAIN;' from syscatalog where creator ='username' and dbspacename='IQ_SYSTEM_MAIN' >&/tmp/movetable.sql

    生成脚本文件后,需要用vi把文件里的“’”单引号去掉,正确显示如下:

    alter table table_name  move to XXX _USER_MAIN;


4.把表移动到用户的DBSPACE上

dbisql –c “uid=dba;pwd=sql;eng=xxx;links=tcpip” –nogui -onerror continue  movetable.sql

阅读(5505) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~