【问题标题】:Getting the production database to work with locally让生产数据库在本地使用
【发布时间】:2009-11-09 08:30:50
【问题描述】:

我已经接近说“让我们上线”的阶段了来自基于修改的标志/触发器等的遗留 OLTP 数据库。以及组成系统的其他少数服务,每个服务都有自己的专用数据库等。通过消息 (NServiceBus) 相互通信。

当我开始时,我试图保持所有内容的本地复制,但事实证明它越来越困难,并且考虑到可能是过去几周的主要摩擦点,我喜欢随着遗留数据库的增长定期保持最新状态并每天引发数百个事件。具有高延迟和中等带宽(在我和客户的站点之间,我在东南亚,无论如何带宽通常都是垃圾)也是 RDP、SQL 工具、远程连接字符串等的问题。跟踪集成错误和理解场景他们在反馈/集成/质量检查期间出现也很困难,因为我的数据没有反映客户数据库的当前状态(客户的员工一直在工作并最终改进数据),这意味着再次休息、喝咖啡和长时间同步.最好在本地完成所有操作,然后在最后部署,但我必须逐步交付部件(以进行检查),并且某些部件甚至正在使用中(尽管不是关键),因此需要在使用中修复错误快速,并且由于它是一家小公司,增量反馈,它有助于消除沿途的一些更模糊的要求(诅咒我)。

我认为每天在环境之间进行两次同步会很好(他们的数据库要我的),我在一定程度上可以控制除旧版 SQL 服务器数据库之外的所有内容。

SO 用户的最佳选择是什么?

我正在考虑在我的开发盒上设置一个 Windows 2003 轻型 VM。并且在此安装客户端站点的相同设置(但显然不分布在多个服务器上)。然后为了同步数据库,我正在考虑 SQL Server 复制?或批处理脚本?或者有没有更好的工具 - 快速和良好的压缩?我不希望我的更改回到生产环境(我有一个单独的 CI 和部署程序),我只想(我想我想要.. 告诉我是否有更好的主意)我的数据库每晚或每天两次刷新(也许在我吃午饭的时候带宽允许)。

大家是怎么处理这个问题的?

【问题讨论】:

    标签: sql-server deployment production-environment


    【解决方案1】:

    我会推荐两种方法来做到这一点:

    • 快照复制
    • 备份事务日志并手动(或批量)应用它

    快照复制可能很难开始工作,但即使在离线情况下(例如将快照物理携带到另一个位置)也是可能的。

    事务日志方法可用作标准备份过程的一部分。即:每周两次完整备份,更定期地备份事务日志。

    请记住,最佳做法是在将数据用于测试环境之前对其进行清理。至少这应该是更改所有个人数据,尤其是电子邮件地址、密码和任何其他可能导致某些自动化过程与您数据库中的用户联系的方法。

    【讨论】:

    • 快照复制会自动覆盖我所做的任何本地更改吗?假设我有一天测试编辑客户,它会在晚上拍摄快照,早上它是全新的,理想情况下,即我的更改丢失(当然不会发送回生产环境)。快照复制自动处理架构更改?
    • 架构更改可能是复制的真正问题。您最好的选择可能是拥有主数据库的副本,然后创建此副本的快照以进行测试。然后,您可以将“实时”事务日志应用到副本、重新创建副本的快照并对快照进行更改。您可以查看的其他选项是在实时环境中制作数据库副本,将其安装在实时数据库服务器上,删除行和匿名数据以使数据库更小,然后使用它。
    猜你喜欢
    • 2021-02-02
    • 1970-01-01
    • 1970-01-01
    • 2014-05-30
    • 1970-01-01
    • 2013-04-04
    • 2021-05-07
    • 2012-04-02
    • 2016-01-05
    相关资源
    最近更新 更多