当前位置:文档之家› SQL2000数据库分离_附加_置疑_单用户解除的方法范文

SQL2000数据库分离_附加_置疑_单用户解除的方法范文

SQL2000数据库分离_附加_置疑_单用户解除的方法范文
SQL2000数据库分离_附加_置疑_单用户解除的方法范文

双机热备模式下,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)数据

库即可。(复制下面置疑语法到查询分析器中执行。

--修复数据库置疑的语法

SP_configure 'allow update',1

go

RECONFIGURE WITH OVERRIDE

go

update sysdatabases

set status=-32768

where name='zmsoftpos_cs'--数据库名称

go

dbcc rebuild_log('zmsoftpos_cs','D:\zmsoftpos_cs_log')--重新建立

日志

Go

update sysdatabases

set status=26

where name='zmsoftpos_cs'

Go

Sp_configure 'allow update',0

Go

Reconfigure with override

GO

备注:其中所有的“zmsoftpos_cs”是置疑的数据库名称,请根据客户实

际的置疑数据库进行更改名称,其他的内容不变

B、拷入置疑语法之后,请按F5执行,如果显示框内显示的内容如下表示

置疑修复成功

C、置疑修复成功之后,再到如上图的master下拉框架内就可以选择所修

复的置疑数据库了,此时置疑是修复成功了,但是并不代表此数据库就

没有问题了,请暂时不要进软件,我们还需要检查数据库有没有问题。3,检查修复置疑好的数据库是否正常

D、打开查询分析器选中修复好的数据库名称,输入“dbcc checkdb”语法,

再按F5执行,根据数据库的大小执行需要的时间不确定,请耐心等待,

执行完之后在显示框内就会显示一些相关内容如下图:

A:如上图所示,把显示框拖到最下面,如果“CHECKDB 发现了 0 个分配错误和 0 个一致性错误”即表示此数据库已经好了,不用再修复了,客户即可进入软件进行操作了。

备注:(以下的语法就不用再执行了)

修复数据库只限于DBO使用,执行以下命令(解除单用户模式)

Sp_dboption 'zmsoftpos_cs','single User', 'False'

B:如果执行“dbcc checkdb”后显示框内显示了很多红色的记录,那么表示这个数据库的有些表还有错误需要修复

2,修复过程如下:(修复过程中语法内的数据库名称都根据客户使用的数据库进行更改)

A、首先退出所有的客户端软件与企业管理器,只打开查询分析器,默认数

据库“Master”,拷入如下语法执行:

sp_dboption 'zmsoftpos_cs','single user','true'

备注:其中的数据库名称根据客户使用的数据库进行更改。此语法是把数

据库设置为“单用户模式”

B、设置为单用户模式之后,拷入如下语法进行多次执行

dbcc checkdb(zmsoftpos_cs,REPAIR_REBUILD)

备注:数据库名称根据客户使用的数据库进行更改。此语法可以多次执行,

也需要多次执行,每执行完一次拖到显示框内的最后面如果“发现的是0

个分配错误与O个一致性错误”就不用再修复了,只需执行下面语法即可

Sp_dboption 'zmsoftpos_cs','single User', 'False',

备注:下面的语法也不需执行了。

如果执行多次之后:“CHECKDB 发现了 N个分配错误和 N个一致性错误”

不会再次减少时,表示此语法修复不成功,需要进行下面的修复过程。

C、再把下面语法拷进入,进行多次执行:

dbcc checkdb ('zmsoftpos_cs',REPAIR_allow_data_loss)

备注:此语法的执行与上面“ B ”点中执行的语法过程一样,执行到此步

骤百分之九十以上的数据库都是可以修复的。如果执行到最后分配错误与

一致性错误还不减少,那么执行下面的”D”操作

D、拷入如下语法执行:

exec sp_MSforeachtable 'dbcc dbreindex(''?'')'

备注:执行此语法时,此时的“ Master ”数据库名称一定要选择修复的

数据库名称,执行才会生效。执行完成之后,再使用“dbcc checkdb ”

语法再检查一次,如果是“发现的是0个分配错误与O个一致性错误”表

示修复成功,如果是:“CHECKDB 发现了 N个分配错误和 N个一致性错误”

表示此数据库坏得很历害,使用此方法已不能修复成功了。必面使用其他

方法了。最后不管修复成不成功都要使用下面的语法结尾:

Sp_dboption 'zmsoftpos_cs','single User', 'False'

备注:把之前的单用户模块解除掉

3,在上面的修复过程中不能解决的问题,再使用BCP命令语法进行修复

例:以超市版本为例,超市版本的数据库名称为:zmsoftpos_cs

A、打开帐套管理新建一个相同的帐套,数据库名称就会是

zmsoftpos_cs_01的帐套名称,新建好之后,一定要使用后台登录进去一

次,再退出后台。

B、打开查询分析器,选择好帐套数据库“zmsoftpos_cs”把下面的语法拷

进入按F5执行:

select 'if EXISTS(SELECT * FROM zmsoftpos_cs_01..sysobjects WHERE

name = ' + char(39) + name + char(39) + ')'+char(13)+ 'delete from

