1.master数据库损坏的解决办法有哪些
遇到损坏或者错误的master数据库是最难解决情况之一。
Master数据库包含了SQL Server需要的关键信息。如果master数据库出错,那么SQL Server就不能启动。
要在这种情况下还原master数据库,可以按照下面这些步骤来从灾难中恢复过来:1. 使用\PRogram Files\Microsoft SQL Server\80\Tools\Binn目录下的rebuidm.exe文件重建master数据库。重建master数据库可以使数据库文件完整无缺。
为以防万一,经常把数据和日志文件备份到一个单独的目录是个不错的主意。2. 使用-m参数启动SQL Server,这样可以以单用户模式重新启动SQL Server。
3. 从最近一次已知最好的备份来还原master数据库。4. 核实master数据库是不是已经成功还原:确认所有数据库都已恢复正常运行。
从最近一次已知最好的备份来还原msdb数据库。5. 以普通模式停止和启动SQL Server。
6. 向生产用户开放数据库。如果这样做没有效,那么重建master数据库然后附加这个数据库。
master数据库出现问题,那么服务器上所有的数据库都会出现问题。总的来说,恢复时要完成的第一个步骤就是安装一个新的master数据库,使服务器至少能够启动。
2.master库损坏如何恢复
遇到损坏或者错误的master数据库是最难解决情况之一。
Master数据库包含了SQL Server需要的关键信息。如果master数据库出错,那么SQL Server就不能启动。
要在这种情况下还原master数据库,可以按照下面这些步骤来从灾难中恢复过来:1. 使用\PRogram Files\Microsoft SQL Server\80\Tools\Binn目录下的rebuidm.exe文件重建master数据库。重建master数据库可以使数据库文件完整无缺。
为以防万一,经常把数据和日志文件备份到一个单独的目录是个不错的主意。2. 使用-m参数启动SQL Server,这样可以以单用户模式重新启动SQL Server。
3. 从最近一次已知最好的备份来还原master数据库。4. 核实master数据库是不是已经成功还原:确认所有数据库都已恢复正常运行。
从最近一次已知最好的备份来还原msdb数据库。5. 以普通模式停止和启动SQL Server。
6. 向生产用户开放数据库。如果这样做没有效,那么重建master数据库然后附加这个数据库。
master数据库出现问题,那么服务器上所有的数据库都会出现问题。总的来说,恢复时要完成的第一个步骤就是安装一个新的master数据库,使服务器至少能够启动。
3.master数据库损坏的解决办法有哪些
遇到损坏或者错误的master数据库是最难解决情况之一。
Master数据库包含了SQL Server需要的关键信息。如果master数据库出错,那么SQL Server就不能启动。要在这种情况下还原master数据库,可以按照下面这些步骤来从灾难中恢复过来:
1. 使用\PRogram Files\Microsoft SQL Server\80\Tools\Binn目录下的rebuidm.exe文件重建master数据库。重建master数据库可以使数据库文件完整无缺。为以防万一,经常把数据和日志文件备份到一个单独的目录是个不错的主意。
2. 使用-m参数启动SQL Server,这样可以以单用户模式重新启动SQL Server。
3. 从最近一次已知最好的备份来还原master数据库。
4. 核实master数据库是不是已经成功还原:确认所有数据库都已恢复正常运行。从最近一次已知最好的备份来还原msdb数据库。
5. 以普通模式停止和启动SQL Server。
6. 向生产用户开放数据库。
如果这样做没有效,那么重建master数据库然后附加这个数据库。master数据库出现问题,那么服务器上所有的数据库都会出现问题。
总的来说,恢复时要完成的第一个步骤就是安装一个新的master数据库,使服务器至少能够启动。
4.如何修复sql数据库master
在网上搜索了一下,发现了一篇介绍比较详细的,而且也确实解决了这一问题(我在VM上测试过可以),特将其全文转贴如下:
关于系统数据库的恢复总结如下:
在SQL Server数据库中,系统信息存储在系统数据库中,主要的系统数据库包括:
master-从整体上控制用户数据库和SQL Server操作,在创建了任何用户定义的对象后,都要备份它
model-为新数据库提供模版和原型
msdb-包含了有关作业、报警及操作员等信息
如果包含系统数据库的介质变了,那么必须重建系统数据库,如果你仍然可以启动SQL Server服务,则可以通过RESTORE语句从系统数据库的备份中恢复数据库。
如果master坏了,不能启动系统,可以按照下面步骤进行恢复
1.重建系统数据库 运行c:/mssql7/binn/rebuildm.exe,按照提示进行即可,
过程中需要系统数据库样本的路径,可在安装光盘中找到;
2 重建系统数据库后,启动SQL Server服务,用系统数据库的备份恢复数据库
就行了通常恢复顺序为master->msdb->model
在恢复master的备份时要注意:必须在单用户(single user)模式下进行
a.进入单用户模式的方法:
1.在命令行模式下输入sqlservr -c -f -m或者输入sqlservr -m
其中:-c 可以缩短启动时间,SQL Server 不作为Windows NT的服务启动
-f 用最小配置启动SQL Server
-m 单用户模式启动SQL Server
2.可以在控制面板-服务-MSSQLServer的启动参数中输入-c -f -m或者输入-m,点击开始
3.进行master数据库的恢复
a.直接进入查询分析器,有个提示不要理会它
输入恢复语句进行数据库恢复:
RESTORE DATABASE master from disk='c:/具体的备份文件名'
b.或者用这个,在命令提示符下输入,注意大小写
使用"windows身份验证"的,输入:isql /E
使用"sql server和windows身份验证"的,输入:isql /U"用户名" /P"密码"
然后在出现的提示符下输入(注意1>,2>;是提示符):
5.如何恢复崩溃的系统数据库master,恢复的具体步骤有哪些啊
US OK-->; 开机蓝屏!!!!!!!_百度知道 var IKFromImport=false; | | G("log_in").src=" /?login&tpl=ik&u"+escape(location.href); 知道 | function ask(fn) (function()Fe.on(window,"resize",A);A();setTimeout(A,100)})(); if(!g_f_js) if (typeof(cf)=="function") var IknowPageModify=false;var UnloadConfirm=}};UnloadConfirm.clear=function()};UnloadConfirm.set();if(!G)return A}}function ctlSubmit(A)}function lockButton(A),3000)}function cReply(A)if(A=="no")}function fixReply(A)function showcpro(A)function ga(B,A)}}elset=h.id}if(t==a||p==a||r==a)window.open(G(a).href,"_blank")}}function ss(A)function cs()var query=(function()D.onsubmit=function()document.forms.ftop.appendChild(E(query.isChanged()));return true}}function A()return B!=document.forms.ftop.word.value}return})();function statFunc(A)function voteAnswer(A)function formSubmit(B,A),B),A||"deal")}; var url = escape(location.href); IknowLogParams["page"]="ikqb"; > >
已解决
开机蓝屏!!!!!!! 悬赏分:0 - 提问时间2010-6-24 14:02我是华硕板,9500gt显卡!!开机正常,到xp滚动条时就跳到蓝色画面,好像是在整理硬盘,有时是c盘,有时是d盘!整理好后就蓝屏了!!!!!没次都这样,偶尔能完成开机,
6.关于SQL 2000 中 master数据库文件损坏数据恢复的问题
SQL SERVER2000数据库备份和恢复存储过程,过程和函数的详细说明在代码中/*备份数据库的过程*/ if exists( select * from sysobjects where name='pr_backup_db' and xtype='p' ) begin drop proc pr_backup_db end go create proc pr_backup_db @flag varchar(20) out,@backup_db_name varchar(128),@filename varchar(1000) --路径+文件名字 as declare @sql nvarchar(4000),@par nvarchar(1000) if not exists( select * from master..sysdatabases where name=@backup_db_name ) begin select @flag='db not exist' /*数据库不存在*/ return end else begin if right(@filename,1)'\' and charindex('\',@filename)0 begin select @par='@filename varchar(1000)' select @sql='BACKUP DATABASE '+@backup_db_name+' to disk=@filename with init' execute sp_executesql @sql,@par,@filename select @flag='ok' return end else begin select @flag='file type error' /*参数@filename输入格式错误*/ return end end GO 说明:pr_backup_db过程是备份你的数据库/*创建函数,得到文件得路径*/ if exists( select * from sysobjects where name='fn_GetFilePath' and xtype='fn' ) begin drop function fn_GetFilePath end go create function fn_GetFilePath(@filename nvarchar(260)) returns nvarchar(260) as begin declare @file_path nvarchar(260) declare @filename_reverse nvarchar(260) select @filename_reverse=reverse(@filename) select @file_path=substring(@filename,1,len(@filename)+1-charindex('\',@filename_reverse)) return @file_path end GO/*恢复数据库的过程*/ if exists( select * from sysobjects where name='pr_restore_db' and xtype='p' ) begin drop proc pr_restore_db end go CREATE proc pr_restore_db @flag varchar(20) out, /*过程运行的状态标志,是输入参数*/ @restore_db_name nvarchar(128), /*要恢复的数据名字*/ @filename nvarchar(260) /*备份文件存放的路径+备份文件名字*/ as declare @proc_result tinyint /*返回系统存储过程xp_cmdshell运行结果*/ declare @loop_time smallint /*循环次数*/ declare @max_ids smallint /*@tem表的ids列最大数*/ declare @file_bak_path nvarchar(260) /*原数据库存放路径*/ declare @flag_file bit /*文件存放标志*/ declare @master_path nvarchar(260) /*数据库master文件路径*/ declare @sql nvarchar(4000),@par nvarchar(1000) declare @sql_sub nvarchar(4000) declare @sql_cmd nvarchar(100) declare @sql_kill nvarchar(100) /* 判断参数@filename文件格式合法性,以防止用户输入类似d: 或者 c:\a\ 等非法文件名 参数@filename里面必须有'\'并且不以'\'结尾*/ if right(@filename,1)'\' and charindex('\',@filename)0 begin select @sql_cmd='dir '+@filename EXEC @proc_result = master..xp_cmdshell @sql_cmd,no_output IF (@proc_result0) /*系统存储过程xp_cmdshell返回代码值:0(成功)或1(失败)*/ begin select @flag='not exist' /*备份文件不存在*/ return /*退出过程*/ end /*创建临时表,保存由备份集内包含的数据库和日志文件列表组成的结果集*/ create table #tem( LogicalName nvarchar(128), /*文件的逻辑名称*/ PhysicalName nvarchar(260) , /*文件的物理名称或操作系统名称*/ Type char(1), /*数据文件 (D) 或日志文件 (L)*/ FileGroupName nvarchar(128), /*包含文件的文件组名称*/ [Size] numeric(20,0), /*当前大小(以字节为单位)*/ [MaxSize] numeric(20,0) /*允许的最大大小(以字节为单位)*/ ) /* 创建表变量,表结构与临时表基本一样 就是多了两列, 列ids(自增编号列), 列file_path,存放文件的路径 */ declare @tem table( ids smallint identity, /*自增编号列*/ LogicalName nvarchar(128), PhysicalName nvarchar(260), File_path nvarchar(260), Type char(1), FileGroupName nvarchar(128) ) insert into #tem execute('restore filelistonly from disk='''+@filename+'''') /*将临时表导入表变量中,并且计算出相应得路径*/ insert into @tem(LogicalName,PhysicalName,File_path,Type,FileGroupName) select LogicalName,PhysicalName,dbo.fn_GetFilePath(PhysicalName),Type,FileGroupName from #tem if @@rowcount>0 begin drop table #tem end select @loop_time=1 select @max_ids=max(ids) /*@tem表的ids列最大数*/ from @tem while @loop_time begin select @file_bak_path=file_path from @tem where ids=@loop_time select @sql_cmd='dir '+@file_bak_path EXEC @proc_result = master..xp_cmdshell @sql_cmd,no_output /*系统存储过程xp_cmdshell返回代码值:0(成功)或1(失败)*/ IF (@proc_result0) select @loop_time=@loop_time+1 else BREAK /*没有找到备份前数据文件原有存放路径,退出循环*/ end select @master_path='' if @loop_time>@max_ids select @flag_file=1 /*备份前数据文件原有存放路径存在*/ else begin select @flag_file=0 /*备份前数据文件原有存放路径不存在*/ select @master_path=dbo.fn_GetFilePath(filename) from master..sysdatabases where name='。
7.关于无法恢复 master 数据库
兄弟,这可能要麻烦
我分析是中病毒时间长了,破坏了很多.exe和数据文件导致的.由于杀毒时已经不能把病毒文件分离出来,破坏了很多文件,导致系统的崩溃和数据的丢失.
建议:如果数据真的很重要的话.去专业的数据恢复公司找正规公司的技术人员做恢复.
兄弟,我就这水平了,就这种办法了.你最好别自己乱弄硬盘,如果自己瞎弄.没弄好再去数据恢复公司恢复的话,恐怕很难100%恢复了.慎重啊!!!
你用的是什么数据库啊?
如果你能保证数据都在的话,备分出来,重做一下服务器吧,或者重装数据库的软件.
8.如何还原master数据库
第一步:复制model.mdf、mastlog.ldf、model.mdf、modellog.ldf、msdbdata.mdf、msdblog.ldf文件。
从X:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\Templates至X:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA注:以上“X:\Program Files\Microsoft SQL Server”为SQL Server的安装目录。以下的“C:\Program Files\Microsoft SQL Server”为系统盘下的目录第二步:定位并执行安装命令1. 首先找到安装命令:C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Release\setup.exe2. 执行命令如果只是Windows身份验证模式,只需要如下语法即可:复制代码 代码如下:setup /ACTION=REBUILDDATABASE /QUIET /INSTANCENAME=
并且就一个默认实例:MSSQLSERVER。所以在命令行执行如下命令:复制代码 代码如下:setup /ACTION=REBUILDDATABASE /QUIET /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=administrators /SAPWD=123456第三步:执行完毕后没有任何提示信息(不管成功与否),但是可以马上在C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\Summary.txt中查看安装日志。
最后,在Sql Server Configuration Manager中启动SQL Server服务成功。 在处理过程中出现了这种情况SQL恢复数据库又该怎么办?只有mdf文件时,应当如何进行恢复,即有log文件的数据库如何恢复SQL恢复数据库具体实现步骤:1、新建一个同名数据库。
2、停止数据库服务,覆盖新建的数据库主文件(小技巧:最好放在同一个磁盘里面,把新建的数据库主文件删掉或移开,再把要恢复的数据库主文件剪切过去,这样就可以节省时间。)3、启动数据库服务,数据库变为置疑或可疑状态。
然后在查询分析器中运行:alter database 无日志文件的数据库名称 set emergency设置为紧急状态。 4、再运行:alter database 无日志文件的数据库名称 set single_user或者:Sp_dboption '无日志文件的数据库名称', 'single user', 'true'设置为单用户模式。
5、检查并重建日志文件,运行:dbcc checkdb('无日志文件的数据库名称',REPAIR_ALLOW_DATA_LOSS)这个时间比较长。耐心等待!如果有错误提示,再运行: dbcc checkdb('无日志文件的数据库名称',REPAIR_REBUILD)进行修复。
如果没有错误,可以跳过。 6、恢复成多用户模式alter database 无日志文件的数据库名称 set multi_user或者:Sp_dboption '无日志文件的数据库名称', 'single user', 'false'刷新数据库,你就可以看到已经修复好的数据库了。
以上就是为大家分享的SQL恢复数据库方法,希望对大家恢复数据库有所帮助。
转载请注明出处windows之家 » win10数据库master损坏如何修复