测试点/测试目的 | 测试方法 | 检验方法 | 注意事项 |
实时备份 测试数据是否零丢失。 |
在生产机上新建一个test表,id字段(字段类型int,长度10)插入不少于10000条数据,插入完成后查看备份设备内的数据记录数。 可以执行以下语句完成: declare @a int set @a = 1 while @a<10001 begin INSERT INTO test VALUES (@a) set @a = @a + 1 end |
如果两者一致就是满足数据不丢失,通过测试;反之则存在数据丢失的可能,测试失败。 | |
自动接管 测试备份机能否顶替生产机继续对外服务。 |
将生产机宕机,在不需要任何人工干预的情况下,各客户端能否在3分钟内正常访问备份机,恢复业务。 | 在规定时间内可以正常访问则通过测试;在规定时间内无法正常访问则测试失败。 | 接管必须是无人干预的状态。 |
任意时间点回退 测试是否能够任意时间点回退。 任意回退所解决的就是可以解决数据库的逻辑错误,找回任意需要找回的数据,以保证数据库的完整和可用。 |
在生产机上执行以下语句: declare @numint declare @datecountint set @datecount=(select count(id) from test) set @num=0 while @num<@datecount begin delete test where id=(select top 1 id from test order by id desc ) set @num=@num+1 End 以上语句是将表内之前输入的10000条数据逐条删除,此时应该产生至少10000个回退点,且每个回退点都是数据库可用并且完整的。由用户随机选取5个连续的点(如2781、2782、2783、2784、2785)进行恢复,恢复后的结果分别对应着连续的5个记录数如:2781、2782、2783、2784、2785条记录(只要回退后的记录数也连续即可,不一定和回退步数对应)。 |
如果可以恢复连续5条记录并与原始数据对应无误,则测试成功;如果缺少任意一条或多条记录,则测试失败。 | 回退时必须是连续的点,不能跳点。 |