![如何对 SQL Server 2005 数据进行单次备份以进行异地恢复?](https://linux22.com/image/795158/%E5%A6%82%E4%BD%95%E5%AF%B9%20SQL%20Server%202005%20%E6%95%B0%E6%8D%AE%E8%BF%9B%E8%A1%8C%E5%8D%95%E6%AC%A1%E5%A4%87%E4%BB%BD%E4%BB%A5%E8%BF%9B%E8%A1%8C%E5%BC%82%E5%9C%B0%E6%81%A2%E5%A4%8D%EF%BC%9F.png)
我的问题:我有一台安装了特定数据库驱动软件的虚拟 Windows XP 计算机,该软件使用 SQL Server 2005。几位客户也在使用类似的计算机。一位客户报告了 SQL Server 错误,我无法重现该错误,因为我只获得了用于测试的数据。
我可以告诉客户哪些步骤来仅备份特定数据库的表(而不是存储过程等)?如何将数据恢复到我的开发机器,覆盖现有的测试数据?
多谢!
答案1
您需要做的是让客户对数据库进行“仅复制”完整备份,然后发送给您。这样,备份就不会干扰他们当前的备份过程/库。执行此操作的命令是:
BACKUP DATABASE [<DB Name>] TO DISK = N'C:\Backup_File.bak' WITH COPY_ONLY
这将备份整个数据库。让客户将备份文件发送给您(我建议也先将它们压缩,因为它们通常具有很高的可压缩性)。
收到备份文件后,您需要进行恢复。没有直接的方法只恢复表。我认为最好的方法是将客户的数据库恢复到新数据库,然后使用 SSIS 将表数据复制回您的测试数据库。
答案2
我会让客户进行完整备份,然后将其还原到您的服务器。如果您真的只想要数据,您可以让客户右键单击数据库,转到任务 - 生成脚本并执行向导。请记住,我不一定相信这会为您提供相同的数据库副本。您也可以使用分离 - 将数据库文件复制到您 - 然后重新连接。在我看来,最好的方法是备份和还原。如果您担心“污染”您的服务器,那么我会使用测试虚拟机和快照/回滚。
答案3
SQL Server 不提供仅备份数据库中数据的方法。您需要让他们创建完整备份并发送给您。获得完整备份后,您可以仅恢复所需的对象(即表)。