zmsoftpos_cs_01..'+name from zmsoftpos_cs..sysobjects where

type='U'and name not in

('system_sheet_setup','system_mode_file','system_image') order by

name

执行完成之后在下面的显示框架内就会出现如下语法:

使用鼠标左击一下图片中红色圆圈内的按钮,就会选中下面的语法,然后再到红色圆圈内的按钮上点鼠标右键,点击另存为,就会出现如下对话:

其中的保存类型一定要先选择所有文件,然后再到文件名处,填写好如图片中输入的名称,然后点保存!

C、以上的语法另存为之后,再拷入以下的语法执行:

select 'bcp zmsoftpos_cs..'+name+' out f:\data\'+name+'.txt -c -S127.0.0.1 -Usa_ -P7001' from zmsoftpos_cs..sysobjects where xtype='U'

and name not in ('system_sheet_setup','system_mode_file','system_image') order by name

备注:以上的语法中有一个文件存放路径,“f:\data\”此路径根据实际的情况创建,然后更改过来,再执行。执行之后,按照上面的方法,点击另存为如下图:

其中的保存类型也要先选择所有文件,然后再到文件名中填入如图上的名称:导出数据.bat文件名,然后再点保存,保存的路径一定要是上面语法中设置中文件夹的路径。

D、此时再选择超市版本的zmsoftpos_cs_01的帐套名称,然后在左上角的文件中打开找到之前保存的“删除数据.sql”的文件,把其中的

”delete from”全部替换成“truncate table”,然后再按F5执行。

E、把D点的语法执行完成之后,还是选择zmsoftpos_cs.01帐套再执行以下的语法:

select 'bcp zmsoftpos_cs_01..'+name+' in f:\data\'+name+'.txt -c -S127.0.0.1 -Usa_ -P7001'

from zmsoftpos_cs..sysobjects where xtype='U' and name not in ('system_sheet_setup','system_mode_file','system_image') order by name

其中的路径f:\data\一定要与“C”点中的路径一致。按F5执行之后,按照C点的步骤,把显示框内的语法另存为“导入数据.bat”的文件名,保存到语法的路径文件夹内。

F、以上的步骤操作完成之后,打开以上语法存放的径路,先双击导出数据文件,双击之后就会出现如下对话框架:

此界面表示,正在从原帐套里面把数据导出来,请您静心等待,导出完成之后此界面会自动关闭的。

等待完成之后,再双击”导入数据.bat”文件,也会出现如上的界面。也请您静心等待,导出完成之后界面也会自动关闭。

G、以上的步骤都完成之后,请把zmsoftpos_cs_01的帐套,备份一次,然后把zmsoftpos_cs与zmsoftpos_cs_01两个帐套都删掉,然后新建超市版本的帐套,把恢复备份的zmsoftpos_cs_01文件,此时您的数据库修复的工作就大功告成了。。

SQL数据库置疑的解决方法

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、单击"确定"按钮。新附加的数据库的数据库节点即创建在"数据库"文件夹中

数据库分离与附加操作流程

数据库分离与附加操作流程

RYAccountsDB,RYEducateDB,RYGameMatchDB,RYGameScoreDB,RYNativeWebDB,RYPlatformDB,RYPlatformManagerDB,RYRecordDB,RYTreasureDB 分离与附加 概念: 1.后的数据库文件可以复制到任何需要该文件的系统上。比如在A机器上创建的数据库, 可以复制到B电脑上。分离后,在数据库列表将看不到该数据库,不能再被SqlServer管理和使用。但该数据库的文件(.MDF)和对应的日志文件(.LDF)完好无损。分离成功后,我们就可以把该数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘中作为备份保存。 2、附加数据库就是将一个备份磁盘中的数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到需要的计算机,并将其添加到某个SQL Server 数据库服务器中,由该服务器来管理和使这个数据库。 一.附加数据库(以RYAccountsDB数据库为例) 步骤一,在数据库操作界面,数据库右键,点击附加,选择需要附加的数据库文件式为:据库

名.mdf, 点击附加,弹出如下图界面

