大家好,我的需求是在存储层面,通过LUN的快照生成DB2数据库的副本。请问在执行快照生成和分离前,DB2需要执行哪些操作才能保证LUN快照生成的数据库的一致性,可独立启动运行?谢谢。
存储级别的快照,要求完全一致状态,应该只有在停库的时候复制。如果不强求一致性的状态,可以直接拍快照,拿快照恢复后,可以把数据库拉起来,拉起的时候数据库自己会发生crash recovery,崩溃恢复完成后数据库状态也是一致的(也有可能崩溃恢复失败,不过失败的概率不大),但是需要注意,此时数据库已经与原库没关系了,可以正常使用,但是无法reset成原库的hadr的备库使用了
收起通过存储做db2快照,因为各个lun快照时间不一致,导致快照数据库无法正常启动,如果能接受数据库暂时挂起IO(命令好像是 db2 set write suspend for database),可以保障一致性。在某个行做flashcopy时使用过,效果不错,可以了解一下。
收起谢谢您的解答。根据您的建议我理解如果可以接受 crash recovery 后的状态,不强求完全一致,数据库都是可以起来的。那在存储建快照之前,数据库或服务器操作系统层面是否需要执行什么操作呢?如sync命令之类的。Oracle下有一个start backup命令可以把数据文件的SCN号暂时固定住以保证快照起来后能够有一个回滚的点。DB2有类似的操作吗?再次感谢!
收起