1

我正在尝试备份 SQL 中的特定表,但是在发布包含数据的脚本时,脚本太大了。它现在已经运行了一个多小时,脚本大小已经超过 1 TB。即使执行这么大的脚本也是不可能的。

我已经在 SQL 中为这些表重新创建了备份,但它太大了,而且我的 DB 目录上没有足够的空间。

有人对如何备份这些表有任何建议吗?

Table 1 : 56,370,203 records
Table 2 : 35,528,469 records
Table 3 :  7,965,568 records

先感谢您。

4

2 回答 2

0

为什么不只是创建另一个数据库,将您感兴趣的数据复制到该数据库中(我想这取决于行大小,这有多可行)

将数据复制到另一个数据库后,您可以自行对其进行备份。至少那时您不需要对整个数据库进行完整备份!

完成后,您可以清空副本数据库并释放一些服务器空间。

或者,给自己一个非常大的驱动器......

于 2013-10-14T16:51:42.790 回答
0

所以,如果你只想保留某些表的状态,然后再恢复它们,我会这样做:

1)制作另一个数据库[TableBackup]。

2) 要备份表,请对每个表执行此操作:

USE [TableBackup]
GO
IF OBJECT_ID('<<yourTable>>') IS NOT NULL  DROP <<yourTable>>;
SELECT * INTO <<yourTable>> FROM <<yourDB>>.dbo.<<yourTable>>;
GO

3) 要恢复表,请对每个表执行以下操作:

USE [<<yourDB>>]
GO
TRUNCATE <<yourTable>>;
INSERT INTO <<yourTable>> FROM [TableBackup].dbo.<<yourTable>>;
GO

未经测试。您可能需要针对表上的外键和/或身份列进行调整。

于 2013-10-14T16:54:55.227 回答