点击添加,弹出如下界面,该界面可以选择要附加的数据库文件。默认打开的是安装SqlSever 生成的DaTa文件夹(C:\Program Files\Microsoft SQLServer\MSSQL10_50.SQLEXPRESS\MSSQL\DAT A)图: 如果所建立的数据库没有保存在默认路径下,可以把这里的盘符文件夹折叠起来,再选择自己存放的数据库文件,如下图 步骤二: 选择要附加的数据库文件路径,默认打开的是主数据文件(以.mdf结尾的文件),切换文件类型到*所有文件,可以看到当前文件夹下的所有以.mdf和.ldf或者.ndf结尾的文件,这些都是

exchange装入数据库失败解决办法.pdf

Microsoft Exchange 错误 装入数据库“xxxx”失败。 xxxx 失败 错误: Exchange 无法装入指定的数据库。指定的数据库: WIN2003\xxxx\xxxx;错误代码: MapiExceptionCallFailed: Unable to mount database. (hr=0x80004005, ec=-515) 首先声明我用的是exchange server 2007 还有类似的比如544、455错误等,主要是因为某种原因数据库的日志文件丢失或者错误造 成的。可以通过以下方法来解决。 这里要使用到eseutil.exe这个程序,他在ex的安装目录下的\bin\eseutil.exe 好下面我们来操作来恢复日志文件。 首先关掉杀毒软件,这主要是为了防止它扫描ex安装的目录造成文件锁定之类的问题,然 后在出问题的数据库所在的的目录,比如 \exchange\mailbox\firststroagegroup目录下是数据库所在目录,那么在这个文件夹上 运行cmd,然后再命令窗口中输入 eseutil -p "xxx.edb" ; 然后运行 eseutil -mh "xxx.edb",在显示出来的结果中查看状态 = 干净关闭或者state=cleanshut;然后我们进行下一步运行eseutil /r e00 ,运行后会看到很多log文件,这里最后会提示你最后一个log文件是比如 0ad,缺少了log文件0ae,这说明丢失了0AE.LOG这个文件,不要紧,进行下面操作, (注意)虽然进行后会丢失0ad之后的数据,但是也比加载不了数据库好吧!来吧继续 吧: 找到\exchange\mailbox\firststroagegroup目录下最新的LOG文件,将其改名为LOG文件的最前三个字符,比如LOG文件全名是“e000000000ad”那 么把它改成“e00”,同理如果是“e010000000ad”那么把它改成“e01”,这时你会发现本 文件夹有E01这个文件重复了,备份好原来的那个文件,然 后删除它,再吧0AD改名成E00,好啦大功告成了,去EMC里加载这个数据库试试,是不 是可以了奶? 哈哈其他数据库也这么操作,OWA又可以正常访问了嘎嘎! 下面是微软给出的官方说法,其实跟我的一样,只不过是绕口点: 使用下列方法之一恢复 Exchange 日志文件: 方法 1:如果 Exchange 日志文件被隔离 将 Exchange 日志恢复到包含生产日志文件的文件夹。 启动"Microsoft Exchange 信息存储"服务。如果不缺少任何其他日志文件,将装入数据 库。如果缺少其他日志文件,请查看缺少的日志文件是否位于 防病毒程序的隔离文件夹中。如果日志文件不在隔离文件夹中,请参阅方法 2。 如果 Exchange 日志文件被删除,则必须通过备份还原存储组数据库。然后必须重播日志 文件。若要还原可用的数据库,请执行下列步骤:

数据库分离与附加操作流程

RYAccountsDB,RYEducateDB,RYGameMatchDB,RYGameScoreDB,RYNativeWebDB,RYPlatformDB,RYPlatformManagerDB,RYRecordDB,RYTreasureDB 分离与附加 概念: 1.后的数据库文件可以复制到任何需要该文件的系统上。比如在A机器上创建的数据库,可以复制到B电脑上。分离后,在数据库列表将看不到该数据库,不能再被SqlServer管理和使用。但该数据库的文件(.MDF)和对应的日志文件(.LDF)完好无损。分离成功后,我们就可以把该数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘中作为备份保存。 2、附加数据库就是将一个备份磁盘中的数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到需要的计算机,并将其添加到某个SQL Server数据库服务器中,由该服务器来管理和使这个数据库。 一.附加数据库(以RYAccountsDB数据库为例) 步骤一,在数据库操作界面,数据库右键,点击附加,选择需要附加的数据库文件式为:据库名.mdf, 点击附加,弹出如下图界面

