2

我正在开发一个项目,其中我使用 Visual c# 作为前端,使用 SQL Server 2008 R2 Express 作为后端。

现在我知道 SQL Server express 数据库的大小限制为 10 GB,所以我已经编写了达到选择限制时数据库备份的代码,一旦备份成功我就清空数据库。

我想知道恢复备份文件的最佳方法是什么,以便我当前的应用程序后端(我之前已经清空)不应该受到干扰。

如果我在当前数据库中恢复相同的内容可以吗?在这种情况下,我有问题要问它是否会影响我的应用程序工作,因为我的应用程序是实时的,并且每 15 分钟之后。间隔在数据库中存储了一些值。

我是否需要编写一些其他实用程序来查看旧数据..?

每天大约有 50 MB 的数据被插入到数据库中,因此大约需要 8 个月才能达到挑选大小(根据我的粗略计算)。并且就应用程序的性质而言,用户不会经常使用存档数据。请考虑这一点并建议我的方法。

提前致谢..!!

4

2 回答 2

0

如果您在全新的数据库服务器中输入数据,您的旧查询将无法在新的服务器上运行。由于 SQL Express 限制不是每个数据库,而是每个数据库服务器。您可以创建一个新的 SQL Express 服务器,链接您的服务器并使用链接服务器创建查询(如何创建链接服务器 @ msdn

您将需要调整您的查询。

如果您现在像这样查询数据:

SELECT em.Name, em.Telefone FROM employees AS em

您还需要参考数据库。

SELECT [server1\db1].dbo.em.Name, [server1\db1].dbo.em.Telefone FROM [server1\db1].dbo.employees AS em

对于您当前的数据库,以及

SELECT [server2\backup].dbo.em.Name, [server2\backup].dbo.em.Telefone FROM [server2\backup].dbo.em.Name

有可能这样,但我不建议这样做。如果您的数据已经超过 10GB,那么您可能有大型表。链接服务器上的每个表都完全复制到您的服务器,可能会导致严重的网络流量并需要相当长的时间才能执行。

我会考虑获得 SQL 标准版。

于 2013-07-29T08:02:49.810 回答
0

希望我的问题正确,但请考虑以下工作建议:
一个存储实时数据的数据库(“当前数据库”)。

当涉及到大小时,它被转储(或复制 mdf+ldf)到存档。
并与时间戳(FROM-TO)一起存储。

当需要数据时,相关的 mdf 将作为新的“离线”数据库附加。
(您可以使用连接字符串将 MDF 文件附加到 SQL Server。)
并使用该连接而不是实时连接。

该应用程序可以在在线数据库上顺利运行。
在读取、加载等...
是从临时附加和分离的数据库文件中完成的。

查看:连接字符串以连接到 .MDF ,了解如何将 MDF 附加到 SQL Server 实例。

于 2013-07-29T08:06:07.817 回答