我们在Production中有一个大型的> 40Gb文件流启用数据库。我想自动备份这个数据库并将其恢复到暂存状态,以便测试部署。我们的环境的性质使得文件流数据> 90%的数据,我在分期时不需要它。
有没有办法可以在没有文件流数据的情况下备份数据库,因为这会大大减少我的暂存磁盘和网络要求,同时仍然可以让我测试(某种程度上)代表性的prod样本?
答案 0 :(得分:1)
我假设你有一个相当新版本的SQL Server。由于这是生产,我假设你处于完全恢复模式。
您不能只从备份中排除单个表。备份和还原不起作用。我能想到的唯一可能性就是只备份不包含文件流的文件组。我不是100%肯定你是否能够恢复它,因为我从来没有尝试过。花些时间研究部分备份并恢复文件组并尝试一下。
答案 1 :(得分:1)
您可以使用Generate Scripts
和界面并执行以下操作之一:
filestream
表)并重新创建数据库第一个是懒惰的,可能不适用于大数据库。第二个肯定会起作用,但您需要自己同步数据。
在这两种情况下,请打开此界面:
然后选择所有对象和所有没有大对象的表:
通过此选项,您可以控制数据提取(跳过或包含):
我想最好在没有数据的情况下编写所有对象的脚本。然后创建一个model
数据库。您甚至可以在model
数据库中添加一些示例数据。当您更改生产数据库(创建新对象,删除对象等)时,也应在model
数据库上应用这些更改。拥有这样的model
数据库意味着您拥有具有所有支持功能的生产数据库的副本,并且您可以在所需的每个测试SQL实例上恢复此model
数据库。