科脉挽救数据库损坏的方法
条件:原库的 .mdf 文件是完好的即可。
请在SQL Server的查询分析器中按以下步骤执行
假设数据库名为:kmjxc (如果您的数据库名不是kmjxc,需要更改以下语句中相应的kmjxc为您的数据库名称)
0.先用KM db_setup.exe建立一个空库,然后将有数据的 .mdf文件复制过来
覆盖现有的空库的.mdf文件。
1.把数据库设成紧急状态:
然后在SQL查询分析器中,选到kmjxc数据库,输入以下语句执行(一条一条执行)
sp_configure 'allow',1
reconfigure with override
update sysdatabases set status=32768 where name='kmjxc'
2.重建日志文件(请将路径换成你的数据文件路径)
D:\MSSQL$PROD\Data\为存放数据库文件的路径
KMJXC_log2.ldf为一个新的不存在的文件,在执行以下语句时将自动建立
dbcc rebuild_log('kmjxc','D:\MSSQL$PROD\Data\KMJXC_log2.ldf')
3.取消紧急模式(一条一条执行)
update sysdatabases set status=0 where name='kmjxc'
restore database kmjxc with recovery
sp_configure 'allow',0
reconfigure with override
4.重起sql server
5.ok
恢复数据库(数据库置疑处理)
条件:原库的 .mdf 文件是完好的即可。
请在SQL Server的查询分析器中按以下步骤执行
假设数据库名为:kmjxc (如果您的数据库名不是kmjxc,需要更改以下语句中相应的kmjxc为您的数据库名称)
0.先用KM db_setup.exe建立一个空库,然后将有数据的 .mdf文件复制过来
覆盖现有的空库的.mdf文件。
1.把数据库设成紧急状态:
然后在SQL查询分析器中,选到kmjxc数据库,输入以下语句执行(一条一条执行)
sp_configure 'allow',1
reconfigure with override
update sysdatabases set status=32768 where name='kmjxc'
2.重建日志文件(请将路径换成你的数据文件路径)
D:\MSSQL$PROD\Data\为存放数据库文件的路径
KMJXC_log2.ldf为一个新的不存在的文件,在执行以下语句时将自动建立
dbcc rebuild_log('kmjxc','D:\MSSQL$PROD\Data\KMJXC_log2.ldf')
3.取消紧急模式(一条一条执行)
update sysdatabases set status=0 where name='kmjxc'
restore database kmjxc with recovery
sp_configure 'allow',0
reconfigure with override
4.重起sql server
5.ok
在SQL Server中将数据库文件装载为数据库
在SQL Server中将数据库文件装载为数据库
如果由于意外原因,系统可能不能再自举启动,原来的数据没来得及做备份,但保存数据部分的磁盘还是完好的,我们可以用以下方法将原有数据库的文件直接装载到新系统中。
1) 将数据文件装载到SQL Server中;
EXEC sp_attach_db @dbname = N'kmjxc',
@filename1 = N'd:\kmjxc_data.mdf',
@filename2 = N'd:\kmjxc_log.ldf'
说明:
[@dbname =] 'dbname'
要附加到服务器的数据库的名称。该名称必须是唯一的。dbname 的数据类型为 sysname,默认值为 NULL。
[@filename1 =] 'filename_n'
数据库文件的物理名称,包括路径。filename_n 的数据类型为nvarchar(260),默认值为 NULL。最多可以指定 16 个文件名。参数 名称以 @filename1 开始,递增到 @filename16。文件名列表至少必 须包括主文件,主文件包含指向数据库中其它文件的系统表。该列表 还必须包括数据库分离后所有被移动的文件。
2) 更新数据库上的所有统计
USE kmjxc
EXEC sp_updatestats