IQ 遷移object導致的血案 - sp_mpxprocesstlvlog exception, SQLSTATE=QSA44 - 1

tolywang發表於2017-09-07
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部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-2144662/,如需轉載,請註明出處,否則將追究法律責任。

相關文章