2013-02-27 85 views
0

我一直在使用SQL Server 2008作为Windows桌面应用程序的数据库。我正在重新设计产品,我可能会继续使用SQL Server 2008或MySQL。SQL Server 2008归档

所以我想到一个通用的归档解决方案。在SQL Server 2008中是否有类似于SqlDump的东西?目前我没有使用ORM,我可能打算在未来几天使用实体框架。

基本上我想删除旧的条目,每当已被生成的报告,我必须恢复它以及..

我也有一个问题在这里:如果什么数据库模式的变化?我们如何恢复旧的数据库?

如果没有通用的解决方案我将不胜感激具体到SQL Server 2008

+0

我会考虑一个设计,如果可能,不需要使用“旧数据”。除非有大量的数据使用情况,否则保留所有相关记录可能是谨慎的。就这个问题而言,一个特殊的用例并没有真正被列出来。对于一个“[standalone]桌面应用程序”,我会建议针对MySQL。 SQL Server Express,SQLite和Firebird在“无服务器”/嵌入式配置中运行良好。 – 2013-02-27 05:42:02

+0

好吧,让我给你一个场景。让我们专门针对SQL 2008。我想要将用户点击的数据存档在用户界面中,用户也可以选择日期,直到它被存档。存档后行必须被删除(只是为了提高性能)。我应该能够将存档数据库传输到另一台PC并在那里恢复。第二种情况是模式更改。如果用户尝试使用旧数据库恢复旧的schema.how 2处理这个?它也是一个客户端服务器体系结构。有多个组件(客户端)连接到服务器和数据库。 – user1687824 2013-02-27 05:48:24

+0

对于具有合理行数的正确设计的模式,删除行将*不会“提高性能”。另外,现在磁盘空间相对便宜......所以不要引入问题,除非它是可测试/可证明的情况。 – 2013-02-27 06:08:13

回答

2

归档的话题解决方案,在一般情况下,是这个论坛太宽泛。但我要把我的两分钱。我发现最好是将记录归档(即将记录从一个表格移动到另一个表格),而且通常在不同的数据库中。

这将处理架构问题,因为您可以修改归档表的架构并使其保持同步。

它还允许您编写实际包含存档数据作为选项的专用报告。

它还允许您以不同于生产数据库的方式为存档数据库设置服务器体系结构。他们甚至不必在同一台服务器上。他们甚至不需要联系。建立一个.NET应用程序,根据您的需要定期将行从一个数据库移动到另一个数据库将非常简单。

+0

感谢您的回复。如果我想将归档的数据库从一台PC移动到另一台? – user1687824 2013-02-27 05:39:50

+0

@ user1687824:好吧,如果你利用我提到的断开连接的方法,它不应该是一个问题。您只需要以某种方式连接到网络上的两个SQL Server。 – 2013-02-27 11:03:45