无法使用备份文件,因为原先格式化该文件时所用扇区大小为 512,而目前所在设备的扇区大小为 4096

【1】报错信息

备份:

  

还原:

  

【2】备份报错的解决分析

下面这行话参考引用:https://blog.csdn.net/qq_36872323/article/details/106671153

【这个问题之所以会出现,是因为你现在的数据库是用了备份文件还原的数据库,然后再自己数据库二次备份,两次数据库不一样,所以当前数据库不支持在原备份文件上备份】

我的分析:

  上面那篇文章说出了核心问题;但没有说出核心原因;

        (1)原备份(假如叫 A.bak):

    (1.1)这个有可能是因为自己低版本的sql server 或者高版本的 sql server 备份出来的全备文件(不过绝大多数情况是生成 A.bak 的sql server版本 比当前sql server版本低的)。

        如果是高版本sql server备份文件 在低版本sql server 上还原报错会如下图:

        

    (1.2)可能是不同的磁盘、不同的磁盘文件格式(比如 ntfs 和 fat32),但本文图中很明显是 ntfs 512  和 ntfs 4096,扇区块大小不一致导致问题;

        

  (2)无法备份报错分析:

    (2.1)因为这个备份是追加到 A.bak 文件了,它的组织形式 和 当前磁盘(或者sql server数据库版本)的备份组织出来形成文件的格式不同,所以无法追加到这个文件里面去;

       (3)解决:删除 A.bak 文件   或者  备份到一个新的文件夹 或者备份成一个新名称;

【3】还原报错的解决分析

  原理,和【2】中是一样的。

  如果是版本问题,则sql server bak备份文件,只能是低版本、同版本 还原到 同版本、高版本的sql server上去;

       如果是磁盘格式问题,则需要用相同的磁盘文件格式,否则无法还原。(或者另外想其他办法 做逻辑导出、生成脚本 等等通用办法)

原文地址:https://www.cnblogs.com/gered/p/14267368.html