我按照这个问题的顺序问这个问题我可以使用 T-SQL 通过 TCP 发送一个字符串吗?
Remus Rusanu 揭示了它似乎是我问题的最佳解决方案,但是......我太不成熟了,无法理解和理解他所说的一切。
到目前为止,我认为我需要为 DATABASE_MIRRORING_STATE_CHANGE 创建通知事件,我说得对吗?
我如何创建此事件通知,以使其触发时在表中插入一行,该行存储来自通知的时间戳和 ID。
到目前为止,我正在为每个 ID 设置一个警报,每个警报都运行这样的作业(此示例适用于 ID = 1):
DECLARE @state AS varchar(50);
SELECT @state = mirroring_state_desc FROM SYS.database_mirroring WHERE mirroring_guid IS NOT NULL;
IF (@state IS null) SET @state = ' ';
INSERT INTO MirroringAlerts (DateTime, alertID, alertDesc, Sync, alertCreator) values (SYSDATETIME(), 1, 'Principal synchronized with W ', @state, @@SERVERNAME)
Run Code Online (Sandbox Code Playgroud)
基本上我在这个数据库中创建一个内部日志:
CREATE TABLE [dbo].[MirroringAlerts](
[DateTime] [datetime] NOT NULL,
[alertID] [smallint] NOT NULL,
[alertDesc] [nchar](50) NOT NULL,
[Sync] [nchar](12) …
Run Code Online (Sandbox Code Playgroud)