IQ 15.X 从IQ_SYSTEM_MAIN DBSPACE 上把数据库对像迁移到用户 DBSPACE 上的办法[转]

用户在使用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






转载于:https://www.cnblogs.com/iathena/p/e3c63c5fca11da5d22dd99cec0a4226c.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值