调用db_load -r lsn的时候回去调用 __db_lsn_reset(mpf, ip) BDB的做法是从第0个page开始重置每个page的LSN for (pgno = 0; (ret = __memp_fget(mpf, &pgno, ip, NULL, DB_MPOOL_DIRTY, &pagep)) == 0; ++pgno) { LSN_NOT_LOGGED(pagep->lsn); if ((ret = __memp_fput(mpf, ip, pagep, DB_PRIORITY_UNCHANGED)) != 0) break; } /* If logging is turned off, smash the lsn. */ #define LSN_NOT_LOGGED(LSN) do { / (LSN).file = 0; / (LSN).offset = 1; / } while (0)