数据库
sql 2000数据库置疑的解决方法?
一、sql 2000数据库置疑的解决方法?
备份数据文件,然后按下面的步骤处理:
1.新建一个同名的数据库(数据文件与原来的要一致)
2.再停掉sql server(注意不要分离数据库)
3.用原数据库的数据文件覆盖掉这个新建的数据库
4.再重启sql server
5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)
6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用
数据库的脚本创建一个新的数据库,并将数据导进去就行了.
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名'
Go
sp_dboption '置疑的数据库名', 'single user', 'true'
Go
DBCC CHECKDB('置疑的数据库名')
Go
update sysdatabases set status =28 where name='置疑的数据库名'
Go
sp_configure 'allow updates', 0 reconfigure with override
Go
sp_dboption '置疑的数据库名', 'single user', 'false
假设数据库为TEST:
按以下步骤执行
A.设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go
B.设置test为紧急修复模式
update sysdatabases set status=-32768 where dbid=DB_ID('test')
此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表
C.下面执行真正的恢复操作,重建数据库日志文件
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 输出了错误信息,请与系统管理员联系。
此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。
D.验证数据库一致性(可省略)
dbcc checkdb('test')
一般执行结果如下:
CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'test' 中)。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
E.设置数据库为正常状态
sp_dboption 'test','dbo use only','false'
如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。
F.最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager里面恢复,也可以使用如下语句完成
sp_configure 'allow updates',0
go
reconfigure with override
go
上面的语句操作步骤有点问题:
应该如下:
A.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager里面建立。
B.停掉数据库服务器。
C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.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 输出了错误信息,请与系统管理员联系。
此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。
H.验证数据库一致性(可省略)
dbcc checkdb('test')
一般执行结果如下:
CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'test' 中)。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
I.设置数据库为正常状态
sp_dboption 'test','dbo use only','false'
如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。
J.最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager里面恢复,也可以使用如下语句完成
sp_configure 'allow updates',0
go
reconfigure with override
go
二、SQL数据库置疑怎么办?
您好,是这样的:
1.首先确认已经备份了.mdf和.ldf文件。
2. 在SQL Server中新建一个同名的数据库,然后停止SQL Server服务。
3. 用原有的.mdf和.ldf文件覆盖新建数据库对应的.mdf和.ldf文件。
4. 重新启动SQL Server服务,这是应该会看到这个数据库处于置疑(Suspect)状态。
5. 在SQL查询分析器中执行以下命令,以允许更新系统表:use mastergosp_configure "allow updates",1reconfigurewithoverridego。
6. 将这个数据库置为紧急模式:update sysdatabases set status = 32768 where name="db_name"go。
7. 使用DBCC CHECKDB命令检查数据库中的错误:DBCC CHECKDB("db_name")GO。
8. 如果DBCC CHECKDB命令失败,请转至第10步,否则先将数据库置为单用户模式,再尝试对其进行修复:sp_dboption "db_name","singleuser","true"DBCCCHECKDB("db_name",REPAIR_ALLOW_DATA_LOSS)GO如果在执行DBCCCHECKDB("db_name",REPAIR_ALLOW_DATA_LOSS)命令时提示说数据库未处于单用户模式状态的话,则重新启动SQLServer服务,然后继续尝试。
9. 如果DBCCCHECKDB("db_name",REPAIR_ALLOW_DATA_LOSS)命令失败,请转至第10步,否则若成功修复了数据库中的错误:重新执行DBCC CHECKDB("db_name")命令,确认数据库中已没有错误存在。清除数据库的置疑状态:sp_resetstatus "db_name"清除数据库的单用户模式状态:sp_dboption "db_name","single user","false"重新启动SQL Server服务,如果一切正常的话,则数据库已经成功恢复。
10.如果以上步骤都不能解决问题的话,请参考附件中的文档尝试通过重建事务日志来恢复数据库中的数据。如果您只有MDF文件,问题就更加复杂一些,我们需要直接重建事务日志了: 1. 在SQL Server中新建一个同名的数据库,然后停止SQL Server服务。 2. 用原有的ldf文件覆盖新建数据库对应的.mdf文件,将其日志文件(.ldf)删除。 3. 启动SQL Server服务,并将数据库置为紧急模式(同上: 步骤5和步骤6)。 4. 停止并重新启动SQL Server服务。 5. 执行以下命令重建数据库日志文件:(下面是个示例,您要用您实际的数据库名) DBCC REBUILD_LOG("cas_db", "D:\cas_db\cas_db_Log.LDF") 6. 重新将该数据库置为单用户模式。 7. 再次尝试使用DBCC CHECKTABLE或DBCC CHECKDB命令检查并修复数据库中。
三、SQL Server置疑数据库解决方法?
在提示信息中已经给了明显的提示:你的数据库版本未782,此服务器支持低于661的版本。
解决方案:
SQLServer · 最佳实践 · 如何将SQL Server 2012降级到2008 R2
上边的步骤给的很详细了。
一般来讲这样的问题只要认真阅读提示信息,仔细搜索一下就能找到答案。
四、如何让sql2000数据库自动备份工具?
如果是问sql2000数据备份工具自动备份怎么用,请按下面的步骤操作。
企业管理器中的Tools,Database Maintenance Planner,可以设置数据库的定期自动备份计划。并通过启动Sql server Agent来自动运行备份计划。具体步骤如下:
1、打开企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器;
2、然后点上面菜单中的工具-->选择数据库维护计划器;
3、下一步选择要进行自动备份的数据;
4、下一步更新数据优化信息,这里一般不用做选择;
5、下一步检查数据库完整性,也一般不选择;
6、下一步指定数据库备份计划,默认的是1周备份一次,点击更改选择每天备份后点确定;
7、下一步指定备份磁盘目录,选择指定目录,如您可以在D盘新建一个目录如:d:\databak,然后在这里选择使用此目录,如果您的数据库比较多最好选择为每个数据库建立子目录,然后选择删除早于多少天前的备份,一般设定4-7天,这看您的具体备份要求,备份文件扩展名默认的是BAK;
8、下一步指定事务日志备份计划,看您的需要做选择;
9、下一步要生成的报表,一般不做选择;
10、下一步维护计划历史记录,最好用默认的选项;
11、下一步完成;
12、完成后系统很可能会提示Sql Server Agent服务未启动,先点确定完成计划设定,然后找到桌面最右边状态栏中的SQL绿色图标,双击点开,在服务中选择Sql Server Agent,然后点击运行箭头,选上下方的当启动OS时自动启动服务;
13、可以设置自动启动sql server Agent:运行Services.msc,设置sqlserverAgent为自动启动。
14、修改计划:
打开企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->管理-->数据库维护计划。
五、sql2000如何分离数据库?
鼠标右键选中要分离的数据库,单击,选中“所有任务”列表中的“分离数据库”选项: 这时弹出如下对话框: 显示了我们选择的这个数据库的状态,在“数据库状态”中“使用本数据库的连接”为0说明,这个数据库当前没有使用,如果暂时不对这个数据库进行管理,可以分离这个数据库。 “分离选项”可以根据自己的需要选择。 单击“确定”按钮: 则数据库分离成功。~~望采纳!
六、sql2000数据库启动不了?
答,sql2000数据库启动不了的解决方法如下:
运行services.msc,找到sql server双击打开,重新设置登录用户即可 三种方法:
1、把用户口令改回原来的,再启动服务
2、使用控制面版服务管理器,找到MSSQLSERVER服务,更改启动账号信息,改成变更后的,再启动服务
3、也是推荐使用的方法,创建一个新用户,专门用于启动SQL Server服务,安装SQL Server时就使用该用户来启动SQL Server,这样就可以避免用于频繁更改administrator口令而带来的1069错误了。如果已经安装好SQL Server,也可以在控制面版服务管理器下更改MSSQLSERVER服务的服务账号信息,换成SQL服务专用的用户。
七、SQL数据库大于2000怎么表示?
在 SQL 中,可以使用比较运算符 > 来表示大于。如果你想查询某个表中某个列的值大于 2000,可以使用以下语句:
sql
复制
SELECT * FROM table_name WHERE column_name > 2000;
其中,table_name 是你要查询的表的名称,column_name 是你要查询的列的名称,可以是一个或多个列。这个语句将返回所有符合条件的行,即该列的值大于 2000 的行。
八、Sql 2000数据库怎么更改密码?
1. sp_password null,'newpass',sa
null:旧密码
newpass:新密码
sa:用户
2. sp_addlogin 'LiDong',null,'master','english'
LiDong:新用户
null:密码
master:默认数据库
english:默认语言为英语
九、SQL2000怎样附加数据库?
sqlserver2000附加数据库的具体步骤如下:
1、首先打开电脑,点击打开左下角开始菜单栏中的“所有程序”。
2、然后在弹出来的窗口中点击打开MicrosoftSQLServer中的企业管理器。
3、然后在弹出来的窗口中右键单击数据库选择所有任务中的附加数据库。
4、然后在弹出来的窗口中点击打开“验证”前面的三个点。
5、然后点就选择想要添加的数据库即可。
十、sql2000数据库怎么执行语句?
要执行SQL2000数据库语句,你需要使用查询分析器。查询分析器是SQL Server Management Studio中的一个组件,它可用于管理和执行SQL Server数据库的各种操作,如创建、修改和删除表格,查询和插入数据等。 查询分析器可以帮你轻松执行语句,你可以在分析器中直接输入SQL语句并通过执行按钮来执行它们。分析器还提供了各种格式化、调试和性能测试工具,以帮助你优化和调试操作。当你需要处理大型数据库时,查询分析器会帮助你提高工作效率并节约时间。
热点信息
-
在Python中,要查看函数的用法,可以使用以下方法: 1. 使用内置函数help():在Python交互式环境中,可以直接输入help(函数名)来获取函数的帮助文档。例如,...
-
一、java 连接数据库 在当今信息时代,Java 是一种广泛应用的编程语言,尤其在与数据库进行交互的过程中发挥着重要作用。无论是在企业级应用开发还是...
-
一、idea连接mysql数据库 php connect_error) { die("连接失败: " . $conn->connect_error);}echo "成功连接到MySQL数据库!";// 关闭连接$conn->close();?> 二、idea连接mysql数据库连...
-
要在Python中安装modbus-tk库,您可以按照以下步骤进行操作: 1. 确保您已经安装了Python解释器。您可以从Python官方网站(https://www.python.org)下载和安装最新版本...