IQ 迁移object导致的血案 - sp_mpxprocesstlvlog exception, SQLSTATE=QSA44 - 1

Keywords

 “sp_mpxprocesstlvlog exception”, “cannot maintain catalog sync” 

   因为将1T Size的文件恢复到新的主机,新主机上的raw device每个LUN为1.5T, 导致500G的空间不能被合理使用, 我们采用加入一个 1.5T 的RAW DEVICE, 然后将原来的文件

read only , 然后通过 sp_iqemptyfile 方式转移数据到新的raw device上,最后删除之前的文件。但是删除文件碰到问题,协调节点外的其他节点都down下来。 

1. 新建dbspace文件。

alter dbspace msgdw  add file  msgdw_16399  ‘/data01/iqdm/data/iq_msgdw_11.iq’ 

2.
设置原异常的dbspace文件为只读 

alter dbspace msgdw  alter file msgdw_16391  readonly  

3.
sp_iqfile msgdw  查看文件是否变成RO , 如果是,立即commit; 

然后再跑一次 sp_iqfile msgdw ,如果文件状态还是 RO , 那么确认文件确实是RO . 

4.
sp_iqemptyfile会迁移原写入异常的objects到可读写的dbspace文件上,然后清空。

sp_iqemptyfile msgdw_16391  

5. 查看设置为readonly的文件是否可以drop . 

sp_iqfile msgdw  

 — this should show that OkToDrop column for the problem dbfile msgdw_16391  should change from N to Y 

如果状态是Y,  立即COMMIT,  再次查看 sp_iqfile msgdw ,如果确认 OkToDrop=Y , 那么可以下一步。

6. 删除只读的dbspace文件。

alter dbspace msgdw  drop file msgdw_16391  

7. 删除成功,但是发现协调节点外的其他节点都down了。 查看iqmsg日志,发现如下语句:

sp_mpxprocesstlvlog exception, SQLSTATE=QSA44 [An IO error was encountered while reading a 

database page in INVALID_DBSPACE DBSpace. 

在SAP Support查询发现很多这种情况: 

2491497 – Random secondary node crash with “Secondary server cannot maintain catalog sync” error  

2147434 – DROP and CREATE USER causes “Secondary server cannot maintain catalog sync.”  
本文转自ITPUB博客tolywang的博客,原文链接:IQ 迁移object导致的血案 – sp_mpxprocesstlvlog exception, SQLSTATE=QSA44 – 1,如需转载请自行联系原博主。

点赞