基于策略的管理(Policy Based Management),使DBA们可以制定管理策略,并将这些策略应用到服务器、数据库以及数据环境中的其他对象上去。经过精心设计的管理策略可以帮助DBA们对数据环境进行前瞻性的管理。
基于策略的管理的优势体现在:
- 按需管理:基于策略的管理提供了系统配置的逻辑视图,因此DBA们可以预先定义各自所需要的数据服务配置,而不用等到这些需要实际发生的时候再去配置。
- 智能监控:基于策略的管理可以持续监控系统的配置变化,并阻止那些违反了策略的配置变化操作。
- 虚拟管理:通过基于策略的管理,DBA们可以对多台服务器进行规模化管理,在企业内部统一实施某些强制性配置会变得更加方便。
基于策略的管理的框架有三部分组成:
策略管理:管理员制定各种策略。
显式管理:管理员通过对指定的目标或目标群应用策略来检查目标对策略的依从性,或者更严格的是禁止这些目标上违反策略的行为发生。
执行模式:SQL Server 2008的基于策略的管理支持4种执行模式,这4种模式决定了策略对目标的影响程度。这四种模式分别是:
- 按需(On Demand):这种模式下的策略可以有管理员自由的选择是否应用,例如管理员可以手动调用这些策略来检查目标的依从性,或者通过DDL Trigger来订阅这些策略。
- 更新时阻止(On Change - Prevent):这是最严格的一种,SQL Server 2008通过DDL Trigger的方式在订阅该策略的目标上发生操作时实施检查操作对策略的符合性,如果违反策略则回滚该操作,以达到强制策略的效果。
- 更新时记录(On Change - Log Only):SQL Server 2008通过Event Notification的机制在在订阅该策略的目标上发生操作时实施检查操作对策略的符合性,如果违反策略则发送消息,就将该违反操作通过Service Broker的队列发送进行记录。
- 按计划(On Schedule):通过SQL Agent的作业来调用策略对目标对象进行检查。
虽然PBM有以上四种执行模式,但是归总起来其实是两大种,一种是基于SQL Agent作业方式的On Schedule模式,而另外一种是基于Event机制的On Change模式。因此并非所有Facet都支持On Change模式,要支持On Change模式,那么Facet的状态改变必须可以通过事件捕获或者事务性的DDL操作,当然On Schedule和On Demand就没有这些机制,因为这两种模式无需参与到Facet状态更新的事务中去。
本文来自云栖社区合作伙伴“doNET跨平台”,了解相关信息可以关注“opendotnet”微信公众号