热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

SQLServer2000数据库崩溃后的补救措施:案例描写:SQLServer2000数据库崩溃后,重装数据库前的准备:1.三个系统库(master,msdb,model)的完整备份:2.两个用户数据库(user01,user02)的备份(周

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

案例描写:

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

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

2.两个用户数据库(user01,user02)的备份(周日的完整备份 除周日外天天的差别备份):

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

两个用户数据库在上周日晚做过完整备份(user01.bak和user02.bak)

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

下文中,我们将先容一下惯例的恢复过程:

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服务

1. 恢复系统数据库:

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

master-从整体上把持用户数据库和SQL Server把持,在创立了任何用户定义的对象后,都要备份它

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

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

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

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

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

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

(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

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

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

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

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

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

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

--断定

e. 假如MSSQL服务成功, 在企业治理看看用户数据库有没有置疑, 假如没有置疑, 则其他把持都不用做了, 数据已经恢复

留心事项:

在具体把持以上的步骤b之前, 先备份准备笼罩的文件。

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

a. 结束MSSQL服务

b. 用备份的文件还原被笼罩的文件

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

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

恢复过程会涉及到的一些具体处理

--或用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, '密码'

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

 

 





推荐阅读
author-avatar
手机用户2502887763
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有