SQL SERVER 2000 9003错误的解决方法(只适用于SQL2000)

关于SQLSERVER 9003错误解决方法 只适用于SQL2000:

"无法打开新数据库 'POS'。CREATE DATABASE 中止。 (Microsoft SQL Server,错误: 9003)"

看是9003错误,就想到可能是由于日志文件的原因,再看数据库文件可能损坏,于是想到dbcc checkdb指令.

方法如下:

1.我们使用默认方式建立一个供恢复使用的数据库(如pos)。可以在SQL Server Enterprise Manager里面建立。

2.停掉数据库服务器。

3.将刚才生成的数据库的日志文件pos_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件

pos_data.mdf。

4.启动数据库服务器。此时会看到数据库pos的状态为“置疑”。这时候不能对此数据库进行任何操作。

5.设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。

use master
go
exec sp_configure 'allow updates',1
go
reconfigure with override
go 

6.设置pos为紧急修复模式

update sysdatabases set status=-32768 where dbid=DB_ID('pos')
go

此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表

7.下面执行真正的恢复操作,重建数据库日志文件

dbcc rebuild_log('pos','D:\Program Files\Microsoft SQL Server\MSSQL\Data\pos_log.ldf')
go

执行过程中,如果遇到下列提示信息:

服务器: 消息 5030,级别 16,状态 1,行 1

未能排它地锁定数据库以执行该操作。

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

说明您的其他程序正在使用该数据库,如果刚才您在6步骤中使用SQL Server Enterprise Manager打开了pos库的系统表,那么退出SQL Server Enterprise Manager就可以了。

正确执行完成的提示应该类似于:

警告: 数据库 'pos' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。

8.验证数据库一致性(可省略)

dbcc checkdb('pos')
go

一般执行结果如下:

CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'pos' 中)。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

9.设置数据库为正常状态

exec sp_dboption 'pos','dbo use only','false'
go

如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。

10.最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager里面恢复,也可以使用如下语句完成

exec sp_configure 'allow updates',0
go
reconfigure with override
go

