从Informix 9.2版本开始,也可以针对智能大对象做增量备份。在之前的版本,不管做几级的备份,智能大对象的数据都需要全部做备份。
在做增量备份时,哪个智能大对象需要做备份呢?它的判断依据和之前普通的用户数据是相同的。之前的系统备份有一个时间戳,系统当前有一个时间戳,落在这两个时间戳之间的页面将会被备份。
不管对大对象做几级备份,都需要去读large-object header页面,在内存中会生成一个需要做备份的页面列表,这些页面被读出后并比较时间戳,以便决定这些页面是否被送到备份的客户端程序,在智能大对象子系统的设计上,用户操作大对象页面时可以通过page header,也可以不通过page header,因此这种双重的判断是需要的。
智能大对象的元数据的备份和普通dbspace的备份是相同的。智能大对象子系统则采用了另外一种不同的方法来备份智能大对象页面。具体的备份过程如下。
(1)在sbspace上加锁,读取large-object header partition中的信息,生成需要备份的列表,这些列表也称做backup descriptor page。
(2)这些列表被发送到数据库服务器的备份线索,然后扫描和检索这些页面,在这个过程中,可能会用到large buffer writes,备份线索会把这些页面送到客户端程序。
(3)sbspace的页面的备份顺序如图13-3所示,backup descriptor pages是一种特殊的结构,它用来记录所备份用户数据的偏移量和大小。