七月 16th, 2009浅谈sqlanywhere数据结构
ASA是一个非常好的数据库,虽然小,但是功能却很强大,非常适合移动应用。但由于管理的不善,或者其他原因,低版本的asa出现的故障概率非常的大。因此如何进行asa的数据恢复,也可以列入一个课题。
前些天我对asa的内部结构进行了一定的分析,基本上搞清楚了内部的数据结构,如页头信息,行结构的内部处理,等等。详细的内部细节就不说了,如果大家感兴趣,可以自己去研究一下。
asa的页面一般可以都为1K页,当然可以变成2K,4K,8K等页面适用于不同的应用类型。asa的页头信息相对于ase的页面结构来说,信息少了很多,目前我所了解的有以下几个:
页号、上一页、下一页、页中包含多少行记录,页所属的对象id,基本上就这些。
行记录上也有一个行偏移量表,记录着每一个行的地址。
powersybedit已经在算法上实现了单一的表处理的逻辑,尚未成形。需要依赖debug模式来进行运行,在今后的研究中,打算出一个单独的asa恢复工具。