我正在尝试备份 SQL 中的特定表,但是在发布包含数据的脚本时,脚本太大了。它现在已经运行了一个多小时,脚本大小已经超过 1 TB。即使执行这么大的脚本也是不可能的。
我已经在 SQL 中为这些表重新创建了备份,但它太大了,而且我的 DB 目录上没有足够的空间。
有人对如何备份这些表有任何建议吗?
Table 1 : 56,370,203 records
Table 2 : 35,528,469 records
Table 3 : 7,965,568 records
先感谢您。
我正在尝试备份 SQL 中的特定表,但是在发布包含数据的脚本时,脚本太大了。它现在已经运行了一个多小时,脚本大小已经超过 1 TB。即使执行这么大的脚本也是不可能的。
我已经在 SQL 中为这些表重新创建了备份,但它太大了,而且我的 DB 目录上没有足够的空间。
有人对如何备份这些表有任何建议吗?
Table 1 : 56,370,203 records
Table 2 : 35,528,469 records
Table 3 : 7,965,568 records
先感谢您。
为什么不只是创建另一个数据库,将您感兴趣的数据复制到该数据库中(我想这取决于行大小,这有多可行)
将数据复制到另一个数据库后,您可以自行对其进行备份。至少那时您不需要对整个数据库进行完整备份!
完成后,您可以清空副本数据库并释放一些服务器空间。
或者,给自己一个非常大的驱动器......
所以,如果你只想保留某些表的状态,然后再恢复它们,我会这样做:
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
未经测试。您可能需要针对表上的外键和/或身份列进行调整。