繁体   English   中英

SQL Server 2008自动备份

[英]SQL Server 2008 Auto Backup

我们希望每晚从生产服务器数据库更新测试服务器数据库,以确保我们使用最新数据进行开发。 但是,我们希望确保开发环境中当前正在处理的所有fn,sp等都不会被备份过程覆盖。 我们正在考虑做的是拥有一个预备份程序,该程序可以保存我们的开发人员选择的对象,以及一个后备份程序,可以在备份过程完成后将其重新添加。

我想知道其他开发人员在这种情况下正在做什么。 是否有一个为我们执行此操作的现有工具,该工具可以每天自动运行,并允许我们设置不覆盖的对象(而无需系统管理员的注意每天运行它)。

我们数据库中的所有对象都保存在代码中-表,视图,触发器,存储过程以及所有内容-如果我们希望在数据库中找到它,则它应该以我们可以运行的代码包含在DDL中。 实际的模式更改已版本化-因此数据库中存在一个表,该表称为模式版本“ n”,如果这不是当前版本(根据更新代码),则我们进行必要的更改。

我们努力分离出触发器和视图-尽管我们应该这样做,但不要对SP和FN做很多事情-使用drop并重新创建对当前模式版本有效的代码。 因此,删除和重新创建不是表的任何内容应该是“安全的”,尽管如果对象之间存在依赖关系,则放置和创建都将存在排序问题。 通常,这样做的好处是我们可以放心地将模式从新引入到最新,并可以确信该模式的任何实例都是一致的。

扩展到您的情况,如果您能够运行模式更新代码,包括根据当前定义重新创建所有数据库对象的代码,则您的问题将基本消失...备份,还原,运行模式维护逻辑。 这将带来进一步的好处,即您可以在开发服务器中引入架构(表)更改,并且仍然保持相同的更新逻辑。

我知道这不是一个完全通用的解决方案。 值得注意的是,它与每个开发人员的数据库配合使用的效果可能更好(我是老式的程序员,因此,我将所有问题都视为具有基于代码的解决方案(-:),但作为一种通用方法,我认为它具有相当大的优点,因为它可以您可以采用一致的机制来解决许多问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM