MSMQ灾难恢复 – 如何从崩溃的机器恢复消息队列?

消息队列如何从崩溃的机器中恢复,以便事务消息可以在新机器上恢复?

停止源和目标计算机上的MSMQ服务:

净停止MSMQ

删除目标机器上的以下文件夹,并从源机器中replace为相应的文件夹内容:

C:\ WINDOWS \ SYSTEM32 \ MSMQ

授予对目标MSMQ服务上的复制文件夹的访问权限:

icacls.exe“C:\ Windows \ System32 \ msmq”/授予“NT SERVICE \ MSMQ”:( F)

configurationMSMQ以忽略检查点文件:

浏览到HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSMQ \ Parameters,然后单击参数。 在编辑菜单上,指向新build,然后单击DWORD(32位)值。 在名称字段中,input“LogDataCreated”,然后确保该值设置为0。

在以下位置打开队列属性。 文件是文本,可以用记事本打开。

C:\ WINDOWS \ SYSTEM32 \ MSMQ \存储\ LQS

将“安全”字段更改为与工作队列中的一个匹配。 下面给出一个例子:

安全= 0100078 …等

重新启动目标计算机上的MSMQ服务:

净启动MSMQ

故障排除:

  • 未能写入目标文件:导航目标子文件夹,以便资源pipe理器将提示允许访问。
  • 由于检查点文件已被删除,有些消息可能会被复制。
  • 如果可以查看消息列表而不是消息内容本身,则必须在队列属性中更改“安全”字段。

参考文献:

在Microsoft消息队列服务器和Microsoft消息队列中的存储目录中解释文件名

http://technet.microsoft.com/en-us/library/cc733512.aspx

http://blog.aggregatedintelligence.com/2012/03/msmqsecurity-descriptor-cannot-be-set.html