sqlserver关于logshipping、mirror、alwayson这些高可用环境backup log备份日志的策略

sqlserver关于logshipping、mirror、alwayson这些高可用环境backup log备份日志的策略

高可用灾备环境的截断日志分类

logshipping:会截断日志

replication-subscription:不会截断日志

mirror:不会截断日志

always on:不会截断日志

总结

logshipping:

因为会截断日志的,所以数据库有了logshipping,就不再需要做backup log了

logshipping的primary实例没有backup log的作业,除非primary实例上还有没有搭建logshipping的数据库

mirror:

backup log只能在primary节点的数据库进行,备份好后会截断日志,截断的日志信息会自动同步到secondary节点的数据库

mirror的primary实例节点一定有backup log的作业,除非primary实例节点的每个数据有mirror又有logshipping

关于mirror和logshipping的选择

遇到数据库在短时间内产生的日志很大,比如15分钟内产生了500MB,那么mirror不如logshipping,因为mirror需要消耗更多的内存

所以一般大数据库选择logshipping,小数据库选择mirror

always on:

backup log可以在primary、secondary节点的数据库进行,任何一个节点备份完成都会把截断信息同步到其他节点,但是primary、secondary节点无法同时backup log,同时backup log的时候其中一个节点一定会等待其他一个节点备份完成才会开始备份,等待的事件就是HADR_BACKUP_QUEUE。

always on的primary、secondary实例节点有可能都有backup log的作业,因为任何一个节点backup log都会把截断信息同步到其他节点,所以为了减轻primary的压力,一般只在secondary节点创建backup log的作业就可以了