mssql数据库系统崩溃后的一般处理步骤与方法
当面临MSSQL数据库系统崩溃的情况,特别是SQL Server 2000的崩溃并需要重新安装有备份的数据库时,我们有一系列的一般处理步骤和可以尝试的策略。
情境描述为SQL Server 2000崩溃,并已经拥有三个系统库(master、msdb、model)以及两个用户数据库(user01、user02)的备份。这些备份包括了周日的完全备份以及除周日外的每日差异备份。我们的目标是恢复到用户数据库的一个特定备份前的状态。
常规的恢复流程大致如下:
1. 首先备份所有可用的数据,包括系统数据库和用户数据库的数据文件和日志文件。这一步至关重要,以防在恢复过程中发生数据丢失。
2. 卸载原有的SQL Server安装。这一步包括移除所有相关的配置和文件。
3. 在系统表中查找并删除所有的MSSQLServer项,确保没有任何旧的配置或数据影响新的安装。
4. 在磁盘上删除所有安装SQL Server时产生的文件,为新的安装做好准备。
5. 重新安装SQL Server,并确保安装的补丁版本与备份系统数据库时的版本一致。这一步非常重要,以保证系统的兼容性。
6. 在单用户模式下恢复master数据库,这是系统恢复的第一步。
7. 接着恢复其他系统数据库,包括model和msdb。
8. 最后恢复用户数据库,这是恢复工作的重点。在这个过程中,我们会尝试一些策略来尽量恢复到最近的时间点。一种方法是停止MSSQL服务,然后用备份的系统数据库文件替换安装后生成的系统数据库文件。如果这一步成功,我们可以在企业管理器中查看用户数据库是否有问题。如果没问题,那么数据就已经恢复了。如果不成功,我们还可以尝试用附加的方式恢复用户数据库。在这个过程中,如果成功,还需要修复各用户数据库中的孤立用户。
关于系统数据库的详细恢复说明:在SQL Server中,系统信息都存储在系统数据库中。主要的系统数据库包括master、model和msdb。这些数据库控制用户数据库和SQL Server的操作。如果包含系统数据库的介质发生变化,必须重建这些数据库。如果仍然可以启动SQL Server服务,我们可以通过RESTORE语句从系统数据库的备份中恢复它们。这是一个复杂但必要的过程,需要我们谨慎处理每一步以确保数据的完整性和准确性。在这个过程中,保持冷静和耐心是关键,因为任何错误都可能导致数据丢失或损坏。当Master数据库出现问题无法启动系统时,我们可以参考狼蚁网站的SEO优化策略来恢复数据库。以下是具体的恢复步骤:
一、重建系统数据库
运行c:\mssql7\binn\rebuildm.exe,按照提示操作即可。系统数据库样本的路径可以在安装光盘中找到。
二、启动SQL Server服务并恢复数据库
通常的恢复顺序为master->msdb->model。在恢复master的备份时,需要注意必须在单用户模式下进行。进入单用户模式的方法如下:
1. 在命令行模式下输入sqlservr -c -f -m或者sqlservr -m。其中,-c可以缩短启动时间,SQL Server不作为Windows NT的服务启动;-f用最小配置启动SQL Server;-m表示以单用户模式启动SQL Server。
2. 也可以在控制面板-服务-MSSQLServer的启动参数中输入相应的参数,点击开始。
三、进行master数据库的恢复
1. 直接进入查询分析器,输入恢复语句进行数据库恢复:RESTORE DATABASE master from disk='c:\具体的备份文件名'。
2. 或者在命令提示符下输入,注意大小写。使用"windows身份验证"的,输入:isql /E。使用"sql server和windows身份验证"的,输入:isql /U"用户名" /P"密码"。然后在出现的提示符下输入:RESTORE DATABASE master from disk='c:\具体的备份文件名'。
四、还原数据库的具体步骤:
1. 恢复最近一次的完整备份。在企业管理器中,右键点击“数据库”,选择所有任务,然后点击还原数据库。在界面中输入还原后的数据库名,比如设为test。选择设备,添加备份文件,确定后回到数据库还原的界面。选择“数据库--完全”,选项中将物理文件名修改为你想要的数据文件存放的文件名。如果还原的数据库已经存在,选择“在现有数据库上强制还原”。最后选择“使数据库不再运行,但能还原其它事务日志”,确定。或者可以使用SQL语句:RESTORE DATABASE 数据库名 FROM DISK = 'c:\你的完全备份文件名' WITH NORECOVERY。
2. 恢复完全备份后的最近一次的差异备份(如果有的话)。操作步骤与恢复完全备份类似,只是在选择备份类型时选择“差异”。或者使用SQL语句:RESTORE DATABASE 数据库名 FROM DISK = 'c:\你的差异备份文件名' WITH NORECOVERY。
3. 按时间先后恢复差异备份后的所有日志备份(如果没有差异备份,则是完全备份)。在企业管理器中,选择相应的备份文件,确定后回到数据库还原的界面。选择“事务日志”,然后根据实际情况选择“恢复完成状态”。或者使用SQL语句:RESTORE DATABASE 数据库名 FROM DISK = 'c:\你的日志文件名' WITH RECOVERY。
五、解决孤立用户问题:
1. 查看某个数据库的孤立用户:USE 库名 EXEC sp_change_users_login 'Report'。
2. 自动修复某个孤立用户:USE 库名 EXEC sp_change_users_login 'Auto_Fix', '孤立用户名', NULL, '密码'。密码指的是用户对应的登录不存在时,系统自动建立的登录的密码。
平面设计师
- mssql数据库系统崩溃后的一般处理步骤与方法
- 微信小程序 自定义复选框实现代码实例
- PHP CURL CURLOPT参数说明(curl_setopt)
- JS实现网页顶部向下滑出的全国城市切换导航效果
- jQuery form插件之formDdata参数校验表单及验证后提交
- jQuery对象初始化的传参方式
- 莫非这就是爱情
- 解决layui 三级联动下拉框更新时回显的问题
- 少女风vue组件库的制作全过程
- JQuery悬停控制图片轮播——代码简单
- 在Bootstrap开发框架中使用dataTable直接录入表格行
- javascript手风琴下拉菜单实现代码
- js实现鼠标拖拽多选功能示例
- phplot生成图片类用法详解
- 小张与小丽之间的故事:如何他们的关系
- ASP.NET显示农历时间改进版