首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于新老备份的系统表替换有关问题

2013-06-19 
关于新老备份的系统表替换问题?本帖最后由 larruping 于 2013-04-26 20:52:53 编辑数据库由于机器的原因,s

关于新老备份的系统表替换问题?
本帖最后由 larruping 于 2013-04-26 20:52:53 编辑 数据库由于机器的原因,sysindexes表损坏了,所以某些表无法读取,目前手头上有老的数据备份,能不能用老的sysindexes替换出错的sysindexes表?
或者有其他修复sysindexes表的方法?

数据是没有问题的,用一些修复软件可以读出数据,但是由于这些软件太贵了,所以只能另外想办法! 备份 修复
[解决办法]
按我目前的只是,你这个修复不了,因为从用户角度只是一个视图,不能修改,也不建议修改它的原始表。即使你有备份,也不能去覆盖这个表,因为没有表级还原,需要同步数据,而不能修改这个表,同步也就不可能成功。
[解决办法]

引用:
嗯,我也找了很多方法试,也没办法修复
但是那些MDF数据恢复软件是可以读取用户表数据的,请问您知道这大概是什么原理吗?
MDF的记录比较简单,直接存放在数据页,通过DBCC PAGE命令可以知道数据页的内容,但是系统视图,看清楚是视图而不是表,只是一个展示信息,底层数据表你还不能看到,其实存放在resource数据库里面的,所以你也看不到它里面的信息,同时也不允许你修改的。
[解决办法]
系统目录不好修复的吧,sysindexes应该是在primary的文件组,不知道你的其他表是不是也在这个文件组,如果是的话,那么:
1. 用老的备份还原一个新的数据库,这里的数据应该不是最新的;
2. 试着把能读取数据的表数据到过来,这样保证这部分表的数据没有丢;
3. 剩余的那几个不可以读取的表,就用备份回复出来的数据吧(不过不是最新数据了)
[解决办法]
1:新建一个空的数据库
2:导入你的备份
3:将新数据库的数据清空
4:将老数据库的数据导入新数据库中

这个思路可以尝试一下

热点排行