SQLServer2000数据库崩溃后的补救措施

SQLServer2000数据库崩溃后的补救措施,第1张

SQL Server 2000数据库崩溃后的补救措施:

案例描述:

SQL Server 2000数据库崩溃后,重装数据库前的准备:

1三个系统库(master,msdb,model)的完全备份:

2两个用户数据库(user01,user02)的备份(周日的完全备份+除周日外每天的差异备份):

三个系统数据库是早期备份的,之间没有更新过帐号信息,没有增减过饕档鹊取

两个用户数据库在上周日晚做过完全备份(user01bak和user02bak)

需求:一次性恢复到用户数据库最后一个备份前的状态。

下文中,我们将介绍一下常规的恢复过程:

1 备份可用的数据, 包含所有系统数据库和用户数据库的数据文件和日志文件(mdf/ldf/ndf)

2 卸载原来的安装

3 系统表查找和删除所有的MSSQLServer项

4 磁盘上删除安装SQL SErver产生的所有文件

5 重新安装SQL Server,所需安装的补丁的版本要求保持与备份系统数据库时安装的补丁版本一致

6 单用户模式下恢复master数据库

7 恢复其他系统数据库

8 恢复用户数据库

此外,我们还可以尝试用下面的方法:

假如你的时间比较充裕,而且想尽量恢复数据到最近的时间点, 可以在上述步骤中做以下的尝试:

1 首先,将第6,7两个步骤改为:

a 停止MSSQL服务

b 用步骤1备份的系统数据库的数据文件和日志文件替换安装后生成的系统数据库的对应文件

c 建立与SQL Server系统崩溃之前一样的用户数据库的存放目录, 并且把用户数据库文件按原来的位置存放

d 启动MSSQL服务

e 如果MSSQL服务成功, 在企业管理看看用户数据库有没有置疑, 如果没有置疑, 则其他 *** 作都不用做了, 数据已经恢复

注意事项:

在具体 *** 作以上的步骤b之前, 先备份准备覆盖的文件。

2 如果步骤1的尝试不成功, 则再做下面的尝试, 把步骤8修改为下面的:

a 停止MSSQL服务

b 用备份的文件还原被覆盖的文件

c 尝试用附加的方式恢复用户数据库

d 如果成功, 则修复各用户数据库中的孤立用户

恢复过程会涉及到的一些具体处理 1 恢复系统数据库:

在SQL Server数据库中,系统信息存储在系统数据库中,主要的系统数据库包括:

master-从整体上控制用户数据库和SQL Server *** 作,在创建了任何用户定义的对象后,都要备份它

model-为新数据库提供模版和原型

msdb-包含了有关作业、报警及 *** 作员等信息

假如包含系统数据库的介质已经改变,则必须重建系统数据库,如果你目前仍然可以启动SQL Server服务,则可以通过RESTORE语句从系统数据库的备份中恢复数据库。

如果master坏了,不能启动系统,可以按照下面步骤进行恢复

(1)重建系统数据库 运行c:\mssql7\binn\rebuildmexe,按照提示进行即可,

过程中需要系统数据库样本的路径,可在安装光盘中找到;

(2)重建系统数据库后,启动SQL Server服务,用系统数据库的备份恢复数据库

就行了通常恢复顺序为master->msdb->model

在恢复master的备份时要注意:必须在单用户(single user)模式下进行

进入单用户模式的方法:

a 在命令行模式下输入:sqlservr -c -f -m或者输入sqlservr -m

其中:-c 可以缩短启动时间,SQL Server 不作为Windows NT的服务启动

-f 用最小配置启动SQL Server

-m 单用户模式启动SQL Server

b 可以在控制面板-服务-MSSQLServer的启动参数中输入-c -f -m或者输入-m,点击开始

(3)进行master数据库的恢复

a 直接进入查询分析器,有个提示不要理会它

输入恢复语句进行数据库恢复:

RESTORE DATABASE master from disk='c:\具体的备份文件名'

b 或者用这个,在命令提示符下输入,注意大小写

使用"windows身份验证"的,输入:isql /E

使用"sql server和windows身份验证"的,输入:isql /U"用户名" /P"密码"

然后在出现的提示符下输入(注意1>,2>是提示符):

1>RESTORE DATABASE master from disk='c:\具体的备份文件名'

2>GO

2 还原数据库的具体步骤:

(1) 恢复最近一次的完整备份

企业管理器--右键"数据库"--所有任务--还原数据库

--"还原为数据库库"中输入还原后的数据库名,设为:test

--还原选择"从设备"--选择设备--添加--添加你的备份文件

--确定,回到数据库还原的界面

--"还原备份集",选择"数据库--完全"

--选项--将"移至物理文件名"中的物理文件名修改为你的数据文件要存放的文件名

--如果要还原的数据库已经存在,选择"在现有数据库上强制还原"

--"恢复完成状态",选择"使数据库不再运行,但能还原其它事务日志"

--确定 --或用SQL语句:

RESTORE DATABASE 数据库名

FROM DISK = 'c:\你的完全备份文件名'

WITH NORECOVERY

(2)恢复完全备份后, 最近一次的差异备份(如果有的话)

企业管理器--右键"数据库"--所有任务--还原数据库

--"还原为数据库库"中选择数据库名:test

--还原选择"从设备"--选择设备--添加--添加你的备份文件

--确定,回到数据库还原的界面

--"还原备份集",选择"数据库--差异"