以上所述是小编给大家介绍的SQL SERVER 2000 9003错误的解决方法(只适用于SQL2000),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • SQLSERVER启动不起来(错误9003)的解决方法分享

    先说一下环境 客户环境:Windows2003企业版SP2 32位 SQL2005企业版 32位 SP4自己笔记本电脑环境:Windows7 SP1  32位  SQL2005个人开发者版 32位我的笔记本电脑的计算机名:joe客户电脑的计算机名:hs 客户那边的master数据库大小:几MB业务系统是winform系统客户的环境是单机系统没有使用到域网络环境:客户那边的网速比较慢,用远程协助的时候比较卡为什麽要说明我自己笔记本电脑的环境呢?请大家继续耐心看下去 检查 先打开SQLSERVER配

  • sql server启动不了, MSSQL 18052错误: 9003,严重度: 20,状态: 1 .

    问题现象: 系统日志文件(控制面板–管理工具–系统日志) 能找到以下两条错误: 17052: 无法恢复 master 数据库.正在退出. 18052: 错误: 9003,严重度: 20,状态: 1. 解决方法一: 将Microsoft SQL Server/MSSQL/Data 目录改名为data_bak目录,然后从其他机器上把master.mdf,master.ldf,model.mdf,modellog.ldf拷过来随便放到哪(或者直接把data目录拷过来也行),不能放到Microsoft

  • SQL SERVER 2000 9003错误的解决方法(只适用于SQL2000)

    关于SQLSERVER 9003错误解决方法 只适用于SQL2000: "无法打开新数据库 'POS'.CREATE DATABASE 中止. (Microsoft SQL Server,错误: 9003)" 看是9003错误,就想到可能是由于日志文件的原因,再看数据库文件可能损坏,于是想到dbcc checkdb指令. 方法如下: 1.我们使用默认方式建立一个供恢复使用的数据库(如pos).可以在SQL Server Enterprise Manager里面建立. 2.停掉数据库服务

  • 远程连接局域网内的sql server 无法连接 错误与解决方法

    第一个错误"SQL Server 不存在或访问被拒绝"通常是最复杂的,错误发生的原因比较多,需要检查的方面也比较多 .一般说来,有以下几种可能性: 1.SQL Server名称或IP地址拼写有误: 2.服务器端网络配置有误: 3.客户端网络配置有误. 要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因. 首先,检查网络物理连接: ping <服务器IP地址> 或者 ping <服务器名称> 如果 ping <服务器IP地址> 失败,说

  • 恢复sql server 2000误删数据的解决办法

    今天不小心把客户那边的数据库中删了一千多条数据,而且之前又没有备份,真的是很郁闷,后来在网上找到一工具,用起来挺方便,让我躲过一劫. 首先来看一下界面: 输入服务器地址,用户名及密码后点Connect,进入到下面的界面: 在这里选择要恢复数据的数据库,选择Use On-line Log(如果你又备份文件的话就不需要用这个工具了,直接用SQL搞定了).然后点Attach,进入下面的界面: 可以看到左边菜单中有很多功能,我们要恢复数据,首先要查看日志,找出我们误操作的那些日志记录,点Browse下的

  • SQL Server连接失败错误及解决第1/5页

    在使用 SQL Server 的过程中,用户遇到的最多的问题莫过于连接失败了.一般而言,有以下两种连接 SQL Server 的方式,一是利用 SQL Server 自带的客户端工具,如企业管理器.查询分析器.事务探查器等;二是利用用户自己开发的客户端程序,如ASP 脚本.VB程序等,客户端程序中又是利用 ODBC 或者 OLE DB 等连接 SQL Server.下面,我们将就这两种连接方式,具体谈谈如何来解决连接失败的问题. 一.客户端工具连接失败 在使用 SQL Server 自带的客户端

  • MS SQL Server数据库清理错误日志的方法

    SQL错误日志记录了数据库运行过程的遇到的各种问题及一些重要信息,作为排错需要,我们通常都不会主动去清理这些日志文件,只有每次重启服务器时,SQL会自动删除时间最老的日志文件,并新生成一个日志文件.通过在服务器上查看数据库的日志文件,发现存在大量的query notification dialog的信息,而且出现的频率非常的高,导致日志文件增大非常快.通过google了解到这个错误跟service broker的消息机制由关系,可以通过使用跟踪标记:DBCC TraceOn(4133,-1)可消

  • sql server 2000 数据库自动备份设置方法

    1.打开MS SQL Server 企业管理器,SqlServer组 - 管理 - 数据库维护计划 - 右键新建维护计划 如下图: 下一步:选择需要备份的数据库 下一步: 继续下一步: 下一步:点击更改修改数据备份时间 下一步: 下一步: 下一步: 下一步: .在企业管理器中,找到管理 – SQL Server代理,如果它没有启动,红色方框而不是绿色三角,点击右键,选择启动. 小技巧:在SQL Server 服务管理器 – 服务选择 SQL Server Agent 启动,在"当启动OS时自动启

  • MySQL出现SQL Error (2013)连接错误的解决方法

    现象描述 今天用heidisql登陆虚拟机的MySQL,登陆不上去.等待约一两分钟后出现错误提示:SQL Error (2013): Lost connection to MySQL server at 'waiting for initial communication packet', system error: 0,如下图所示: 开始以为是远程TCP/IP  root只能通过localhost访问 ,后来新建用户,改为%后还是无果.尝试修改my.ini配置问题后问题消失. 解决办法 在my

  • SQL Server代理服务无法启动的解决方法

    错误信息:错误MSSQLSERVERSQLServerAgent could not be started (reason: SQLServerAgent 必须能够以 SysAdmin 身份连接到 SQLServer,但"(未知)"不是 SysAdmin 角色的成员). 运行环境:Windows2003R2 32bit + MSSQL2005+启用SQL的AWE内存管理 出现原因:给SQL降权到Network Service权限运行之后. 解决办法:打开组策略\计算机配置\Window

  • 基于Sql Server通用分页存储过程的解决方法

    sql server2000分页方式很多,效率吗  当到达10万级以上就有些吃力了,这里暂时不例出来了 sql server2005以上就有了row_number 也是一大进步,详情如下参考 复制代码 代码如下: Sql Server2005通用分页存储过程 CREATE PROCEDURE [dbo].[Common_GetPagedList](@TableName nvarchar(100), --表名@ColumnNames nvarchar(1000) = '*', --字段名集合(全部

  • sql server 2000阻塞和死锁问题的查看与解决方法

    数据库发生阻塞和死锁的现象: 一.数据库阻塞的现象:第一个连接占有资源没有释放,而第二个连接需要获取这个资源.如果第一个连接没有提交或者回滚,第二个连接会一直等待下去,直到第一个连接释放该资源为止.对于阻塞,数据库无法处理,所以对数据库操作要及时地提交或者回滚.二.数据库死锁的现象:第一个连接占有资源没有释放,准备获取第二个连接所占用的资源,而第二个连接占有资源没有释放,准备获取第一个连接所占用的资源.这种互相占有对方需要获取的资源的现象叫做死锁.对于死锁,数据库处理方法:牺牲一个连接,保证另外

随机推荐