我在生产环境中有一个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环境并知道如何安全地进行此操作?我知道如何进行备份/还原,但是更多的是关于还原过程之后需要执行的应用程序特定步骤。
答案 0 :(得分:2)
这个问题对于Stack Overflow来说有点宽泛,所以我将答案限于数据传输后需要考虑哪些数据的范围。请注意,可能涉及许多其他步骤。尽管有些过时,Moving between Microsoft Dynamics AX 2012 environments应该是一个很好的起点。但是,如果您以前从未这样做过,我强烈建议您与有经验的人一起这样做。
尽管它已经(并且可能会永远存在)处于beta中,并且已经有相当长的一段时间没有更新了,但是请看看Test Data Transfer Tool。它带有几个Exclude*.txt
文件,可以使您很好地了解Microsoft认为标准AX 2012数据库中的哪些数据是特定于环境的(因此将其从数据传输中排除)。即使您最终不使用该工具,这些文件也提供了一个很好的起点,可以在备份恢复后考虑数据。
如果您不使用该工具,则可以使用SQL脚本。不应使用您列出的某些链接中提到的数据导出/导入功能。它不能处理表之间的代理键关系,并且容器字段也可能存在问题。
根据我的经验,数据还原也总是非常特定于项目的,并且通常需要几次迭代才能完成,而不会出现问题。我强烈建议您查看该过程的清单和/或详尽的文档。
答案 1 :(得分:2)
要添加到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
状态。
然后,如果您有任何第三方ISV连接到外部服务(产品URL),则需要更新特定于环境的参数(产品vs UAT),例如报告服务器URL,电子邮件(SMTP)参数。与非产品网址)。
您可能还需要更改数据库权限,因为您的SQL服务帐户可能不同。
这是一个非常反复的过程。 要知道的是,如果将其拧紧,则只需重试并修复参数即可。每次您基本上都在完全替换UAT环境,因此几乎所有您可能做错的事都不在乎。
主要关注点是AX外部的服务!最后要做的就是让您的UAT系统中的用户处理意外连接到第三方购物车的虚假订单(例如),他们正在向真实的客户信用卡收费。
或者,如果您有UAT现在指向生产的数据仓库或某些内部数据库,则将记录插入其中。