附加数据库时出错 sql数据库附加出错怎么办
大家好,今天来为大家解答附加数据库时出错这个问题的一些问题点,包括sql数据库附加出错怎么办也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
附加SQL2005数据库失败。请问怎么解决。
参考恢复方法:
1、停止数据库服务。
2、将需要恢复的数据库文件复制到另外的位置。
3、启动数据库服务。
4、确认要恢复的数据库文件已经成功复制到另外的位置,然后在SQL Server Management Studio中删除要恢复的数据库。
5、新建同名的数据库(数据库文件名也要相同)。
6、停止数据库服务。
7、用第2步中备份的.mdf文件覆盖新数据库的同名文件。
8、启动数据库服务。
9、运行alter database dbname set emergency,将数据库设置为emergency mode
10、运行下面的命令就可以恢复数据库:
use master
declare@databasename varchar(255)
set@databasename='你的数据库名'
exec sp_dboption@databasename, N'single', N'true'--将目标数据库置为单用户状态
dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(@databasename,REPAIR_REBUILD)
exec sp_dboption@databasename, N'single', N'false'--将目标数据库置为多用户状态
----------------------------------------------------------------------------------------------------------
如果你一切都顺得的话就如上的步骤就可以成功了,下面我们将对特殊的状态进行分析
----------------------------------------------------------------------------------------------------------
1、一个或多个文件与数据库的主文件不匹配。如果是尝试附加数据库,请使用正确的文件重试该操作。如果这是现有数据库,则文件可能已损坏,应该从备份进行还原。
日志文件'E:/Program Files/Microsoft SQL Server 2005/MSSQL.1/MSSQL/DATA/dnt2_db_log.ldf'与主文件不匹配。该文件可能来自另一数据库,或者可能以前重新生成了日志。
消息 5123,级别 16,状态 1,第 5行
尝试打开或创建物理文件'F:/项目/爱社区/数据库/dnt2_db_log.ldf'时,CREATE FILE遇到操作系统错误 3(系统找不到指定的路径。)。
消息 5024,级别 16,状态 2,第 5行
在 sysfiles1中找不到主日志文件所对应的条目。无法重建日志。
消息 5028,级别 16,状态 2,第 5行
系统无法激活足够的数据库来重建日志。
解决方案:手动创建E:/Program Files/Microsoft SQL Server 2005/MSSQL.1/MSSQL/DATA目录就可以了,然后再执行
上述第10步步骤,就会在E:/Program Files/Microsoft SQL Server 2005/MSSQL.1/MSSQL/DATA产生一个日志文件。数据库就可以正常使用了
----------------------------------------------------------
2、另外值得说说的就是,如果该数据在备份时发生
System.Data.SqlClient.SqlError:在处理'BackupMetadata'元数据(数据库 ID 6,文件 ID 65537)时出错。(Microsoft.SqlServer.Smo),说明在附加过程中没有产生全文索引文件
解决方法:
右键数据库->属性->文件->选择使用全文索引
如果执行正常那么就可以直接进行备份操作了。
sql数据库附加出错怎么办
解决方法步骤如下:
1、首先打开sqlserver management studio,登录身份选择windows身份验证,点击连接。
2、进入管理器中,选择数据库,右键,在弹出的菜单选择“附加”,如图所示,选择要附加的文件后,点击附加,如果没有报错,则完成附加,否则,需要接下来的数据修复。
3、报错,附加失败后,新建数据库,且要与要附加的数据库同名。如要附加的数据库为skhprint,要新建的数据库名也要命名为skhprint,如图,点击确定,完成数据库创建。
4、如何在界面内找到“停止”选项并单击停止数据库。
5、将原mdf文件,如skhprint.mdf复制到新创建的数据库所在目录中,之后,开启服务器。
6、这时,会发现skhprint质疑,接下来要打开查询分析器,输入如下代码:use mastergo--declare@databaseName varchar(50)--set@databaseName='skhprint'--1修改服务器设置:允许对系统目录进行直接修改
sp_configure'allow updates',1 reconfigure with overridego--2将数据库置为紧急状态update master.dbo.sysdatabases set status= 32768 where name='skhprint'go--3删除新的ldf文件,重建日志:dbcc rebuild_log('skhprint','f:\skhprint_log_new.ldf')--假设把新日志在f盘goupdate master.dbo.sysdatabases set status= 16 where name='skhprint'即可。
SQL server 2000附加数据库时出错怎么办
应该是你的数据库日志文件损坏了,单独附加应该不成功。因为单独附加的原理是产生一个空的LDF文件结构,但是前提是之前的Log是干净的关闭,也就是不能有其他Open的事物。
这个问题你可以尝试见一个同名的数据库,然后停掉SQL
Server用出问题的覆盖创建的,然后启动SQL
Server
,改到单用户模式用DBCC
CHECKDB修复,但是会有数据损失。
另外以上的操作建议在测试环境中做,保留一个备份。
sql附加数据库出错一直正在执行
如下,在附加数据的时候出现如下的报错。排除分离和附加SQL SERVER数据库软件的版本问题外。造成这个问题的原因为存放数据库文件夹的权限问题造成的。
请点击输入图片描述
找到存放数据库文件夹,使用鼠标右键点击该文件夹,选择【属性】。在属性的界面中,切换至【安全】的选项卡。点击组或用户名下面的【编辑】按钮。
请点击输入图片描述
进行存放需要附加的文件夹权限设置。增加相关的账号权限。点击【添加】按钮。
请点击输入图片描述
在弹出的界面中点击选择【高级】
请点击输入图片描述
点击【立即查找】搜索Windows中相关用户。
请点击输入图片描述
在搜索出来的结果中选择【Everyone】用户组,并使用鼠标左键双击该用户组。
请点击输入图片描述
在输入对象名称来选择的下方出现【everyone】的名称后点击【确定】
请点击输入图片描述
下面进行everyone的权限设定,勾选everyone的权限为【完全控制】。这样everyone用户组对需要附加SQL数据库所在的文件夹就具备了完全控制的权限。
请点击输入图片描述
接下来使用SQL SSMS来进行SQL数据库的附加操作,可以看到数据库附加得以完成。
请点击输入图片描述
好了,文章到此结束,希望可以帮助到大家。