如何在系统表上设置触发器以收集历史数据?

时间:2013-02-15 07:39:04

标签: sql-server tsql sql-server-2000 log-shipping triggers

我能够在用户定义表上实现触发器,但不能在系统表(log_shipping_primarieslog_shipping_secondaries)上实现触发器,它存储有关何时生成备份.bak文件以及何时生成的信息事务日志发送文件.trn文件已在辅助数据库中复制和还原

目标:实施RPO(恢复点目标)>在辅助数据库(DR站点)15分钟

我有一项任务是监控log_shipping activities并向更高层管理人员提供历史数据。现在问题是这两个表是每次添加新条目时它都会更新旧条目(对于给定的数据库)。

解决方案(在SQL Server 2000中不起作用):每当插入新条目时,通过触发器在用户定义表中插入类似数据,以保存历史数据。

  1. 如何在系统表上实现触发器(我需要什么权限)或者是否可以(请预先确认)?
  2. 替代触发器,如存储过程或其他东西(我没有存储过程经验)

3 个答案:

答案 0 :(得分:1)

如果您使用SQL作业进行备份和事务日志传送,那么您可以在此之前添加一个步骤以在历史记录表中导入该数据。

答案 1 :(得分:0)

无法在系统表上创建触发器。

我会考虑将工作添加到SQL Server Agent,以适当的频率运行(例如,每30秒)

答案 2 :(得分:0)

为什么不在每次备份之前创建一个从表中保存数据的作业?至于如何做到这一点,这是你的选择。编写存储过程,将插入语句直接写入SQL代理作业,坐在计算机旁,每隔15分钟点击F5 ...... :-)有很多选项。