请教关于Sybase IQ空间问题

请教关于Sybase IQ空间问题,第1张

空间问题可能原因:

1、SybaseIQ的事务日志,存放在iq store中,由DBMS管理,所以所有表空间相加不等于数据库空间;

2、SybaseIQ运行过程中可能由于锁的机制,other version增大,可以通过数据库命令: sp_iqstatus查看;

3、空间分配上建议最后使用符号连接,底层变化,不影响dbspace 对应的路径和文件名。

故障现象:

1.sp_iqdbspace统计db空间,占用1.4TB,同时发现空间使用量,非正常的增长过快

2.sp_iqstatus查询db状态,发现other versions有很大的占用量

3.sp_iqdbsize统计db实际占用空间,发现占用1.2TB

4.存在数百G,空间的差异

5.由于备份空间问题,有进行增加盘柜空间动作,过程中,对write server有做停机维护,read server没有动作

故障原因:

1.系统为多节点架构1台write server,1台read server

2.重启write server,进行维护,没有通过sybase central,关闭read server的访问,导致read server上,有大量old version的数据,与write server数据不一致

3.old version数据,也是同样保存在iq的main db space中,所以,做sp_iqdbspace统计,会计算到这些数据,而做sp_iqdbsize,统计的是实际数据空间,故不会计算到这些old version的数据

4.old version的数据的检查,对应sp_iqdbsize中的other versions栏位,大小就是后面的数值

解决方法:

1.Sybase central中关闭read server的服务

2.write server上关闭多节点服务

3.write server重新启动IQ服务,让IQ系统做相应检测,释放other versions空间

4.启动多节点服务在write server上的Agent服务

5.在Sybase central中的多节点配置里,启动write server和read server的服务

6.启动后,SQL Remote,应该为active

7.在write server上sp_iqstatus,other version为0,问题解决

data_pages() 或者data_pgs()

curunreservedpgs()

通过这两个函数自己计算。

查看数据库内使用对象占用的空间

use xxxx ----你的数据库名字

go

--查看数据库内所有对象使用的数据空间:

select count( data_pages(db_id(),id,doampg) + data_pages(db_id(),id,ioampg)) from sysindexes where id <>8

--查看数据库内日志空间:

select count( data_pages(db_id(),id,doampg) + data_pages(db_id(),id,ioampg)) from sysindexes where id

= 8

函数data_pages的第一个参数为数据库id,第二个参数为对象ID,第三个参数为 doampg或者ioampg分别表示统计数据、日志所占空间。

函数curunreservedpgs统计设备上面指定段的剩余空间。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6702785.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-27
下一篇2023-03-27

发表评论

登录后才能评论

评论列表(0条)

    保存