点击添加,弹出如下界面,该界面可以选择要附加的数据库文件。默认打开的是安装SqlSever 生成的DaTa文件夹(C:\Program Files\Microsoft SQLServer\MSSQL10_50.SQLEXPRESS\MSSQL\DATA)图: 如果所建立的数据库没有保存在默认路径下,可以把这里的盘符文件夹折叠起来,再选择自己存放的数据库文件,如下图 步骤二: 选择要附加的数据库文件路径,默认打开的是主数据文件(以.mdf结尾的文件),切换文件类型到*所有文件,可以看到当前文件夹下的所有以.mdf和.ldf或者.ndf结尾的文件,这些都是数据库文件,附加的时候只需要选择需以.mdf结尾的目标文件,日志文件(.ldf结尾的文件)会随着主数据文件(.mdf结尾的文件)的附加成功而自动附加的。

SQLServer2000数据库置疑的解决方法

SQLServer2000数据库置疑的解决方法sql2000中MSDB数据库置疑状态的解决方法 问题:我的SQL Server 2000的MSDB数据库,因为不正常关机,造成了置疑状态,请问采用什么方法能够弥补,解决方法一:你可以采用以下的代码进行修复: USE MASTER GO SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE GO UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='msdb' Go sp_dboption 'msdb', 'single user', 'true' Go DBCC CHECKDB('msdb') Go update sysdatabases set status =28 where name='msdb' Go sp_configure 'allow updates', 0 reconfigure with override Go sp_dboption 'msdb', 'single user', 'false' Go 解决方法二:MSDB数据库解决过程 难点:由于MSDB数据库不能删除,将其文件拷出来,再次附加数据库,但新的不能同名,遇到了困难。附加数据库不能叫MSDB,也就是

