系统数据库损坏了怎么办?
在实际使用环境中,我们难免遇到不可抗力等因素导致数据库损坏的情况,尤其是系统数据库,如果系统数据库损坏了,我们是否只能选择重装数据库,而数据库的卸载、重装是否又是一件令人头疼的事情?通过本篇文章相信你会有不一样的想法。
首先我们有必要为大家讲解各个系统数据库的概念及功能:
如果你正常安装了sql server 数据库,第一次启动数据库时至少包括4个系统数据库:
Master \Model \Msdb \tempdb
它们长成这样:
一些老的版本(sql server 2005以前的版本)还会包含以下两个数据库:
pubs
Northwind
下面我们针对各个数据库的作用一一介绍:
1.master数据库
任意SQL Server都有master数据库,而不管其是哪一版本或是自定义修改的。master数据库保存一组特殊的表(系统表)用于系统的总体控制。例如在服务器上新建一个 数据库时,将会在master数据库的sysdatabases 表中放入对应的条目。所有扩展的存储过程和系统存储过程都存储在master数据库中,而不论该存储过程是使用于哪一个数据库的。既然几乎所有描述服务器的信息都存储于master数据库中,那么显然该数据库对于系统至关重要,不能删除它。
2. model数据库
顾名思义,model数据库是指可以基于该模型得到一个副本。model数据库构成任何新建(据库的模板。也就是说,如果想要改变新建标准数据库的样式,则可以根据需要更改model
3. msdb数据库
msdb数据库是SQLAgent进程存储任意系统任务的地方。如果计划对一个数据库每夜进行备份,则在msdb数据库中有一个记录项。如果每次执行任务时调度存储过程,则在msdb数据库中会有一个记录项。
4. tempdb数据库
tempdb数据库是服务器的主要工作区域之一。在执行一个复杂或者大型的查询操作时,SQL Server可能需要创建一些中间表来完成该操作,这项工作就是在tempdb数据库中进行的。只要创建自己的临时表,这些表就会创建在tempdb数据库中,即使您是在当前数据库中创建这些表的(别名是在本地数据库中自动创建以供引用的,而物理表在tempdb中创建)。只要需要临时存储数据,就很可能是将数据存储在tempdb数据库中。tempdb数据库与其他任意数据库不同。不仅数据库中的对象是临时的,连数据库本身也是临时的。每次启动SQLServer,tempdb数据库是系统中唯一**重建的数据库。
5. pubs数据库
pubs数据库是我们所熟悉的。它是原来的样本数据库之一,在SQL Server 2005之前作为安装数据库的一部分随SQL Server 一起提供。pubs 数据库是目前唯一能从 Microsoft网站上单
6. Northwind数据库
如果您有Access或者Visual Basic方面的编程经验,就很可能已经对Northwind数据库不陌生了。Northwind数据库是从SQL Server 7.0版本开始添加进来的,但是在SQL Server 2005的基 本安装中被删除了。
好的,针对系统数据库我们已经介绍完毕了,相信大家也大致了解了各自的功能,那么如果系统数据库出现损坏或者被误删除了怎么办呢?是否只有重装一条路可以走呢?
这里我们以系统数据库MASTER损坏为例,详细为你介绍在不考虑重装数据库的前提下如何补救。通过上面的讲解我们知道一旦MASTER损坏,那么数据库肯定就无法启动了。
此时解决master数据库的损坏的方法大致有三种:
1:从备份还原master数据库
还原master数据库的前提是你的master有做备份。千万谨记,master也必须备份。很多时候,有些人备份时会忽略这些系统数据库。一般master、msdb备份是必须的。
2:复制master数据库模板
如果你没有master备份,那么退而求次,选择从安装目录的Templates拷贝master数据库文件到对应的目录。如果你SQL SERVER安装在C盘,没有修改过安装路径,那么就是C:\ProgramFiles\MicrosoftSQLServer\MSSQL10_50.SQL2008\MSSQL\Binn\Templates将其中的master数据库的mdf、ldf复制到C:\ProgramFiles\MicrosoftSQLServer\MSSQL10_50.SQL2008\MSSQL\DATA下替换原有文件即可(记得做好备份)
3:重建master数据库
找到SQL Server 2008的安装介质(插入光盘或拷贝介质到对应目录),在命令窗口将目录更改为setup.exe文件所在目录,然后运行下面命令(具体结合实际情况修改相关参数)
以上就是关于master数据库损坏的解决办法,希望对大家有所帮助。
小提示:对数据库的任何操作之前,防止数据丢失,请务必提前做好数据备份,当你的数据库出现只读、质疑、脱机、紧急模式等非正常情况,避免数据丢失或严重的二次损坏。
有问题可联系:0536-8611377