sybase数据库,数据库正在使用,想大批量删除部分历史数据,但是删除的过程中经常上锁,影响数据库正常使

sybase数据库,数据库正在使用,想大批量删除部分历史数据,但是删除的过程中经常上锁,影响数据库正常使,第1张

看你的截图应该是ASE1254,业务可以停的前提下,我的做法是select into 新表 from 旧表,truncate table 旧表, select into 旧表 from 新表,这个不存在锁,比delete效率高。bcp out/in也可以,作为一个DBA应该不会在业务繁忙的时候做数据维护的,不知道你怎么考虑这个问题……

空间问题可能原因:

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

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

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

故障现象:

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

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

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

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,问题解决

1 如何锁一个表的某一行 

 

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 

SELECT  FROM table ROWLOCK WHERE id = 1 

 

2 锁定数据库的一个表 

 

SELECT  FROM table WITH (HOLDLOCK) 

 

加锁语句:

sybase:

update 表 set col1=col1 where 1=0 ;

MSSQL:

select col1 from 表 (tablockx) where 1=0 ;

oracle:

LOCK TABLE 表 IN EXCLUSIVE MODE ;

加锁后其它人不可 *** 作,直到加锁用户解锁,用commit或rollback解锁

以上就是关于sybase数据库,数据库正在使用,想大批量删除部分历史数据,但是删除的过程中经常上锁,影响数据库正常使全部的内容,包括:sybase数据库,数据库正在使用,想大批量删除部分历史数据,但是删除的过程中经常上锁,影响数据库正常使、请教关于Sybase IQ空间问题、sqlserver怎么实现一个行锁等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/10131798.html

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

发表评论

登录后才能评论

评论列表(0条)

保存