1:先停止整个数据库,将该数据库的文件msdbdata.mdf和msdblog.ldf拷贝粘贴出来到另一个目录下。 2:将以上的文件再拷贝到另一个目录下,也就是说复制两次。 3:选择数据库右击鼠标 --》所有任务--》附加数据库将复制出的一个备份文件附加上去,其中,数据库名称叫MSDB1,用户是SA或ADMINISTRATOR。 4:将MSDB1数据库备份,备份成一个文件,当时我的叫MSDB。BAK。 5:选择置疑的数据库MSDB,选择恢复数据库,将刚才备份出来的数据库强行恢复到MSDB。 6:问题解决,MSDB库又能正常使用。 完成后赶快将数据库再次备份一次。呵呵。 另附:数据库置疑解决办法 还有,现在修复好了,但昨天的数据丢失了,以前的数据倒还在。难道昨天发生了什么异常情况, 我这里一篇解决数据库质疑的文档,提供给大家,日后备用: SQL SERVER数据库置疑后恢复步骤 1( 恢复步骤: a.将smlog_log.ldf文件备份到其它目录下; b.将源目录下的smlog_log.ldf文件改名为smlog_log_bak.ldf; c.执行以下语句修改数据库的状态: use Master go update sysdatabases set status=32768 where name=’数据库名称’ --修改状态 go shutdown with nowait --停止数据库服务器 go

连接数据库出错处理办法

https://www.doczj.com/doc/468121396.html,没学好,又要学jsp了.... 1. 安装:SQL Server 2000 Driver for JDBC Service Pack 3 下载安装JDBC SP3 https://www.doczj.com/doc/468121396.html,/downloads/details.aspx?familyid=07287B11-0502-461 A-B138-2AA54BFDC03A&displaylang=en 里面的SetUp.exe 按照提示安装可以了.成功后有三个文件要使用: c:\program files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar c:\program files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar c:\program files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar 2.测试代码 新建类文件Connect.java. package test; import java.*; import java.sql.Driver; public class Connect{ private java.sql.Connection con = null; private final String url = "jdbc:m icrosoft:sqlserver://"; private final String serverName= "localhost"; private final String port Number = "1433"; private final String databaseName= "DBtest"; private final String userName = "sa"; private final String password = "123456"; // Informs the driver to use server a side-cursor, // which permits m ore than one active statem ent // on a connection. private final String selectMethod = "cursor"; // Constructor public Connect(){} private String getConnectionUrl(){ return

数据库的分离和附加

数据库的分离和附加 因为我们机房机器装有保护卡,我们本次实验创建的数据库及它所包含的表等对象,下次实验还要重新创建。SQL Server提供数据库的分离和附加的功能,可以将本次实验创建的数据库对象从数据库服务器分离,拷贝到U盘。下次实验再拷贝回磁盘,附加到数据库服务器上。分离和附加一对互逆的功能。 1、数据库的分离 将我们创建的一个用户数据库从数据库服务器分离出来,变成独立的文件.mdf数据文件和.ldf日志文件。我们可以把这些文件拷贝到我们的U盘。 2、数据库的附加 将.mdf数据文件和.ldf日志文件拷到一个目录下,附加到数据库服务器上。在SQL Server Management Studio的对象资源管理器就可以使用这个用户数据库了。和数据库的分离是互逆的过程。 具体操作步骤如下: 1、数据库的分离 如图1,在SQL Server Management Studio的对象资源管理器中,选中cpxs数据库对象,单击右键,在弹出的快捷菜单选“任务-分离”。 图1

如图2,在弹出的“分离数据库”对话框,单击确定。 图2 如图3,在SQL Server Management Studio的对象资源管理器,选中你本地的数据库服务器单击右键,点刷新。这样你再观察SQL Server Management S tudio的对象资源管理器,就没有这个用户数据库对象了。 图3

如图4,经过分离,cpxs数据库所对应的物理文件还是存在在硬盘上,选中.mdf数据文件和.ldf日志文件,就可以复制或者剪切到U盘或其他目录。 图4 2、数据库的附加 如图5在SQL Server Management Studio的对象资源管理器,选中数据库,单击右键,点附加。 图5

SQL server 2008 数据库置疑的处理办法

SQL server 2008 数据库置疑的处理办法 1 把问题数据库备份后直接删除 停掉SQLSERVER服务,把服务器上出问题的数据库, 假设名称为ErrorDB的数据库文件及日志文件备份到其他目录,然后直接将其删除,把其数据库文件及日志文件也删除 2 新建同名数据库 启动SQLSERVER服务,新建同名数据库ErrorDB,文件目录和日志和原来一致 3 用备份的数据库文件替换新的数据库文件 停掉SQLSERVER服务,把备份的数据库文件替换新的数据库文件(只替换数据库文件,不替换日志文件) 启动SQLSERVER服务,打开数据库,这时数据库应该是不能访问的 -------------------设置应急模式、单用户模式、检查修复数据,取消单用户模式 ---------------------- 4 将数据库设置为应急状态 alter database ErrorDB set emergency 执行后,为了保险起见,重新停止、开启的SQLSERVER服务 再打开数据库,已经可以看到里面的内容了,如表,视图,存储过程等 数据库名称后有紧急标志,能看到数据库结构,但无法进行备份等操作 5 将数据库设置为单用户模式 ALTER DATABASE ErrorDB SET SINGLE_USER 6 对数据库进行检查修复 dbcc checkdb(EIMSDb,REPAIR_ALLOW_DATA_LOSS) dbcc checkdb(EIMSDb,REPAIR_REBUILD) 操作后,仍然停止启动SQLSERVER服务(不确定是否需要,我只是为了想无干扰查看执行后的数据库状况)重新打开数据库,已经是正常状态了,没有应急提示了 7 取消单用户模式 exec sp_dboption EIMSDb, N'single', N'false'

SQL数据库置疑解决方案(原因分析、预防措施、修复方法)附图

SQL数据库置疑解决方案 一、数据库置疑产生的原因 1、SQL Server所在分区空间是否够? 数据库文件大小是否达到最大文件限制? FAT32的格式只支持4G以内的文件。 2、数据库文件损坏或被非正常删除时出现这种情况。 3、病毒防火墙的扫描也会引起数据库置疑。 4、当SQL Server启动时,将会尝试获得对数据库文件的排他访问权,如果此时该文件被其他程序占用,或者遗失,数据库将会被标记为置疑。 5、电脑非法关机也会造成数据库置疑。 6、电脑磁盘有坏道有可能造成数据库置疑。 二、数据库置疑的预防 1、数据库存放的盘符,空间是否够大,经常检查盘符的空间。 2、数据库存放的盘符的格式设置为NTFS格式。 3、进行病毒清除时,尽量把SQL服务停掉,再进行检查。 4、尽量减少非正常关机。 5、建议客户购买后备电源。 6、给客户实施软件之后一定要做好自动备份。 7、建议客户每隔一定时间手动备份一次。 三、数据库置疑的修复 1、正常的备份、SQL数据库恢复方式 正常方式下,我们要备份一个数据库,首先要先将该数据库从运行的数据服务器中断开,或者停掉整个数据库服务器,然后复制文件。 卸下数据库的命令:Sp_detach_db 数据库名 连接数据库的命令:Sp_attach_db或者sp_attach_single_file_db s_attach_db [@dbname =] ′dbname′, [@filename1 =] ′filename_n′[,...16] sp_attach_single_file_db [@dbname =] ′dbname′, [@physname =] ′physical_name′ 使用此方法可以正确恢复SQL Sever7.0和SQL Server 2000的数据库文件,要点是备份的时候一定要将mdf和ldf两个文件都备份下来,mdf文件是数据库数据文件,ldf是数据库日志文件。 例子: 假设数据库为pdm,其数据文件为pdm_data.mdf,日志文件为pdm_log.ldf。 下面我们讨论一下如何备份、恢复该数据库。 卸下数据库:sp_detach_db 'pdm' 连接数据库:sp_attach_db 'pdm','C:\Program Files\Microsoft SQL Server\MSSQL\Data\pdm_data.mdf','C:\Program Files\Microsoft SQL Server\MSSQL\Data\pdm_log.ldf'

S Q L 数据库出现置疑怎么解决

SQL数据库置疑的解决方法 首先,在任何操作之前,必须要备份数据库(特别注意) 一、分离数据库 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、单击"确定"按钮。新附加的数据库的数据库节点即创建在"数据库"文件夹中

SQL SERVER 分离和附加数据库详解

SQL SERVER 分离和附加数据库详解 一.Sql语句命令方式 RESTOREHEADERONLY FROMDISK=N'f:/Test.bak' 返回包含特定备份设备上所有备份集的所有备份标头信息的结果集 分离数据库 USE[master] GO EXECmaster.dbo.sp_detach_db@dbname=N'xiantest' GO 或者 exec sp_detach_db xiantest 或 exec sp_detach_db@dbname='xiantest' 附加数据库 USE[master] GO CREATEDATABASE[xiantest]ON (FILENAME=N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\xiantest.mdf'), (FILENAME=N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\xiantest_log.ldf') FORATTACH GO 或 exec sp_attach_db xiantest,@filename1=N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\xiantest.mdf', @filename2=N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\xiantest_log.ldf' exec sp_attach_db xiantest,N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\xiantest.mdf',

SQL数据库的备份与还原、分离与附加

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):

