Wednesday, 15 January 2014

postgresql data recovery after multiply rows update -



postgresql data recovery after multiply rows update -

i trying retrieve info lost on wrong update query, using xlog , pg_xlogdump tool.

the query following: update table set column1 =21 column2 > column3 ( 1 status missed, more rows updated )

example of 1 update record shown below. starts 1 update line , 5 insert lines. wonder there way find number replaced 21?

1) first line ( update) rel 1663/5880305/5880686 shows table looking (5880305 oid of db , 5880686 oid of table) have old backup , row tuple 47275/8 there same row updated, new tuple in updated version ( new tid : 293804/16 )

2) 4th line shows column1 update (11996103 oid of column ) , don't know how find tuple 302/164 , how retrieve lost number

thanks in advance.

rmgr: heap len (rec/tot): 163/ 8391, tx: 692554090, lsn: 115/73f1d288, prev 115/73f1d240, bkp: 1000, desc: update: rel 1663/5880305/5880686; tid 47275/8 xmax 692554090 ; new tid 293804/16 xmax 0 backup bkp #0; rel 1663/5880305/5880686; fork: main; block: 47275; hole: offset: 228, length: 20 rmgr: btree len (rec/tot): 34/ 66, tx: 692554090, lsn: 115/73f1f368, prev 115/73f1d288, bkp: 0000, desc: insert: rel 1663/5880305/11995979; tid 6587/293 rmgr: btree len (rec/tot): 34/ 66, tx: 692554090, lsn: 115/73f1f3b0, prev 115/73f1f368, bkp: 0000, desc: insert: rel 1663/5880305/11996093; tid 6587/292 rmgr: btree len (rec/tot): 34/ 66, tx: 692554090, lsn: 115/73f1f3f8, prev 115/73f1f3b0, bkp: 0000, desc: insert: rel 1663/5880305/11996103; tid 302/164 rmgr: btree len (rec/tot): 34/ 66, tx: 692554090, lsn: 115/73f1f440, prev 115/73f1f3f8, bkp: 0000, desc: insert: rel 1663/5880305/11996135; tid 43502/2 rmgr: btree len (rec/tot): 34/ 66, tx: 692554090, lsn: 115/73f1f488, prev 115/73f1f440, bkp: 0000, desc: insert: rel 1663/5880305/11996136; tid 1/2

if archived log files go point in time recovery otherwise complex

postgresql data-recovery

No comments:

Post a Comment