今天很不巧,早上上班一开机刚刚启动到快输入密码时就停了电。下午来电后开机一看,居然SQL Sever启动不了
。查看数据库日志出现以下错误:
错误: 9003,严重度: 20,状态: 1
The LSN (6:222:1) passed to log scan in database 'model' is invalid.
错误: 9003,严重度: 20,状态: 1
LSN (6:222:1) 无效。该 LSN 是传递给数据库 'model' 中的日志扫描操作的。
查看联机帮助,无果。重装数据库,反正是自己机器上的数据都无关紧要。还好服务器一切正常,需要数据从服务器上导入即可。不过为了省去重装的麻烦还是先上网搜索了一下。尝试修复错误,总比动不动重装要有所提高。
上网搜寻结果如下:
看了文章发现要修复还是挺复杂的,重新看日志,发现问题是出在model数据库。我想我不如把我的另外一个数据库实例中的model数据库直接Copy过来不就行了,反正model数据库用作在系统上创建的所有数据库的模板。应该实例中的model数据库和要恢复的差不多吧。后来把实例数据库中的model.mdf覆盖过来,重启数据库服务。居然好了,用了一阵也一切正常。OK!问题解决了。
心得:看来以后遇到系统问题不能总走重装的老路,这样对自己才有提高。
错误: 9003,严重度: 20,状态: 1
The LSN (6:222:1) passed to log scan in database 'model' is invalid.
错误: 9003,严重度: 20,状态: 1
LSN (6:222:1) 无效。该 LSN 是传递给数据库 'model' 中的日志扫描操作的。
查看联机帮助,无果。重装数据库,反正是自己机器上的数据都无关紧要。还好服务器一切正常,需要数据从服务器上导入即可。不过为了省去重装的麻烦还是先上网搜索了一下。尝试修复错误,总比动不动重装要有所提高。
上网搜寻结果如下:
应该是数据文件或者日志文件损坏了。
1 )设置数据库为紧急模式
停掉SQL Server服务;
把应用数据库的数据文件XXX_Data.mdf移走;
重新建立一个同名的数据库XXX;
停掉SQL服务;
把原来的数据文件再覆盖回来;
运行以下语句,把该数据库设置为紧急模式;
运行“ Use Master
Go
sp_configure ' allow updates ' , 1
reconfigure with override
Go ”
执行结果:
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
已将配置选项 ' allow updates ' 从 0 改为 1 。请运行 RECONFIGURE 语句以安装。
接着运行“ update sysdatabases set status = 32768 where name = ' XXX ' ”
重启SQL Server服务;
运行以下语句,把应用数据库设置为Single User模式;
运行“sp_dboption ' XXX ' , ' single user ' , ' true ' ”
执行结果:
命令已成功完成。
做DBCC CHECKDB;
运行“ DBCC CHECKDB( ' XXX ' )”
运行以下语句把系统表的修改选项关掉;
运行“sp_resetstatus "XXX"
go
sp_configure ' allow updates ' , 0
reconfigure with override
重新建立另外一个数据库XXX.Lost;
2 )DTS导出向导
运行DTS导出向导;
这样,XXX.Lost数据库就可以替换原来的应用数据库了。
1 )设置数据库为紧急模式
停掉SQL Server服务;
把应用数据库的数据文件XXX_Data.mdf移走;
重新建立一个同名的数据库XXX;
停掉SQL服务;
把原来的数据文件再覆盖回来;
运行以下语句,把该数据库设置为紧急模式;
运行“ Use Master
Go
sp_configure ' allow updates ' , 1
reconfigure with override
Go ”
执行结果:
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
已将配置选项 ' allow updates ' 从 0 改为 1 。请运行 RECONFIGURE 语句以安装。
接着运行“ update sysdatabases set status = 32768 where name = ' XXX ' ”
重启SQL Server服务;
运行以下语句,把应用数据库设置为Single User模式;
运行“sp_dboption ' XXX ' , ' single user ' , ' true ' ”
执行结果:
命令已成功完成。
做DBCC CHECKDB;
运行“ DBCC CHECKDB( ' XXX ' )”
运行以下语句把系统表的修改选项关掉;
运行“sp_resetstatus "XXX"
go
sp_configure ' allow updates ' , 0
reconfigure with override
重新建立另外一个数据库XXX.Lost;
2 )DTS导出向导
运行DTS导出向导;
这样,XXX.Lost数据库就可以替换原来的应用数据库了。
看了文章发现要修复还是挺复杂的,重新看日志,发现问题是出在model数据库。我想我不如把我的另外一个数据库实例中的model数据库直接Copy过来不就行了,反正model数据库用作在系统上创建的所有数据库的模板。应该实例中的model数据库和要恢复的差不多吧。后来把实例数据库中的model.mdf覆盖过来,重启数据库服务。居然好了,用了一阵也一切正常。OK!问题解决了。
心得:看来以后遇到系统问题不能总走重装的老路,这样对自己才有提高。