Mysql常见错误提示及解决方法

Mysql常见错误提示及解决方法 130 :文件格式不正确。(还不是很清楚错误的状况) 145 :文件无法打开。 1005:创建表失败。 1006:创建数据库失败。 1007:数据库已存在,创建数据库失败。 1008:数据库不存在,删除数据库失败。 1009:不能删除数据库文件导致删除数据库失败。 1010:不能删除数据目录导致删除数据库失败。 1011:删除数据库文件失败。 1012:不能读取系统表中的记录。 1016:文件无法打开,使用后台修复或者使用phpmyadmin 进行修复。 Quote: 开始=>所有程序=>附件=>命令提示符 输入mysql 所在硬盘盘符 cd mysql 所在目录 cd bin 输入myisamchk -f D:usr/local/mysql/data/bbs/PW_members.MYI ps : D:usr/local/mysql/data/bbs 是你论坛数据库的路径 -f 根据具体情况选择,一般也可以选择-r 注意你的系统C盘或放数据库的硬盘空间是否足够,一般小于1G 很容易出现错误。或用mysqlcheck命令进行修复。具体的方法:利用命令行进入mysql/bin目录,执行mysqlcheck -o -r phpwind -uroot -p 其中phpwind是你数据库的名称,root是你的数据库用户名,然后会提示你输入密码。然后就会修复你的数据库。 1017:服务器非法关机,导致该文件损坏。 1020:记录已被其他用户修改。 1021:硬盘剩余空间不足,请加大硬盘可用空间。 1022:关键字重复,更改记录失败。

1023:关闭时发生错误。 1024:读文件错误。 1025:更改名字时发生错误。 1026:写文件错误。 1030:可能是服务器不稳定。(具体原因不是很清楚) 1032:记录不存在。 1036:数据表是只读的,不能对它进行修改。 1037:系统内存不足,请重启数据库或重启服务器。 1038:用于排序的内存不足,请增大排序缓冲区。 1040:已到达数据库的最大连接数,请加大数据库可用连接数。 Quote: 在my.ini 修改max_connections=100为max_connections=1000或更大,重启mysql 1041:系统内存不足。 1042:无效的主机名。 1043:无效连接。 1044:数据库用户权限不足,请联系空间商解决。 1045:数据库服务器/数据库用户名/数据库名/数据库密码错误,请联系空间商检查帐户。Quote: 方法:确保论坛data目录下的sql_config.php用户名与密码都正确.如果用户忘记了数据库的密码,可以按如下方式进行密码的修改: 如果MySQL 正在运行,首先停止。 启动MySQL :bin/safe_mysqld --skip-grant-tables & 就可以不需要密码就进入MySQL 了。 然后就是 >use mysql >update user set password=password("new_pass") where user="root"; >flush privileges; 1046:没有选择数据库。 1048:字段不能为空。

食通天SQL SERVER数据库置疑及修复

食通天SQL SERVER数据库置疑及修复 数据库置疑处理 提要:在数据库置疑或者修复的处理过程中,须先将文中的数据库更改为真实的数据库名称. 数据库置疑修复处理完成后,需执行第二步骤,使用DBCC语句对数据库进行检测并修复错误. 对于损坏的数据库,可参照数据库修复处理方法进行处理. 步骤1: 停止SQL服务管理器,将原数据文件拷贝出来进行备份,然后将原数据库删除,使用思迅数据库安装程序创建一个新的数据库。 步骤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 = 'hbfsv8' --Verify one row is updated before committing commit tran 步骤5:

