Sne*_*hal 6 sql-server backup sql-server-2008
如上所述,我面临问题.是否可以仅从文件流数据库中获取数据备份并恢复该备份?
场景:我们将产品映像存储到数据库和数据库大小现在超过70 GB.因此,每天备份很难同样耗费时间.我们给了BCP备份工具,但我们不会继续使用它,因为有时我们注意到在恢复BCP备份时表中缺少一些行.客户或我们也不打扰图像数据,如果发生了某些事情,那么如果我们只是使用新的文件流启用恢复数据备份,我们将再次上传图像文件.
研发我做完了:
1)方法1:
我已经使用以下查询进行备份,我认为它只会给我数据.
BACKUP DATABASE [DBName]
FILEGROUP = N'PRIMARY' TO DISK = N'E:\SendReceiveData\Test.bak'
WITH NOFORMAT, NOINIT,
NAME = N'DBName-Full Filegroup Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
Run Code Online (Sandbox Code Playgroud)
现在,我希望使用以下Query在其他位置恢复相同的备份.(使用Management Studio我无法恢复数据库)
RESTORE DATABASE [RestoreDBName]
FILE = N'DBName'
FROM DISK = N'E:\SendReceiveData\Test.bak'
WITH FILE = 1,
MOVE N'DBName' TO N'D:\MyDatabases\RestoreDBName.mdf',
MOVE N'DBName_log' TO N'D:\MyDatabases\RestoreDBName_0.ldf',
NOUNLOAD, REPLACE, STATS = 10
Run Code Online (Sandbox Code Playgroud)
但是当我检查文件组FileStream组已经创建时,即使我没有提到Restore Query.此外,如果我想删除文件流表,它不允许删除并给我错误.如果我直接尝试删除FilestreamGroup然后也给我错误.我想如果能够删除文件流表和文件组,那么我可以创建新的文件流并将使用新的文件流,但我无法做到.
2)方法2:
我如上所示备份数据库.但是在恢复时我首先使用Filestream创建空白数据库并尝试恢复数据库,但这也给了我错误.
3)方法3:
我认为Filestream表whilch属于主文件组,这就是它包含文件流组的原因.所以我创建了一个临时数据库,其中我使用Primary FileGroup创建了一个表,我使用ImageData FileGroup创建了Image表.然后仅备份主文件组,并假设如果我还原数据库将不会出现Image表.但仍然Image表显示我在还原数据库中.如果我看到文件组,那么所有4个文件组(Primary,ImageData,Log和Filestream)都可用.
那么请你指导我哪里错了或者不可能?我正在使用SQL Server 2008.
显然这是不可能的,如果在备份期间跳过文件流相关的逻辑文件,恢复操作将使数据库处于恢复挂起模式。
原因是文件流文件默认由数据分区中的表支持。因此,如果我们将表恢复为备份的一部分而不是实际文件,那么您最终将得到一个引用文件但没有文件的表。我尝试了很多不同的方法,但我只目睹数据和元数据的完整性将会丢失。唯一的方法是拥有两个独立的数据库,一个用于数据,另一个用于文件流。
| 归档时间: |
|
| 查看次数: |
4711 次 |
| 最近记录: |