--"恢复完成状态",选择"使数据库不再运行,但能还原其它事务日志"

--确定

--或用SQL语句:

--或用SQL语句:

RESTORE DATABASE 数据库名

FROM DISK = 'c:\你的差异备份文件名'

WITH NORECOVERY

(3)按时间先后, 恢复差异备份后(如果没有差异备份,则是完全备份)的所有日志备份

企业管理器--右键"数据库"--所有任务--还原数据库

--"还原为数据库库"中选择数据库名:test

--还原选择"从设备"--选择设备--添加--添加你的备份文件

--确定,回到数据库还原的界面

--"还原备份集",选择"事务日志"

--"恢复完成状态"

如果是恢复最后一个日志文件,选择"使数据库可以继续运行,但无法还原其它事务日志"

否则选择"使数据库不再运行,但能还原其它事务日志"

--确定

--或者使用SQL语句:

RESTORE DATABASE 数据库名

FROM DISK = 'c:\你的日志文件名'

WITH RECOVERY

3 解决孤立用户:

(1) 查看某个数据库的孤立用户:

USE 库名

EXEC sp_change_users_login 'Report'

(2)自动修复某个孤立的用户:

USE 库名

EXEC sp_change_users_login 'Auto_Fix', '孤立用户名', NULL, '密码'

--假如密码指示用户对应的登录不存在时, 系统自动建立登录, 为登录分配密码。

ODBC建立连接错误,检查一下网络,数据库服务有没有启动,是否允许远程访问,有没有防火墙啥的

就是说么,数据库服务没启动。

你这是2000的数据库,你的电脑啥系统?是不是不兼容呀。还是装的有问题?

修复ACCESS数据库的几种常见方法:

技术支持部在日常工作中经常会碰到因非正常退出、网络不稳定或病毒等原因造成的Access数据库损坏。损坏了的Access数据库会造成软件运行不稳定,出现各种运行错误,为解决这类问题就必须对Access数据库进行修复。

修复Access数据库,我们一般使用微软Office 97中带的Access 97对数据库进行修复和整理。Access数据库被损坏分以下几种情况:1、严重损坏;2、轻度损坏;3、有些表被损坏或有些表的部分记录被损坏。下面就分情况介绍解决办法。

1、使用Access97打不开数据库、系统提示"不可识别的数据库格式"或"不是该表的索引"等信息,这样的数据库都是损坏比较严重的。损害严重的数据库一般来说都是无法修复的,只有恢复备份了,好在这种情况比较少见。

2、如果数据库损坏的不严重,只需要使用Access 97菜单上的“修复数据库”和“压缩数据库”就可以把数据库修复好。因为数据库轻微损坏的时候,一般也不会导致软件出什么问题,所以也不会引起人的注意,只有当数据库的某一个或几个表损坏了的时候,才会使软件变得不稳定,所以这种情况才是我们最常遇到的。

3、如何确定数据库中哪几个表有问题呢,我们首先利用Access 97建立一个空数据库,利用系统提供的“引入数据库”功能,选择目标数据库所有的表进行引入,Access 97当引入到有问题的表时系统会提示一些错误信息,把这个表的名字记下来以备以后修复时使用。

接下来利用Access97打开有问题的数据库,准备修复表。修复损坏的表的方法依照表损坏程度不同而不同,下面分情况介绍处理的办法:

一、表损坏的非常严重,表现为无法打开表,系统提示“Microsoft jet 找不到对象”、“没有读写权限”或“不可识别”等信息。

处理方法:这种表的已经损坏得非常严重了,一般无法修复。如果这个表不很重要或通常情况下表的内容为空的话,例如“常用凭证表”、“科目共享锁定表”或“凭证共享锁定表”,我们可以通过引入的方法把其他数据库的表引入,然后把有问题的表删除即可。

二、表中有几行内容非常混乱或字段内标有“#已删除”字样,但当要删除这些记录时就会出现错误信息不许删除。

处理办法:既然不让删除这些记录,我们可以通过使用SQL语句把没有问题的记录复制到一个新的表中,然后把老表删除把新表的名字改过来即可。例如“凭证及明细账表GL_ACCVOUCH”中有错误记录有无法删除,我们可以使用如下SQL语句把好的记录复制到GL_ACCTEMP中:

SELECT GL_ACCVOUCH INTO GL_ACCTEMP

FROM GL_ACCVOUCH WHERE {筛选的条件}

然后删除表GL_ACCVOUCH,再把表GL_ACCTEMP的名字改为GL_ACCVOUCH即可解决问题。

修复ACCESS数据库的注意事项,首先,我们在修复数据库前一定要做好备份,以防数据丢失或损坏;有一些数据库中有RELATION(关系)来维护数据的一致性,但当数据库异常后相关表的RELATION也就丢失了,在修复好数据库后一定要把RELATION再联好,有些软件可以自动修复RELATION,比如用友公司的ERP8XX系列产品的数据库可以通过把表accinformation中的[cSysid]='AA' and [项目号]='99'的记录,把[设置值]和[缺省值]改为'80A0',重新进入系统时,系统会自动升级并重建索引。

以上就是关于SQLServer2000数据库崩溃后的补救措施全部的内容,包括:SQLServer2000数据库崩溃后的补救措施、金驰A8 SQL Server 数据库 出现问题 怎么解决这个问题、mdb数据库打不开,显示为此数据库无法修复或不是一个microsoft office access数据库文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10153835.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存