无法使用备份文件,因为原先格式化该文件时所用扇区大小为 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://hqyman.cn/post/8801.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~