Possible Rowstore Table Corruption When Continuous Page Flush is Enabled

If you encounter corruptions in row store tables consistency check reports like “pointing to free variable part found;rowid=xxx;

offset=8;typeid=37;ext_rowid=xxx” then you should check the following OSS note and the steps which we completed.


Due to a programming error in disk write optimizations in HANA SPS12, entries in row store tables can become inconsistent, resulting in duplicates or data loss, when below prerequisites are met.

Prerequisites:

  • SAP HANA database Revision 120 – 122.03
  • Continuous page flush is enabled (global.ini section [persistence] parameter continuous_flush_interval_s > 0).
    In SAP HANA database SPS12 continuous page flush is enabled by default, even if the parameter is not explicitly set
  • Slow disk IO will increase the likelyhood to run into this problem

Solution :

Step 1 - Disable continuous page flush using SQL command

ALTER SYSTEM ALTER CONFIGURATION (‘global.ini’, ‘system’) SET (‘persistence’, ‘continuous_flush_interval_s’) = ’0′ WITH RECONFIGURE;

Possible Rowstore Table Corruption When Continuous Page Flush is Enabled

Step 2 - Force all rowstore pages to be written to the persistence, to do this ; execute the following commands as <SID>adm user.Please run these commands for each “indexserver” on all nodes.

hdbcons -p <process_id> “pageaccess touch row”

hdbcons -p <process_id> “savepoint execute”

For our case ;

Possible Rowstore Table Corruption When Continuous Page Flush is Enabled

hdbcons -p 6290 “pageaccess touch row”

hdbcons -p 6290 “savepoint execute”

Possible Rowstore Table Corruption When Continuous Page Flush is Enabled

hdbcons -p 5925 “pageaccess touch row”

hdbcons -p 5925 “savepoint execute”

Possible Rowstore Table Corruption When Continuous Page Flush is Enabled

Step 3 - To check the consistency of all rowstore tables please execute the following procedures

CALL CHECK_TABLE_CONSISTENCY(‘CHECK_ROW_TABLES’, NULL, NULL);

Possible Rowstore Table Corruption When Continuous Page Flush is Enabled

CALL CHECK_CATALOG(‘CHECK’, NULL, NULL, NULL);

Possible Rowstore Table Corruption When Continuous Page Flush is Enabled

You can find the details in the following OSS note ;

https://launchpad.support.sap.com/#/notes/2370160

 

 

Leave a Reply


× seven = 63

Blogroll