停止SQL然后重新启动SQL Server服务,然后运行如下命令: DBCC TRACEON(3604) DBCC REBUILD_LOG('db_name','C:\ProgramFiles\Microsoft SQL Server\MSSQL\Data\hbfsv8_log.ldf') Go --注:此处的db_name一定要更换为需要修复的数据库名称,比如此实例中的hbfsv8 步骤6: 停止SQL然后重新启动SQL Server服务,然后运行: use master update sysdatabases set status = 8 where name = 'hbfsv8' Go sp_configure 'allow updates', 0 reconfigure with override Go 步骤7: 运行dbcc checkdb(hbfsv8) 检查数据库的完整性

安装数据库过程中常见问题解决方法

一、装数据库时出现command line option syntax error!type command /? for help错误 当安装程序安装到: 安装程序正在安装ms数据访问组件 时,屏幕出现错误提示: command line option syntax error,type command/? for help 然后点确定继续,结果到: 安装程序正在安装HTML帮助 时,屏幕又出现标题为html help 1.32 update错误警对话框提示:command line option syntax error,type command/? for help 然后我再点确定继续,安装程序开始复制文件,复制完文件后又出现错误提示: 无法找到动态连接库sqlunirl.dll(sqlunirl.dll是MDAC的一个组件),于指定路径 点确定后安装程序停止运行,让查看安装日志 解决方法: 引起这问题的原因是,SQLServer的安装文件,放在中文目录下了. 将SQLServer的安装文件,拷到英文目录,安装就OK 比如将: D:\软件\Sqlserver 中的"软件"去掉.

注: MDAC (Microsoft Data Access Components)是微软数据库访问组件,Netpise和许多利用数据库的软件都需要操作系统安装MDAC。很多用户的操作系统中已经存在了MDAC,有些是操作系统内置的、有些是其它应用程序安装的。 补充方法(未测试) 1.重装MDAC 2.修改注册表: HKEY_LOCAL_MACHINE\SOFTW ARE\Microsoft\Windows\CurrentVersion\ setup 删除ExceptionComponents 重启,安装. 很多时候不需要第一步操作 二、解决由于sql2000日志文件引起的“置疑”。 日志有错误--------重新附加提示日志有错误。 日志文件丢失-----丢失了.ldf文件,只有.mdf文件的数据库重建。 步骤: 一、备份“置疑”数据库的数据文件,因为日志文件.ldf出错,可以只备份.mdf 文件。 二、打开企业管理器(SQL Server Enterprise Manager),删除“置疑”数据库,如果提示删除错误,可以重启数据库服务器,然后再试。 三、在企业管理器中,新建同名数据库(假如数据库为test),注意建立的数据库名称,还有数据文件名要保持和原数据库一致。 四、停止数据库服务器。 五、将刚才新建数据库生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库.mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。

用友软件数据库质疑处理办法

SQL Server数据库错误9003(LSN无效)的处理方法 国内一些ERP、财务软件一般后台都使用SQL Server的数据库,SQL Server 作为一个中大型数据库是不应该在桌面系统上运行的,小规模企业一般不使用专用服务器,大部分直接使用XP系统+桌面引擎MSDE作为SQL数据库的后台服务。这种方案当然就谈不上什么稳定性和可靠性了,最糟的是在死机、重启或意外掉电后数据库会出现打不开的现象,其中错误9003:LSN(xx:xx:x)无效是最常见的问题。 这种情况是数据库的日志文件(LDF)数据不同步造成的,可以根据数据库MDF文件重建日志文件修复。 以下是详细步骤,有颜色标注的部分应该按本机的实际名称进行修改。 假设损坏的数据库名称是MYDB_001,对应的数据库名称是MyDB_Data.MDF,日志文件是MyDB_Log.LDF,数据库所在文件夹为D:\MYDATA\; 1、先把损坏的数据库对应的文件MyDB_Data.MDF和MyDB_Log.LDF备份到 别的地方; 2、在SQL Server和企业管理器中创建一个与损坏数据库同名的数据库, 对应的数据库文件名称也是MyDB_Data.MDF和MyDB_Log.LDF; 3、停止SQL Server服务; 4、删除第2步新建数据库产生的MyDB_Log.LDF文件;

