【发布时间】:2013-03-03 22:03:40
【问题描述】:
我目前有一个设置,其中有一个本地网站、一个临时网站和一个生产网站。我使用暂存数据库在我的本地开发,然后一旦进行更改,它就会移动到暂存,配置明智,应该与生产相匹配。如果它可以在 staging 上运行,我几乎知道它会在现场运行,然后我将它转移到生产环境中。
截至目前,由于我们的用户在生产中所做的更改,暂存数据库已经过时。
我希望实现的目标是通过某种方式使登台数据库每晚自动更新。这将允许 staging 是最新的,但允许我们对 staging 进行可能需要测试新更改的更改,而不会立即被生产更新覆盖。
Microsoft SQL Server 如果有帮助的话。相信现在是 2008 年。
总而言之,我如何能够每天晚上自动将生产数据库镜像到临时数据库?
【问题讨论】:
-
你的意思是每晚更新你的数据库结构吗?或者只是更新它存储的数据?这可能会产生任何问题,您最好手动运行作业。
-
我猜只是数据。每当我们添加一个新表时,它首先被添加到 staging 然后移动到生产中,因此从理论上讲,结构应该始终匹配。
-
理论上——你可能会遇到一些问题。例如,您使用新结构更新了您的暂存(例如一个不允许 NULL 且没有默认值的新列)。如果您停下来第二天再回来,更新将失败,因为它无法将数据复制到该结构中。您最好创建整个数据库的副本,可以通过作业设置。
-
可以每天晚上运行该副本还是实时运行?如果远程完成复制是否会花费大量时间,即生产数据库存储在与我们本地声明数据库不同的状态?镜像是否允许我们查询暂存数据库?我们可以引入第三步,因此本地 -> 暂存 -> 预生产 -> 生产并进行预生产镜像生产,偶尔使用预生产镜像暂存,这样我们仍然可以拥有操场。
-
如果您的数据库(生产和暂存)存储在同一台服务器上,在大多数情况下速度很快。
标签: sql sql-server database mirroring