www.2cto/database/201308/233607.html
1.在SQL Server中新建一个数据库名为Test(注,文件名为Test.mdf真正的的数据库不一定是这个名,先在SQL Server中导入过程中看看是不是这个名,一定要和真正的数据库名称一致)
2.停止SQL Server,把Test.mdf替换掉
3.重新启动SQL Server,如果你点一下Test数据库会有错误提示,不用管它,执行以下语句
alter database YZZJZWEB_PS set emergency 设定Test状态为紧急模式
sp_dboption 'YZZJZWEB_PS','single user','true' 设定数据库模式为"单一使用者"
dbcc checkdb(YZZJZWEB_PS,repair_allow_data_loss) 此句为关键语句,意为检查指定数据库所有数据的配置、结构和逻辑完整性。这一步操作会重新建立ldf日志文件
sp_dboption 'YZZJZWEB_PS','single user','false' 还原Test数据库模式
alter database YZZJZWEB_PS set online 设定Test数据库状态为online
注第③步很多人不会成功,原因在于,系统重建日志文件时不到路径,需要手动创建路径。
方法为:在第③步的错误提示中有ldf文件的路径,此路径信息包含在原mdf文件中,按此信息依次创建文件夹后,重新执行这条SQL语句。
最后成功后,建议把此数据库分离,换个你先要的名称,重新附加一次。
第三步如果报错,附加下看下LDF文件的名称是否一样,不一样修改后再执行
方法二:
wwwblogs/Sabre/p/3912937.html
处理数据库 'databasename' 的日志时出错。如果可能,请从备份还原。如果没有可用备份,可能需要重新生成日志。
无法打开新数据库 'databasename'。CREATE DATABASE 中止。 (Microsoft SQL Server,错误: 9004)
sqlserver2012数据库还原查资料以后,凡是带有“update sysdatabases set status=-32768 where dbid=DB_ID('test')”这个语句的,一律无效,
会报“不允许对系统目录进行即席更新。”,sql server2005以后不允许更新系统目录了。
解决步骤:
1.使用默认方式建立一个供恢复使用的数据库(如database_forrestore)。
2.停止数据库实例服务。
3.将刚才生成的数据库的日志文件database_forrestore.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件database_forrestore_data.mdf。
4.启动数据库服务器。此时会看到数据库database_forrestore不可访问。
5. ALTER DATABASE database_forrestore SET EMERGENCY
6. ALTER DATABASE database_forrestore SET SINGLE_USER【这一步是为了执行下面的dbcc】
7. ALTER DATABASE database_forrestore REBUILD LOG ON (NAME=dbname_log, FILENAME='d:\data\database_forrestore_log.ldf')
执行后,会有警告信息“警告: 数据库 'database_forrestore' 的日志已重新生成。已失去事务的一致性。RESTORE 链已断开,服务器不再有以前的日志文件的上下文,因此您需要了解它们的内容。应运行 DBCC CHECKDB 验证物理
一致性。数据库已置于 dbo-only 模式。在准备使数据库可用时,需要重置数据库选项,并删除所有多余的日志文件。”
8. DBCC CHECKDB(<dbname>, REPAIR_ALLOW_DATA_LOSS) 【这一步时,我这里报655错误,版本不兼容,让我升级数据库,我的sqlserver服务器是2012,用sp_dbcmptlevel查看database_forrestore 其兼容级别是110,也是2012,应该不存在兼容问题,但是这一步就是执行不了,可以跳过】
9. ALTER DATABASE database_forrestore SET MULTI_USER【恢复多用户模式】
10. ALTER DATABASE database_forrestore SET ONLINE 【联机,可以在数据库上的右键菜单中执行】
11.刷新,至此,数据应该回来了,如果还是报错,则分离数据库再附加一遍
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论