5、用损坏的数据库数据文件MyDB_Data.MDF覆盖第2步新建数据库产生的MyDB_Data.MDF文件 6、启动SQL Server服务; 7、进入企业管理器,刷新数据库状态,此时数据库MYDB_001状态为“置疑”; 8、在SQL Server服务器属性中设置SQL Server数据库服务器“允许对系统目录直接修改” 9、从SQL企业管理器的“工具”菜单启动“SQL 查询分析器”; 10、输入以下代码并运行使MYDB_001数据库进入紧急修复模式:

数据库被置疑后的解决方法

数据库被置疑后的解决方法 A.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager 里面建立。 B.停掉数据库服务器。 C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据 库数据文件test.mdf。 D.启动数据库服务器。此时会看到数据库test的状态为"置疑"。这时候不能对此数据库进行任何*作。 E.设置数据库允许直接*作系统表。此*作可以在SQL Server Enterprise Manager里面选择数据库服 务器,按右键,选择"属性",在"服务器设置"页面中将"允许对系统目录直接修改"一项选中。也可以 使用如下语句来实现。 use master go sp_configure 'allow updates',1 go reconfigure with override go F.设置test为紧急修复模式 update sysdatabases set status=-32768 where dbid=DB_ID('test') 此时可以在SQL Server Enterprise Manager里面看到该数据库处于"只读\置疑\脱机\紧急模式"可以 看到数据库里面的表,但是仅仅有系统表 G.下面执行真正的恢复*作,重建数据库日志文件 dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf') 执行过程中,如果遇到下列提示信息: 服务器: 消息5030,级别16,状态1,行1 未能排它地锁定数据库以执行该*作。 DBCC 执行完毕。如果DBCC 输出了错误信息,请与系统管理员联系。 说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL Server Enterprise Manager 打开了test库的系统表,那么退出SQL Server Enterprise Manager就可以了。 正确执行完成的提示应该类似于: 警告: 数据库'test' 的日志已重建。已失去事务的一致性。应运行DBCC CHECKDB 以验证物理一致 性。将必须重置数据库选项,并且可能需要删除多余的日志文件。 DBCC 执行完毕。如果DBCC 输出了错误信息,请与系统管理员联系。

分离附加数据库失败解决办法

当事务日志太大时我们有时会通过分离附加的方式清除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 ') 执行该语句后我们看到执行结果为:

数据库服务错误error26解决方法

错误提示:在建立与服务器的连接时出错。在连接到SQL Server 2005 时,在默认的设置下SQL Server 不允许进行远程连接可能会导致此失败。(provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错) 有段时间遇到上面问题,在网上查找了许多方案,但那些方案都没能够解决问题,在解决其他问题时,发现一些其他端倪,返回来解决此问题,将该问题解决。总结了我的解决方案(即下文中的方案一),并且我把在网上搜索来的解决方案也汇总了一下,与大家分享。 分析: “在建立与服务器的连接时出错”说明与数据库服务器有关; “在默认的设置下SQL Server 不允许进行远程连接可能会导致此失败。”说明与权限有关;“provider: SQL 网络接口”说明当前登录身份是网络接口; “error: 26 - 定位指定的服务器/实例时出错”说明定位不上指定的服务器实例。 方案一: 1、查看数据库服务是否存在; 2、右击数据库实例服务--属性—登陆,将登陆身份改为本地系统(local system); 3、启动服务; 4、若启动、暂停、停止等选项都是灰色,请查看启动类型是不是“禁用”了,若“禁用” 了,请改为“自动”,然后启动服务; 方案二: 首先请确认SQL SERVER EXPRSS已安装到本地计算机上,并且SQL SERVER (SQLEXPRESS)服务已经成功启动。如果问题仍然存在,可以尝试开始->所有程序->MS SQL Server2005->配置工具->MS SQL Server2005外围应用配置器-> “服务和连接的外围应用配置器”,然后将“远程连接”配置为“同时使用TCP/IP 和named pipes”。Analysis Services下远程连接选择"本地连接和远程连接",应用后重启。 由于启动用户实例的进程时出错,导致无法生成SQL Server 的用户实例。该连接将关闭。将连接字符串中的“User Instance=True”修改为“User Instance=False”即可。 更改数据库文件的Everyone修改权限,在windows xp中有两个方法可以修改它: 1,在"我的电脑"窗口中点"工具",选择"文件夹"选项,选择"查看"选项,在高级设置中将使用简单文件共享复选框中的小勾勾掉。然后选定数据库文件,你就可以发现多了一个安全选项,点击它,选择everyone用户组,如果没有,你可以自行添加它。然后更改它的控制权限。 2,你也可以重新启动计算机,在进入系统时按下F8,选带网络连结的安全模式,然后你选定数据库文件,这时也有一个安全选项,你按照上面的方法也可以完成同样的功能。 注:该方法解决以下问题: 说明: 执行当前Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 尝试为文件项目名

相关主题
文本预览
相关文档 最新文档