Thomas Bratt Asked: 2012-05-25 06:06:52 +0800 CST2012-05-25 06:06:52 +0800 CST 2012-05-25 06:06:52 +0800 CST MSMQ 灾难恢复 - 如何从崩溃的机器中恢复消息队列? 772 如何从崩溃的机器上恢复消息队列,以便在新机器上恢复事务性消息? disaster-recovery msmq 1 个回答 Voted Best Answer Thomas Bratt 2012-05-26T05:27:31+08:002012-05-26T05:27:31+08:00 在源计算机和目标计算机上停止 MSMQ 服务: 净止损MSMQ 删除目标机器上的以下文件夹,并替换为源机器上的相应文件夹内容: C:\Windows\System32\msmq 授予对目标 MSMQ 服务上复制文件夹的访问权限: icacls.exe "C:\Windows\System32\msmq" /grant "NT SERVICE\MSMQ":(F) 配置 MSMQ 以忽略检查点文件: 浏览至 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters,然后单击“参数”。在“编辑”菜单上,指向“新建”,然后单击“DWORD(32 位)值”。在名称字段中,输入“LogDataCreated”,然后确保该值设置为 0。 在以下位置打开队列属性。文件是文本,可以用记事本打开。 C:\Windows\System32\msmq\storage\lqs 更改“安全”字段以匹配工作队列中的一个。下面给出一个例子: 安全=0100078...等 在目标机器上重新启动 MSMQ 服务: 净启动MSMQ 故障排除: 写入目标文件失败:导航目标子文件夹,以便资源管理器提示允许访问。 由于检查点文件已被删除,因此某些消息可能会重复。 如果可以查看消息列表但不能查看消息内容本身,则必须更改队列属性中的“安全”字段。 参考: 解释 Microsoft 消息队列服务器和 Microsoft 消息队列中存储目录中的文件名 http://technet.microsoft.com/en-us/library/cc733512.aspx http://blog.aggregatedintelligence.com/2012/03/msmqsecurity-descriptor-cannot-be-set.html
在源计算机和目标计算机上停止 MSMQ 服务:
删除目标机器上的以下文件夹,并替换为源机器上的相应文件夹内容:
授予对目标 MSMQ 服务上复制文件夹的访问权限:
配置 MSMQ 以忽略检查点文件:
在以下位置打开队列属性。文件是文本,可以用记事本打开。
更改“安全”字段以匹配工作队列中的一个。下面给出一个例子:
在目标机器上重新启动 MSMQ 服务:
故障排除:
参考:
解释 Microsoft 消息队列服务器和 Microsoft 消息队列中存储目录中的文件名
http://technet.microsoft.com/en-us/library/cc733512.aspx
http://blog.aggregatedintelligence.com/2012/03/msmqsecurity-descriptor-cannot-be-set.html