AX 2012 - 在非生产上恢复生产
AX 2012 - Restore Production over Non Production
我在生产环境中有一个 AX 2012 数据库,我需要通过 UAT 进行恢复。我以前从未这样做过,并且想知道所涉及的步骤。
我找到了很多博客文章,但它们在步骤上似乎都不同,我想避免发生任何意外。
http://ajit-dynamicsax.blogspot.com/2012/08/ax-2012-database-restore-without.html
https://dynamicsuser.net/ax/f/developers/49023/taking-a-copy-of-live-production-into-test
http://theaxexperience.blogspot.com/2013/06/copying-production-dynamics-ax-2012-or.html
有人管理 AX 2012 环境并且知道如何安全地执行此操作吗?我知道如何执行 backup/restore,但我更想了解恢复过程后所需的应用程序特定步骤。
这个问题对于 Stack Overflow 来说有点宽泛,所以我将把我的回答限制在数据传输后需要考虑的数据范围内。请注意,可能涉及许多其他步骤。尽管有点过时,Moving between Microsoft Dynamics AX 2012 environments 应该是一个很好的起点。但是,如果您以前从未这样做过,我强烈建议您与曾经这样做过的人一起这样做。
尽管它处于测试阶段(并且可能永远处于测试阶段)并且已经有一段时间没有更新了,请查看 Test Data Transfer Tool。它带有几个 Exclude*.txt
文件,可以让您很好地了解 Microsoft 认为标准 AX 2012 数据库中的哪些数据特定于环境(因此将其排除在数据传输之外)。即使您最终没有使用该工具,这些文件也提供了一个很好的起点,让您了解备份还原后应考虑哪些数据。
如果您不使用该工具,SQL 脚本是不错的选择。不应使用您列出的某些链接中提到的数据 exports/imports 功能。它不处理表之间的代理键关系,容器字段也可能存在问题。
根据我的经验,数据恢复也总是非常具体的项目,通常需要几次迭代才能顺利完成。我强烈推荐一份清单 and/or 完整的过程文档。
补充一下 FH-Inway 所说的,如果您执行 SQL 恢复,首先进行 UAT 备份,然后您需要做的最低限度是:
UPDATE SYSSQMSETTINGS
SET GLOBALGUID = '00000000-0000-0000-0000-000000000000'
DELETE
FROM SYSCLIENTSESSIONS
DELETE
FROM SYSSERVERSESSIONS
DELETE
FROM SYSSERVERCONFIG
您还需要决定如何处理 BatchJob
和 Batch
表...这意味着您可能希望将所有内容更新为 hold
状态。
然后是您需要更新的特定于环境的参数(Prod vs UAT),例如报告服务器 URL,电子邮件 (SMTP) 参数,如果您有任何第 3 方 ISV连接到外部服务(产品 URL 与非产品 URL)。
您可能还需要更改数据库权限,因为您的 SQL 服务帐户可能不同。
这是一个非常反复的过程。 值得一提的是,如果您搞砸了,您可以重试并修复参数。您基本上每次都完全替换了 UAT 环境,因此您可能做错的大多数事情都无关紧要。
主要关注的是 AX 外部的服务!您绝对不想做的事情是让 UAT 系统中的用户处理意外连接到第 3 方购物车(例如),他们正在向真实客户的信用卡收费。
或者,如果您有 UAT 现在指向生产的数据仓库或某些内部数据库,即向其中插入记录。
我在生产环境中有一个 AX 2012 数据库,我需要通过 UAT 进行恢复。我以前从未这样做过,并且想知道所涉及的步骤。
我找到了很多博客文章,但它们在步骤上似乎都不同,我想避免发生任何意外。
http://ajit-dynamicsax.blogspot.com/2012/08/ax-2012-database-restore-without.html
https://dynamicsuser.net/ax/f/developers/49023/taking-a-copy-of-live-production-into-test
http://theaxexperience.blogspot.com/2013/06/copying-production-dynamics-ax-2012-or.html
有人管理 AX 2012 环境并且知道如何安全地执行此操作吗?我知道如何执行 backup/restore,但我更想了解恢复过程后所需的应用程序特定步骤。
这个问题对于 Stack Overflow 来说有点宽泛,所以我将把我的回答限制在数据传输后需要考虑的数据范围内。请注意,可能涉及许多其他步骤。尽管有点过时,Moving between Microsoft Dynamics AX 2012 environments 应该是一个很好的起点。但是,如果您以前从未这样做过,我强烈建议您与曾经这样做过的人一起这样做。
尽管它处于测试阶段(并且可能永远处于测试阶段)并且已经有一段时间没有更新了,请查看 Test Data Transfer Tool。它带有几个 Exclude*.txt
文件,可以让您很好地了解 Microsoft 认为标准 AX 2012 数据库中的哪些数据特定于环境(因此将其排除在数据传输之外)。即使您最终没有使用该工具,这些文件也提供了一个很好的起点,让您了解备份还原后应考虑哪些数据。
如果您不使用该工具,SQL 脚本是不错的选择。不应使用您列出的某些链接中提到的数据 exports/imports 功能。它不处理表之间的代理键关系,容器字段也可能存在问题。
根据我的经验,数据恢复也总是非常具体的项目,通常需要几次迭代才能顺利完成。我强烈推荐一份清单 and/or 完整的过程文档。
补充一下 FH-Inway 所说的,如果您执行 SQL 恢复,首先进行 UAT 备份,然后您需要做的最低限度是:
UPDATE SYSSQMSETTINGS
SET GLOBALGUID = '00000000-0000-0000-0000-000000000000'
DELETE
FROM SYSCLIENTSESSIONS
DELETE
FROM SYSSERVERSESSIONS
DELETE
FROM SYSSERVERCONFIG
您还需要决定如何处理 BatchJob
和 Batch
表...这意味着您可能希望将所有内容更新为 hold
状态。
然后是您需要更新的特定于环境的参数(Prod vs UAT),例如报告服务器 URL,电子邮件 (SMTP) 参数,如果您有任何第 3 方 ISV连接到外部服务(产品 URL 与非产品 URL)。
您可能还需要更改数据库权限,因为您的 SQL 服务帐户可能不同。
这是一个非常反复的过程。 值得一提的是,如果您搞砸了,您可以重试并修复参数。您基本上每次都完全替换了 UAT 环境,因此您可能做错的大多数事情都无关紧要。
主要关注的是 AX 外部的服务!您绝对不想做的事情是让 UAT 系统中的用户处理意外连接到第 3 方购物车(例如),他们正在向真实客户的信用卡收费。
或者,如果您有 UAT 现在指向生产的数据仓库或某些内部数据库,即向其中插入记录。