分离附加数据库失败解决办法
- 格式:doc
- 大小:31.50 KB
- 文档页数:3
SQLServer2014对数据库进⾏分离(detach)和附加(attach)操作⼀、概述SQL Server提供了“分离/附加”数据库、“备份/还原”数据库、复制数据库等多种数据库的备份和恢复⽅法。
这⾥介绍⼀种学习中常⽤的“分离/附加”⽅法,类似于⼤家熟悉的“⽂件拷贝”⽅法,即把数据库⽂件(.MDF)和对应的⽇志⽂件(.LDF)拷贝到其它磁盘上作备份,然后把这两个⽂件再拷贝到任何需要这个数据库的系统之中。
⽐如,在实验教学过程中,同学们常常想把⾃⼰在学校实验室计算机中创建的数据库搬迁到⾃⼰的计算机中⽽不想重新创建该数据库,就可以使⽤这种简单的⽅法。
但由于数据库管理系统的特殊性,需要利⽤SQL Server提供的⼯具才能完成以上⼯作,⽽直接的⽂件拷贝是⾏不通的。
这个⽅法涉及到SQL Server分离数据库和附加数据库这两个互逆操作⼯具。
1、分离数据库就是将某个数据库(如student_Mis)从SQL Server数据库列表中删除,使其不再被SQL Server管理和使⽤,但该数据库的⽂件(.MDF)和对应的⽇志⽂件(.LDF)完好⽆损。
分离成功后,我们就可以把该数据库⽂件(.MDF)和对应的⽇志⽂件(.LDF)拷贝到其它磁盘中作为备份保存。
2、附加数据库就是将⼀个备份磁盘中的数据库⽂件(.MDF)和对应的⽇志⽂件(.LDF)拷贝到需要的计算机,并将其添加到某个SQL Server数据库服务器中,由该服务器来管理和使⽤这个数据库。
⼆、分离数据库1. 在启动SSMS并连接到数据库服务器后,在对象资源管理器中展开服务器节点。
在数据库对象下找到需要分离的数据库名称,这⾥以student_Mis数据库为例。
右键单击student_Mis 数据库,在弹出的快捷菜单中选择属性。
2. 在“数据库属性”窗⼝左边“选择页”下⾯区域中选定“选项”对象,然后右边区域的“其它选项”列表中找到“状态”项,单击“限制访问”⽂本框,在其下拉列表中选择“SINGLE_USER”。
修复置凝的数据库方法--世纪商通技术部修复受损的mdf文件(无ldf文件):-------------------------------------------------------------------------分离置凝的数据库,备份数据库文件(把原数据库文件移到其他文件夹),然后按下面的步骤处理:1.新建一个同名的数据库(数据文件与原来的要一致)2.再停掉sql server(注意不要分离数据库)3.用原数据库的数据文件覆盖掉这个新建的数据库4.再重启sql server5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行了.USE MASTERGOSP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDEGOUPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名' Gosp_dboption '置疑的数据库名', 'single user', 'true'GoDBCC CHECKDB('置疑的数据库名')Goupdate sysdatabases set status =28 where name='置疑的数据库名'Gosp_configure 'allow updates', 0 reconfigure with overrideGosp_dboption '置疑的数据库名', 'single user', 'false'如果是日志文件有问题,你可以重建日志事试试,有可能是日志文件有问题。
分离:
鼠标右键单击所要分离的数据库名,选择“任务”中的“分离”
弹出如下对话框,点“删除连接”,使之打钩,单击“确定”按钮,完成数据库分离。
复制数据库文件
按以下路径,打开文件夹(此为教师机中的路径,学生机可能也是这个路径)
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data
可以看到两个数据库文件:liumei.mdf 和liumei.ldf
复制这两个文件到你的U盘中
附加:
打开SQL Server 2005,连接后,开始数据库附加工作。
单击数据库对象,选择“附加”,如图所示。
弹出对话框,单击“添加”,通过文件浏览方式,选择你U盘中的数据库文件(liumei.mdf)建议:先将U盘中文件拷贝到硬盘中,这样操作速度会快一些,只是记住上机结束时将数
据库重新分离,再将新的数据库文件拷贝到U盘即可
“确定”后,上次分离的数据库就附加到SQL Server 中了。
SQl server 2008 附加数据库失败如何解决
通过附加功能添加现成的数据库是非常方便的,然而有时会出现附加数据库失败。
那么,我们该如何解决此问题?
方法一、
1.
找到要添加数据库的.mdf文件,点击右键,选择属性。
2.
在属性页面点击安全,选择Authenticated Users,单击编辑
3. 3
Authenticated Users权限中选择完全控制,点击确定,点击属性界面的确定。
4.
同理,右键点击数据库的.ldf文件,打开属性。
按以上步骤再次设置即可。
5.
完成以上步骤,再进行附加数据库,这时就可以。
END
方法二、
1.打开数据库实例的安装目录,打开DATA文件夹。
(如我的实例目录地
址为:D:\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA 也可能当时安装时装在C盘了)
2.将要附加的数据库.mdf文件和.ldf文件,剪切或复制到DATA
文件夹里。
3.完成以上步骤,再次附加数据库。
这时就可以了。
SQLServer附加数据库报错⽆法打开物理⽂件,操作系统错
误5的图⽂解决教程
问题描述:
附加数据时,提⽰⽆法打开物理⽂件,操作系统错误5。
如下图:
问题原因:可能是⽂件访问权限⽅⾯的问题。
解决⽅案:找到数据库的mdf和ldf⽂件,赋予权限即可。
如下图:
找到mdf和ldf⽂件,本演⽰以ldf为例。
1.点击⽂件右键属性-->安全-->编辑
2.编辑-->添加
3.添加-->⾼级
4.⾼级-->⽴即查找-->搜索结果中找到-->Everyone-->确定-->确定
5.确定-->默认选中的Everyone⽤户-->Everyone的权限-->勾选"完全控制"即会把下⾯所有未勾选的都默认勾选上。
-->确定-->确定。
即Everyone的权限完成。
以上所述是⼩编给⼤家介绍的SQL Server附加数据库报错⽆法打开物理⽂件,操作系统错误5的图⽂解决教程,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。
在此也⾮常感谢⼤家对⽹站的⽀持!。
SQL数据库的备份与还原一、SQL数据库的备份:1、依次打开开始菜单→程序→Microsoft SQL Server 2008 →SQL Server Management Studio →数据库:以Dsideal_school_db为例图(1)2、选择要备份的数据库“Dsideal_school_db”,点击鼠标右键→任务→备份,如图(2):图(2)3、在打开的“备份数据库—Dsideal_school_db”对话框中,先点击删除,然后点击“添加”,如图(3):首先点击“删除”然后点击“添加”图(3)4、在弹出的“选择备份目标”对话框中,点击“”,如图(4)图(4)5、选择好备份的路径(如D盘的江西-学籍-数据库备份文件夹中),文件类型选择“所有文件”,“文件名”那个位置填写上您要备份的数据库的名字(最好在您备份的数据库的名字后面加上日期,以方便以后查找),之后连续点击“确定”按钮即可完成数据库的备份操作,如图(5):图(5二、SQL数据库的还原:1、选择您要还原的数据库“Dsideal_school_db”,点击鼠标右键→任务→还原→数据库,如图(6):图(6)2、在出现的“还原数据库— school_web_db”对话框中选择“源设备”,然后点击后面的“”按钮,如图(7):3、在出现的“指定备份”对话框中,点击“添加”按钮,如图(8):图(8)4、找到数据库备份的路径,选择您所要还原的数据库“Dsideal_school_db”(注意:文件类型选择所有文件),然后连续“两次”点击“确定”按钮,如图(9):图(9)5、在出现的“还原数据库— Dsideal_school_db”对话框中,勾选上“选择用户还原的备份集”下的数据库前的复选框,如图(10)6、然后选择“选项”,勾选上“覆盖现有数据库”,如图(11):图(11)三、还原数据库问题解决方案在还原数据库“Dsideal_school_db”时,有时会遇见上图中的问题“因为数据库正在使用,所以无法获得对数据库的独占访问权”,此时我们可以按照以下步骤解决此问题1、右键数据库“Dsideal_school_db”,然后选择“属性”,如下图2、在出现的“数据库属性— Dsideal_school_db”对话框中,选择“选项”,在“其他选项”下的“状态”中找到“限制访问”。
解决此问题的几个关键点如下:1、该现象只会出现在NTFS文件系统中。
2、由NTFS文件系统的访问权限导致。
一般手工操作的解决方案如下:1、控制面板—>文件夹选项—>查看关闭“使用简单文件共享(推荐)”2、选择存放数据库文件的文件夹,右键选择属性,这时会多出一个“安全”选项卡,选择最后一个用户,将该用户的权限设为“完全控制”。
经过这两步操作后,数据库附加失败或附加后只读的问题即可解决。
下面重点讲这两步,用C#代码的实现,因为当我们为项目打包后,不可能让用户手工来执行这些操作1、C#关闭简单文件共享的代码实现在百度、Google搜索此问题解决方法时,很多的操作方法并不正确,经过自己实际操作测试,正确方法如下:注册表文件:Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] "forceguest"=dword:00000000批处理:reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v forceguest /t REG_WORD /d 0x00000000 /f如果选中此项,则将上述 0x00000000 改为 0x00000001。
通过修改注册表的方式实现代码如下:Microsoft.Win32.RegistryKey key =Microsoft.Win32.Registry.LocalMachine;Microsoft.Win32.RegistryKey software =key.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Lsa", true); software.SetValue("forceguest", 0);2、C#修改指定文件夹的用户访问权限代码实现如下:(将该用户的权限设置为可写)string path = this.Context.Parameters["targetdir"];//得到文件夹路径DirectoryInfo dInfo = new DirectoryInfo(path);DirectorySecurity dSecurity = dInfo.GetAccessControl();dSecurity.AddAccessRule(new FileSystemAccessRule(erName, FileSystemRights.CreateFiles, AccessControlType.Allow));dInfo.SetAccessControl(dSecurity);。
SQL数据库安装过程问题解决SQL Server 2000有四个正式版本:企业版/标准版/个人版/开发版问题1 安装数据库的时候提示下面的对话框,确定以后在安装定义的窗口“服务器和客户端工具”是灰的,只能选择仅安装客户端工具。
解决方法a).SQL server不同版本的安装与操作系统是否支持直接有关。
b).SQL server 2000以前的版本,例如7.0一般不存在多个版本,只有标准版跟桌面版。
用户如果不清楚该装什么版本的话,可按安装上的安装先决条件指示安装,一般在WIN2000 服务器版上装标准版,其他的系统装桌面版的就可以。
Windows 2000 的Server版本,可以安装SQL Server 2000的任何版本,Professional版本只能安装SQL Server 2000的个人版、开发版、评估版、MCDE。
所以,操作系统可能是Home版本,不支持SQL Server 2000的企业版本,选择安装个人版就可以了。
c).PS: XP Professional SP2,不支持SQL企业版。
d).SQL Server 2000 企业版(必须在WIN 2000 SERVER服务器版本上安装)作为生产数据库服务器使用。
支持SQL Server 2000中的所有可用功能,并可根据支持最大的Web 站点和企业联机事务处理(OLTP)及数据仓库系统所需的性能水平进行伸缩。
e).SQL Server 2000标准版(必须在WIN2000 SERVER服务器版本上安装)作为小工作组或部门的数据库服务器使用。
f).SQL Server 2000 个人版(可以在WINXP上安装)供移动的用户使用,这些用户有时从网络上断开,但所运行的应用程序需要SQL Server数据存储。
在客户端计算机上运行需要本地SQL Server数据存储的独立应用程序时也使用个人版。
g).SQL Server 2000开发版(可以在WINXP上安装)供程序员用来开发将SQL Server 2000用作数据存储的应用程序。
数据库附加出错数据怎么恢复很多用户在使用数据库的过程中,经常因为各种问题造成数据库无法连接,数据库附加出错,由于用户对数据库附加出错的原因不甚了解,所以就无法针对问题进行相应的解决。
为了解决大多数用户出现的数据库附加出错问题,今天我们就来谈谈如何修复数据库附加出错问题。
针对用户常见的数据库附加出错原因,这里给大家介绍四种解决数据库附加出错的解决方法:(1)切换登录方式出现这种情况是由于用“混合验证方式”(SQL Server身份验证)登录数据库造成的,只要将登录方式改为“windows身份验证方式”登录即可解决该问题,附加成功后再换用“混合验证模式”登陆就没问题了。
(2)修改服务选择所有程序-SQL Server 2005-配置工具-选择"SQL Server Configuration Manager"或者“SQL Server 配置管理器”,打开“SQL Server Configuration Manager”配置界面,在左侧选择"SQL Server 2005 服务",在右侧右击打开“SQL Server (SQLEXPRESS)”的属性,在内置账户处将网络服务--”Network Service”改为本地系统--"Local System",点击“重新启动”后再附加数据库就可以了。
(3)修改权限找到要添加数据库的.mdf文件,点击右键,选择属性。
在属性页面点击安全,选择Authenticated Users,单击编辑。
Authenticated Users权限中选择完全控制,点击确定,点击属性界面的确定。
同理,右键点击数据库的.ldf文件,打开属性。
按以上步骤再次设置即可。
完成以上步骤,再进行附加数据库,这时就可以。
(4)重置文件位置打开数据库的安装目录,打开data文件夹(如目录地址为:D:\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA 也可能当时安装时装在C盘了)。
质疑数据库无法附加修复案例首先以ufsystem为例,找个空的ufsystem数据库附加上以后,用质疑数据库的mdf文件覆盖原文件,然后用以下语句进行修复use mastergosp_configure 'allow updates',1goreconfigure with overridegoupdate sysdatabases set status=-32768 where dbid=DB_ID('UFDATA_002_2010')godbcc rebuild_log('UFDATA_002_2010','D:\U6SOFT\Admin\ZT002\2010\ufmodel.ldf')gosp_dboption 'UFDATA_002_2010','dbo use only','false'gosp_configure 'allow updates',0goreconfigure with overridego注意路径和数据库名,特别是标红的路径,此路径为重建mdf日志文件的文件路径并非原来路径。
如果路径填了原来的,那执行完语句后的数据库状态将变为紧急,只读和脱机,无法用语句切换为正常状态。
此语句为msde2000数据库的数据库质疑修复语句,下面的为SQL2005或SQL2008R2的数据库修复语句alter database 置疑的数据库名称set emergencyalter database 置疑的数据库名称set single_user with rollback immediatedbcc checkdb(置疑的数据库名称,repair_allow_data_loss)dbcc checkdb(置疑的数据库名称,repair_rebuild)alter database 置疑的数据库名称set multi_user如果用这段语句在SQL2000里修复会提示emergency附近语法有错误,因为alter database 置疑的数据库名称set emergency那条语句是将数据库切换为紧急模式,对应2000的此条语句为update sysdatabases set status=-32768 where dbid=DB_ID('UFDATA_002_2010')。
本文由我司收集整编,推荐下载,如有疑问,请与我司联系数据库分离后,删除日志文件,执行附加语句时,数据库附加失败2010/04/30 884 解决方法: 请遵照如下步骤来试图重建数据库事务日志. 注意:由于事务日志丢失, 数据库可能有没有提交的数据. 注: 所有红色部分都要替换成真实的数据库名字步骤1: 创建一个新的数据库,命名为原来数据库的名字. 步骤2:停止SQL Server 步骤3: 把老数据库的MDF 文件替换新数据库的相应的MDF 文件, 并把LDF 文件删除步骤4: 重新启动SQL Server 服务,然后运行如下命令: Use Master Go sp_configure ‘allow updates’,1 reconfigure with override Go begin tran update sysdatabases set status = 32768 where name = ‘db_name’-- Verifyone row is updated before committing commit tran 步骤5: 停止SQL 然后重新启动SQL Server 服务,然后运行如下命令: DBCC TRACEON (3604) DBCC REBUILD_LOG(‘db_name’,’c:/mssql7/data/dbxxx_3.LDF’)Go 步骤6: 停止SQL 然后重新启动SQL Server 服务,然后运行: use master update sysdatabases set status =8 where name = ‘db_name’Go sp_configure ‘allow updates’,0 reconfigure with override Go 步骤7: 运行dbcc checkdb(db_name)检查数据库的完整性.转:community.kingdee/pages/rzkdlpg/blog/archive/2007/07/09/219261.aspxtips:感谢大家的阅读,本文由我司收集整编。
sql server数据库分离失败解决方法摘要:一、SQL Server数据库分离失败的原因二、解决SQL Server数据库分离失败的方法1.检查数据库连接2.重新安装SQL Server客户端3.修复损坏的数据库4.调整数据库配置5.使用专业工具进行修复三、预防SQL Server数据库分离失败的措施正文:一、SQL Server数据库分离失败的原因SQL Server数据库分离失败可能有以下几个原因:1.数据库连接问题:在尝试分离数据库时,可能会遇到无法连接数据库的问题。
这可能是由于网络故障、防火墙设置不当或SQL Server服务未启动等原因。
2.数据库损坏:数据库可能在分离过程中出现损坏,导致分离失败。
这种情况下,需要对数据库进行修复或重新创建。
3.数据库配置问题:SQL Server数据库的配置设置可能会影响分离过程。
例如,数据库的压缩设置、日志文件大小等参数可能导致分离失败。
4.操作系统限制:在某些情况下,操作系统可能对SQL Server数据库的分离操作有限制,导致分离失败。
二、解决SQL Server数据库分离失败的方法1.检查数据库连接:确保SQL Server服务已启动,网络连接正常,防火墙设置允许SQL Server连接。
如果问题仍然存在,可以尝试重新安装SQL Server客户端。
2.重新安装SQL Server客户端:如果连接问题仍然存在,可以尝试卸载并重新安装SQL Server客户端。
在安装过程中,注意修改安装路径,避免与原有安装冲突。
3.修复损坏的数据库:使用SQL Server自带的修复工具或第三方数据库修复工具,如SQL Server Data Transformation Services(DTS),对损坏的数据库进行修复。
4.调整数据库配置:检查并修改数据库的配置设置,如压缩设置、日志文件大小等。
确保这些设置符合SQL Server分离的要求。
5.使用专业工具进行修复:如果以上方法都无法解决问题,可以尝试使用专业的数据库修复工具,如SQL Server Recovery、LepideAuditor等。
当事务日志太大时我们有时会通过分离附加的方式清除LOG文件,正常情况下,清除LOG后,附加都会成功,但是有些时候可能数据文件破坏或者分离异常等诸多原因导致无法正常附加,附加时报错:设备激活错误。
物理文件名'C:\Program Files\Microsoft SQL Server\MSSQL\data\DSCSYS_Log.LDF '可能有误。
解决方法(以数据库DSCSYS为例):1.将原先的数据文件DSCSYS_data.mdf备份到其他路径下或者重命名,建立新的数据库DSCSYS,这样就会在相同路径下新生成DSCSYS_data.mdf和DSCSYS_Log.LDF2.停止服务管理器,删除新生成的DSCSYS_Log.LDF,并将原先的数据文件DSCSYS_data.mdf恢复覆盖新生成的DSCSYS_data.mdf切记:此处不可通过分离的方式执行删除和覆盖动作,否则后续无法成功附加3.启动服务管理器,打开企业管理器,我们会看到数据库DSCSYS处于“置疑”状态,这时候不能对数据库做任何的操作4.设置数据库允许之行操作系统表,进入企业管理器,打开SQL Server属性,选择服务器设置,勾选“允许对系统目录直接进行修改”,也可以通过如下语句实现,USE MASTERGOSP_CONFIGURE 'ALLOW UPDATES',1GORECONFIGURE WITH OVERRIDE执行该语句时,有时可能因为SQL Server本身的原因,会报错配置选项'ALLOW UPDATES' 不存在,也可能是高级选项。
此时还是建议采用进入企业管理器勾选“允许对系统目录直接进行修改”5.设置DSCSYS为紧急修复模式UPDATE SYSDA TABASES SET STATUS =32768 WHERE NAME='DSCSYS' 执行该语句后我们看到执行结果为:影响1行6.重建数据库日志文件dbccrebuild_log('DSCSYS','C:\ProgramFiles\MicrosoftSQLServer\MSSQL\data\DSCSYS_Log.LDF ') 执行该语句后我们看到执行结果为:数据库'DSCSYS ' 的日志已重建。
双机热备模式下,SQL2000数据库分离,附加,置疑,单用户解除的方法首先,在任何操作之前,必须要备份数据库(重要)一、分离数据库1、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器2、展开服务器组,然后展开服务器,选中要分离的数据库3、点击鼠标右键“所有任务》分离数据库”,出现如下窗口4、点击确定,该选定的数据库就被分离。
5.分离后,把原数据库里面.MDF(主数据文件).LDF(事务日志文件)这两个文件复制到目标盘下,例:D盘下注意事项,只有“使用本数据库的连接”数为0时,该数据库才能分离。
所以分离数据库时尽量断开所有对要分离数据库操作的连接,如果还有连接数据库的程序,会出现数据库的连接状态窗口,显示正在连接此数据库的机器以及名称,点击清除按钮将从服务器强制断开现有的连接。
二、附加数据库1、在附加数据库之前,首先要移动数据库文件在附加数据库之前,您必须将与数据库关联的 .MDF(主数据文件).LDF(事务日志文件)这两个文件复制到目标硬盘下,或是同一服务器的不同硬盘目录下。
这两个文件一般位于C:\Program Files\Microsoft SQL Server\MSSQL\Data目录下。
2、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器3、展开服务器组,然后展开服务器4、右击"数据库",然后选择“所有任务》附加数据库”,弹出窗口5、输入要附加的数据库的MDF名称。
如果不确定文件位于何处,单击浏览("...")搜索。
若要确保指定的 MDF 文件正确,请单击"验证"。
在"附加为"框内,输入数据库的名称。
数据库名称不能与任何现有数据库名称相同。
指定数据库的所有者6、单击"确定"按钮。
新附加的数据库的数据库节点即创建在"数据库"文件夹中重启双机1.此时数据库分离,附加完成,必须重启一次双机修复置疑1,双机重启后,数据库置疑下面所有修复置疑的语法,在没有特别提到时,默认数据库都请选择(Master)数据库)2,修复置疑(必须在SQL的查询分析器中才能进行数据修复置疑工作)A、打开查询分析器,当数据置疑之后在查询分析器中是看不到置疑的数据库名称的,所以进入查询分析器之后,所选数据库默认(Master)数据库即可。
sqlserver数据库的分离与附加当我们⼀台电脑上创建了数据库想要转移到另外⼀台电脑上时,由于数据库处于联机状态,不能够对数据库⽂件进⾏复制和迁移,所以我们可以将数据库从服务器上分离出去,这样我们就可以复制数据库⽂件了。
然后将数据库⽂件复制到另外⼀台电脑上,再将数据库⽂件附加进去。
1.分离与附加数据库的⽅式(1)在试图下分离与附加数据库分离数据库: 右击想要分离的数据库--->任务--->分离选中红框位置,然后点击确定,刷新数据库,可以看到在数据库的对象资源管理器下已经看不到分离的数据库了。
附加数据库:选中对象资源管理器下的数据库--->右击--->附加进⼊到如下页⾯:将要附加数据库的主数据库⽂件(也就是以“.mdf”结尾的⽂件)添加进去,添加进去之后我们可以看到它会⾃动补全数据库的其他所有⽂件。
点击确定即可。
(2)使⽤存储过程分离与附加数据库:分离数据库: EXEC sp_detach_db @dbname=E_Market GO附加数据库: EXEC sp_attach_db @dbname=E_Market, @filename1='D:\program files\sqlserver2017\sqlserver workspace\E_Market_data.mdf', @filename2='D:\program files\sqlserver2017\sqlserver workspace\E_Market_log.ldf', @filename3='D:\program files\sqlserver2017\sqlserver workspace\E_Market_log1.ldf', @filename4='D:\program files\sqlserver2017\sqlserver workspace\FG_E_Market_data.ndf' GO 有⼏个⽂件就写⼏个@filename2.脱机与分离数据库的异同点不同点: 脱机:与数据库服务断开连接,但在数据库节点上还存在数据库名称 分离:将数据库从服务器上分离出去,数据库不存在,只存在相应的数据⽂件和⽇志⽂件。
数据库附加提示日志错误,总是附加不上的解决办法分类:sql 2010-09-14 19:42 35人阅读评论(0) 收藏举报备份数据文件,然后按下面的步骤处理:1.新建一个同名的数据库(数据文件与原来的要一致)2.再停掉sql server(注意不要分离数据库)3.用原数据库的数据文件覆盖掉这个新建的数据库4.再重启sql server5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)USE MASTERGOSP_CONFIGURE 'ALLOW UPDATES ',1 RECONFIGURE WITH OVERRIDE GOUPDATE SYSDATABASES SET STATUS =32768 WHERE NAME= '置疑的数据库名'Gosp_dboption '置疑的数据库名', 'single user ', 'true 'GoDBCC CHECKDB( '置疑的数据库名')Goupdate sysdatabases set status =28 where name= '置疑的数据库名'Gosp_configure 'allow updates ', 0 reconfigure with overrideGosp_dboption '置疑的数据库名', 'single user ', 'false 'Go6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,我用上面的方法后,数据库可以正常使用了,当在导入数据的时候提示回避恢复模式什么的,导入总是不成功数据库的脚本创建一个新的数据库,并将数据导进去就行了.最后就是新建库把问题数据库的记录导入到新库中,在给新数据库导入新数据,成功奥!!一下是同时收集到的资料,哈哈,多看看,也有好处嘛!只有mdf文件的恢复技术由于种种原因,我们如果当时仅仅备份了mdf文件,那么恢复起来就是一件很麻烦的事情了。
Sql Server 2008 数据库附加失败提示9004错误解决办法附加数据库对于服务器“MyDB”失败。
(Microsoft.SqlServer.Smo)执行Transact-SQL 语句或批处理时发生了异常。
(Microsoft.SqlServer.ConnectionInfo) 处理数据库'MyDB' 的日志时出错。
如果可能,请从备份还原。
如果没有可用备份,可能需要重新生成日志。
无法打开新数据库'MyDB'。
CREATE DATABASE 中止。
(Microsoft SQL Server,错误: 9004)出错的原因:数据库文件存在异常状况,有可能是因为硬盘有坏区引起的解决办法:假设数据库名称为:MyDB请按顺序执行以下步骤:1、将数据库的文件名:MyDB.mdf改名为MyDB_1.mdf;2、新建数据库:MYDB;3、关闭SQL SERVER服务;4、删除MyDB.mdb,并将MyDB_1.mdf改名为MyDB.mdf;5、启动SQL SERVER服务;6、执行以下代码:[sql]view plaincopy1.alter database MyDB set EMERGENCY2.Go3.4.alter database MyDB set single_user with rollback IMMEDIATE5.Go6.e master8.Go9.10.alter database MyDB Rebuild Log on (name = MyDB_log, filename = 'K:\DataBase\MyDB_log.ldf')11.12.alTER database MyDB set Multi_USER如果出现以下提示说已存在日志文件的话,找到日志文件MyDB_log.ldf并删除,然后重新执行第6步消息5025,级别16,状态1,第2 行文件'K:\DataBase\MyDB_log.ldf' 已存在。
当事务日志太大时我们有时会通过分离附加的方式清除LOG文件,正常情况下,清除LOG后,附加都会成功,但是有些时候可能数据文件破坏或者分离异常等诸多原因导致无法正常附加,附加时报错:设备激活错误。
物理文件名'C:\Program Files\Microsoft SQL Server\MSSQL\data\DSCSYS_Log.LDF '可能有误。
解决方法(以数据库DSCSYS为例):
1.将原先的数据文件DSCSYS_data.mdf备份到其他路径下或者重命名,建立新的数据库
DSCSYS,这样就会在相同路径下新生成DSCSYS_data.mdf和DSCSYS_Log.LDF
2.停止服务管理器,删除新生成的DSCSYS_Log.LDF,并将原先的数据文件
DSCSYS_data.mdf恢复覆盖新生成的DSCSYS_data.mdf
切记:此处不可通过分离的方式执行删除和覆盖动作,否则后续无法成功附加
3.启动服务管理器,打开企业管理器,我们会看到数据库DSCSYS处于“置疑”状态,这
时候不能对数据库做任何的操作
4.设置数据库允许之行操作系统表,进入企业管理器,打开SQL Server属性,选择服务器
设置,勾选“允许对系统目录直接进行修改”,也可以通过如下语句实现,
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1
GO
RECONFIGURE WITH OVERRIDE
执行该语句时,有时可能因为SQL Server本身的原因,会报错配置选项'ALLOW UPDATES' 不存在,也可能是高级选项。
此时还是建议采用进入企业管理器勾选“允许对系统目录直接进行修改”
5.设置DSCSYS为紧急修复模式
UPDATE SYSDA TABASES SET STATUS =32768 WHERE NAME='DSCSYS' 执行该语句后我们看到执行结果为:
影响1行
6.重建数据库日志文件
dbcc
rebuild_log('DSCSYS','C:\ProgramFiles\MicrosoftSQLServer\MSSQL\data\DSCSYS_Log.LDF ') 执行该语句后我们看到执行结果为:
数据库'DSCSYS ' 的日志已重建。
已失去事务的一致性。
应运行DBCC CHECKDB以验证物理一致性。
将必须重置数据库选项,并且可能需要删除多余的日志文件。
DBCC 执行完毕。
如果DBCC输出了错误信息,请与系统管理员联系。
7.验证数据库一致性(可省略)
dbcc checkdb( 'test ')
执行该语句后我们看到执行结果为:
CHECKDB 发现了0 个分配错误和0 个一致性错误(在数据库'DSCSYS' 中)。
DBCC 执行完毕。
如果DBCC 输出了错误信息,请与系统管理员联系。
8.设置数据为正常状态。
进入企业管理器我们发现数据库DSCSYS(只供DBO使用),若要取消该限制,则打开DSCSYS属性,“选项”页签,去掉“限制访问”,故障还原模型选择“简单”,确定即可。
9.最后一步,我们要将步骤4中的设置恢复,当然我们可以通过进入企业管理器去掉“允
许对系统目录直接进行修改”的勾,也可以通过如下语句完成
SP_CONFIGURE 'ALLOW UPDATES',0
GO
RECONFIGURE WITH OVERRIDE
切记:因直接操作系统目录是一件比较危险的动作,故此项务必记得恢复设置
10.至此,数据库已成功附加
PS:执行语句时,有时候因为数据库有设置区分大小写,所以执行时务必保证大小写字母的正确性,若没有设置区分大小写,则无关紧要。
同理,若有时候客户传数据库到本地不是BAK,而是MDF文件的话,其操作方法同上10个步骤即可成功在本地恢复数据库。
切记:若客户不能正常附加,出现上述错误,我们不可以将MDF文件传到本地附加成功后,将LDF发给客户,此操作必须在客户的数据库上才能操作成功。
一、是否修改了操作系统密码?
--修改操作系统密码,导致SQL不能启动的解决办法:
1.
我的电脑--控制面板--管理工具--服务--右键MSSQLSERVER--属性--登陆--登陆身份--选择"
本地系统帐户"
或:
2.
我的电脑--控制面板--管理工具--服务--右键MSSQLSERVER--属性--登陆--登陆身份--选择"此帐户"--密码和确认密码中输入你修改后的administrator密码.
两者的区别:
选择第一种方式,以后修改了administrator密码,不用再调整(但要求登陆操作系统的是系统管理员)
选择第二种方式,以后修改了administrator密码,还要再重复做上面的操作.
二、是否修改了计算机名?
如果是修改了计算机名,则放入SQL安装光盘,执行安装程序进行修复(修复过程自动进行,照提示操作就行了,不会破坏数据,也很快)
三、检查一下你安装的是否评估版? 如果是的话,可能已经过期,安装一个正式版吧.
检查方法是安装sql sp3,如果是评估版,会有错误提示,不能安装。