<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>温室小花.技术.博客 --纯粹的unix技术博客 &#187; sqlserver</title>
	<atom:link href="http://www.evanjiang.net.cn/archives/category/database/sqlserver/feed" rel="self" type="application/rss+xml" />
	<link>http://www.evanjiang.net.cn</link>
	<description>红颜弹指老，刹那芳华，与其天涯思君，恋恋不舍，莫若相忘于江湖！</description>
	<lastBuildDate>Sun, 05 Sep 2010 14:51:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>mssql数据库系统崩溃后的一般处理步骤</title>
		<link>http://www.evanjiang.net.cn/archives/1345.html</link>
		<comments>http://www.evanjiang.net.cn/archives/1345.html#comments</comments>
		<pubDate>Sat, 17 Oct 2009 07:42:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[sqlserver]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=1345</guid>
		<description><![CDATA[<p>


 <p>情况描述：</p>
<p>SQL Server 2000崩溃，重新安装数据库。</p>
<p>有以下准备：</p>
<p>1, 三个系统库（master,msdb,model）的完全备份:</p>
<p>2  两个用户数据库(user01,user02)的备份（周日的完全备份+除周日外每天的差异备份）:</p>
<p>三个系统数据库是早期备份的，之间没有更新过帐号信息，没有增减过作业等等。</p>
<p>两个用户数据库在上周日晚做过完全备份（user01.bak和user02.bak）</p>
<p>准备重新安装数据库,希望能一次性恢复到用户数据库最后一个备份前的状态。</p>
<p>常规恢复过程大致如下
</p>
<p>1. 备份可用的数据, 包含所有系统数据库和用户数据库的数据文件和日志文件(*.mdf/ldf/ndf)</p>
<p>2. 卸载原来的安装</p>
<p>3. 系统表查找和删除所有的MSSQLServer项</p>
<p>4. 磁盘上删除安装SQL SErver产生的所有文件</p>
<p>5. 重新安装SQL Server，所需安装的补丁的版本要求保持与备份系统数据库时安装的补丁版本一致</p>
<p>6. 单用户模式下恢复master数据库</p>
<p>7. 恢复其他系统数据库</p>
<p>8. 恢复用户数据库</p>
<p>可以做的尝试</p>
<p>如果时间比较充分,而且想尽量恢复数据到最近的时间点, 可以在上述步骤中做下面的尝试</p>
<p>1. 把6,7两步改为:</p>
<p>a. 停止MSSQL服务</p>
<p>b. 用步骤1备份的系统数据库的数据文件和日志文件替换安装后生成的系统数据库的对应文件</p>
<p>c. 建立与SQL Server系统崩溃之前一样的用户数据库的存放目录, 并且把用户数据库文件按原来的位置存放</p>
<p>d. 启动MSSQL服务</p>
<p>e. 如果MSSQL服务成功, 在企业管理看看用户数据库有没有置疑, 如果没有置疑, 则其他操作都不用做了, 数据已经恢复</p>
<p>注意:</p>
<p>    在做上面的步骤b之前, 先备份准备覆盖的文件</p>
<p>2. 如果步骤1的尝试不成功, 则再做下面的尝试, 把步骤8修改为下面的:</p>
<p>a. 停止MSSQL服务</p>
<p>b. 用备份的文件还原被覆盖的文件</p>
<p>c. 尝试用附加的方式恢复用户数据库</p>
<p>d. 如果成功, 则修复各用户数据库中的孤立用户</p>
<p>恢复过程会涉及到的一些具体处理</p>
<p>1. 恢复系统数据库:</p>
<p>在SQL Server数据库中，系统信息存储在系统数据库中，主要的系统数据库包括： </p>
<p>master-从整体上控制用户数据库和SQL Server操作，在创建了任何用户定义的对象后，都要备份它</p>
<p>model-为新数据库提供模版和原型 </p>
<p>msdb-包含了有关作业、报警及操作员等信息</p>
<p>如果包含系统数据库的介质变了，那么必须重建系统数据库，如果你仍然可以启动SQL Server服务，则可以通过RESTORE语句从系统数据库的备份中恢复数据库。 </p>
<p>如果master坏了，不能启动系统,可以按照下面步骤进行恢复 </p>
<p>1. 重建系统数据库 运行c:mssql7binnrebuildm.exe，按照提示进行即可，</p>
<p>过程中需要系统数据库样本的路径，可在安装光盘中找到； </p>
<p>2 [...]]]></description>
			<content:encoded><![CDATA[<p style="float: left;margin: 4px;"><script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 160x600, 创建于 10-2-7 */
google_ad_slot = "8970910006";
google_ad_width = 160;
google_ad_height = 600;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p> <p>情况描述：</p>
<p>SQL Server 2000崩溃，重新安装数据库。</p>
<p>有以下准备：</p>
<p>1, 三个系统库（master,msdb,model）的完全备份:</p>
<p>2  两个用户数据库(user01,user02)的备份（周日的完全备份+除周日外每天的差异备份）:</p>
<p>三个系统数据库是早期备份的，之间没有更新过帐号信息，没有增减过作业等等。</p>
<p>两个用户数据库在上周日晚做过完全备份（user01.bak和user02.bak）</p>
<p>准备重新安装数据库,希望能一次性恢复到用户数据库最后一个备份前的状态。</p>
<p>常规恢复过程大致如下<br />
<span id="more-1345"></span></p>
<p>1. 备份可用的数据, 包含所有系统数据库和用户数据库的数据文件和日志文件(*.mdf/ldf/ndf)</p>
<p>2. 卸载原来的安装</p>
<p>3. 系统表查找和删除所有的MSSQLServer项</p>
<p>4. 磁盘上删除安装SQL SErver产生的所有文件</p>
<p>5. 重新安装SQL Server，所需安装的补丁的版本要求保持与备份系统数据库时安装的补丁版本一致</p>
<p>6. 单用户模式下恢复master数据库</p>
<p>7. 恢复其他系统数据库</p>
<p>8. 恢复用户数据库</p>
<p>可以做的尝试</p>
<p>如果时间比较充分,而且想尽量恢复数据到最近的时间点, 可以在上述步骤中做下面的尝试</p>
<p>1. 把6,7两步改为:</p>
<p>a. 停止MSSQL服务</p>
<p>b. 用步骤1备份的系统数据库的数据文件和日志文件替换安装后生成的系统数据库的对应文件</p>
<p>c. 建立与SQL Server系统崩溃之前一样的用户数据库的存放目录, 并且把用户数据库文件按原来的位置存放</p>
<p>d. 启动MSSQL服务</p>
<p>e. 如果MSSQL服务成功, 在企业管理看看用户数据库有没有置疑, 如果没有置疑, 则其他操作都不用做了, 数据已经恢复</p>
<p>注意:</p>
<p>    在做上面的步骤b之前, 先备份准备覆盖的文件</p>
<p>2. 如果步骤1的尝试不成功, 则再做下面的尝试, 把步骤8修改为下面的:</p>
<p>a. 停止MSSQL服务</p>
<p>b. 用备份的文件还原被覆盖的文件</p>
<p>c. 尝试用附加的方式恢复用户数据库</p>
<p>d. 如果成功, 则修复各用户数据库中的孤立用户</p>
<p>恢复过程会涉及到的一些具体处理</p>
<p>1. 恢复系统数据库:</p>
<p>在SQL Server数据库中，系统信息存储在系统数据库中，主要的系统数据库包括： </p>
<p>master-从整体上控制用户数据库和SQL Server操作，在创建了任何用户定义的对象后，都要备份它</p>
<p>model-为新数据库提供模版和原型 </p>
<p>msdb-包含了有关作业、报警及操作员等信息</p>
<p>如果包含系统数据库的介质变了，那么必须重建系统数据库，如果你仍然可以启动SQL Server服务，则可以通过RESTORE语句从系统数据库的备份中恢复数据库。 </p>
<p>如果master坏了，不能启动系统,可以按照下面步骤进行恢复 </p>
<p>1. 重建系统数据库 运行c:mssql7binnrebuildm.exe，按照提示进行即可，</p>
<p>过程中需要系统数据库样本的路径，可在安装光盘中找到； </p>
<p>2  重建系统数据库后，启动SQL Server服务，用系统数据库的备份恢复数据库</p>
<p>就行了通常恢复顺序为master->msdb->model </p>
<p>在恢复master的备份时要注意：必须在单用户(single user)模式下进行</p>
<p>进入单用户模式的方法： </p>
<p>a. 在命令行模式下输入：sqlservr -c -f -m或者输入sqlservr -m </p>
<p>其中：-c 可以缩短启动时间，SQL Server 不作为Windows NT的服务启动 </p>
<p>-f 用最小配置启动SQL Server </p>
<p>-m 单用户模式启动SQL Server </p>
<p>b. 可以在控制面板-服务-MSSQLServer的启动参数中输入-c -f -m或者输入-m,点击开始 </p>
<p>3. 进行master数据库的恢复</p>
<p>a. 直接进入查询分析器,有个提示不要理会它</p>
<p>输入恢复语句进行数据库恢复:</p>
<p>RESTORE DATABASE master from disk=&#8217;c:具体的备份文件名&#8217;</p>
<p>b. 或者用这个,在命令提示符下输入,注意大小写</p>
<p>使用&#8221;windows身份验证&#8221;的,输入:isql /E</p>
<p>使用&#8221;sql server和windows身份验证&#8221;的,输入:isql /U&#8221;用户名&#8221; /P&#8221;密码&#8221;</p>
<p>然后在出现的提示符下输入(注意1>,2>是提示符):</p>
<p>1>RESTORE DATABASE master from disk=&#8217;c:具体的备份文件名&#8217;</p>
<p>2>GO</p>
<p>2. 还原数据库的具体步骤:</p>
<p>1. 恢复最近一次的完整备份</p>
<p>企业管理器&#8211;右键&#8221;数据库&#8221;&#8211;所有任务&#8211;还原数据库</p>
<p>&#8211;&#8221;还原为数据库库&#8221;中输入还原后的数据库名,设为:test</p>
<p>&#8211;还原选择&#8221;从设备&#8221;&#8211;选择设备&#8211;添加&#8211;添加你的备份文件</p>
<p>&#8211;确定,回到数据库还原的界面</p>
<p>&#8211;&#8221;还原备份集&#8221;,选择&#8221;数据库&#8211;完全&#8221;</p>
<p>&#8211;选项&#8211;将&#8221;移至物理文件名&#8221;中的物理文件名修改为你的数据文件要存放的文件名</p>
<p>&#8211;如果要还原的数据库已经存在,选择&#8221;在现有数据库上强制还原&#8221;</p>
<p>&#8211;&#8221;恢复完成状态&#8221;,选择&#8221;使数据库不再运行，但能还原其它事务日志&#8221;</p>
<p>&#8211;确定</p>
<p>&#8211;或用SQL语句:</p>
<p>RESTORE DATABASE 数据库名</p>
<p>FROM DISK = &#8216;c:你的完全备份文件名&#8217; </p>
<p>WITH NORECOVERY</p>
<p>2. 恢复完全备份后, 最近一次的差异备份(如果有的话)</p>
<p>企业管理器&#8211;右键&#8221;数据库&#8221;&#8211;所有任务&#8211;还原数据库</p>
<p>&#8211;&#8221;还原为数据库库&#8221;中选择数据库名:test</p>
<p>&#8211;还原选择&#8221;从设备&#8221;&#8211;选择设备&#8211;添加&#8211;添加你的备份文件</p>
<p>&#8211;确定,回到数据库还原的界面</p>
<p>&#8211;&#8221;还原备份集&#8221;,选择&#8221;数据库&#8211;差异&#8221;</p>
<p>&#8211;&#8221;恢复完成状态&#8221;,选择&#8221;使数据库不再运行，但能还原其它事务日志&#8221;</p>
<p>&#8211;确定</p>
<p>&#8211;或用SQL语句:</p>
<p>&#8211;或用SQL语句:</p>
<p>RESTORE DATABASE 数据库名</p>
<p>FROM DISK = &#8216;c:你的差异备份文件名&#8217; </p>
<p>WITH NORECOVERY</p>
<p>3. 按时间先后, 恢复差异备份后(如果没有差异备份,则是完全备份)的所有日志备份</p>
<p>企业管理器&#8211;右键&#8221;数据库&#8221;&#8211;所有任务&#8211;还原数据库</p>
<p>&#8211;&#8221;还原为数据库库&#8221;中选择数据库名:test</p>
<p>&#8211;还原选择&#8221;从设备&#8221;&#8211;选择设备&#8211;添加&#8211;添加你的备份文件</p>
<p>&#8211;确定,回到数据库还原的界面</p>
<p>&#8211;&#8221;还原备份集&#8221;,选择&#8221;事务日志&#8221;</p>
<p>&#8211;&#8221;恢复完成状态&#8221;</p>
<p>   如果是恢复最后一个日志文件,选择&#8221;使数据库可以继续运行，但无法还原其它事务日志&#8221;</p>
<p>   否则选择&#8221;使数据库不再运行，但能还原其它事务日志&#8221;</p>
<p>&#8211;确定</p>
<p>&#8211;或用SQL语句:</p>
<p>RESTORE DATABASE 数据库名</p>
<p>FROM DISK = &#8216;c:你的日志文件名&#8217; </p>
<p>WITH RECOVERY</p>
<p>3. 解决孤立用户:</p>
<p>1. 查看某个数据库的孤立用户:</p>
<p>USE 库名</p>
<p>EXEC sp_change_users_login &#8216;Report&#8217;</p>
<p>2. 自动修复某个孤立用户:</p>
<p>USE 库名</p>
<p>EXEC sp_change_users_login &#8216;Auto_Fix&#8217;, &#8216;孤立用户名&#8217;, NULL, &#8216;密码&#8217;  </p>
<p>  &#8211;密码指用户对应的登录不存在时, 系统自动建立登录, 为登录分配的密码</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/1345.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQLServer2000数据库置疑的解决方法</title>
		<link>http://www.evanjiang.net.cn/archives/945.html</link>
		<comments>http://www.evanjiang.net.cn/archives/945.html#comments</comments>
		<pubDate>Tue, 21 Apr 2009 05:01:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[sqlserver]]></category>
		<category><![CDATA[sqlserver 数据库 恢复]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=945</guid>
		<description><![CDATA[<p style="float: right;margin: 4px;">


</p> <p>先分离数据库
企业管理器&#8211;右键suspect的数据库&#8211;所有任务&#8211;分离数据库
然后备份你的suspect数据库的文件,再按下面的步骤处理:
1.新建一个同名的数据库
2.再停掉sql server
3.用suspect数据库的文件覆盖掉这个新建的同名数据库
4.再重启sql server
5.此时打开企业管理器时新建的同名数据库会出现置疑，先不管，执行下面的语句（注意修改其中的数据库名)</p>
<p>USE MASTER
GO
SP_CONFIGURE &#8216;ALLOW UPDATES&#8217;,1 RECONFIGURE WITH OVERRIDE
GO
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME=&#8217;置疑的数据库名&#8217;
Go
sp_dboption &#8216;置疑的数据库名&#8217;, &#8216;single user&#8217;, &#8216;true&#8217;
Go
DBCC CHECKDB(&#8216;置疑的数据库名&#8217;)
Go
update sysdatabases set status =28 where name=&#8217;置疑的数据库名&#8217;
Go
sp_configure &#8216;allow updates&#8217;, 0 reconfigure with override
Go
sp_dboption &#8216;置疑的数据库名&#8217;, &#8216;single user&#8217;, &#8216;false&#8217;
Go
 
6.完成后一般就可以访问数据库中的数据,这时,数据库本身一般还要问题,解决办法是,利用
数据库的脚本创建一个新的数据库,并将数据导进去就行.
如果这样改不加数据库状态,你就把数据库导成一个新库来代替旧库吧
企业管理器&#8211;右键你的数据库&#8211;所有任务&#8211;导出数据
          &#8211;目标标数据库选择新建
     [...]]]></description>
			<content:encoded><![CDATA[<p>先分离数据库<br />
企业管理器&#8211;右键suspect的数据库&#8211;所有任务&#8211;分离数据库<br />
然后备份你的suspect数据库的文件,再按下面的步骤处理:<br />
1.新建一个同名的数据库<br />
2.再停掉sql server<br />
3.用suspect数据库的文件覆盖掉这个新建的同名数据库<br />
4.再重启sql server<br />
5.此时打开企业管理器时新建的同名数据库会出现置疑，先不管，执行下面的语句（注意修改其中的数据库名)</p>
<p>USE MASTER<br />
GO<br />
SP_CONFIGURE &#8216;ALLOW UPDATES&#8217;,1 RECONFIGURE WITH OVERRIDE<br />
GO<br />
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME=&#8217;置疑的数据库名&#8217;<br />
Go<br />
sp_dboption &#8216;置疑的数据库名&#8217;, &#8216;single user&#8217;, &#8216;true&#8217;<br />
Go<br />
DBCC CHECKDB(&#8216;置疑的数据库名&#8217;)<br />
Go<br />
update sysdatabases set status =28 where name=&#8217;置疑的数据库名&#8217;<br />
Go<br />
sp_configure &#8216;allow updates&#8217;, 0 reconfigure with override<br />
Go<br />
sp_dboption &#8216;置疑的数据库名&#8217;, &#8216;single user&#8217;, &#8216;false&#8217;<br />
Go<br />
 <span id="more-945"></span><br />
6.完成后一般就可以访问数据库中的数据,这时,数据库本身一般还要问题,解决办法是,利用<br />
数据库的脚本创建一个新的数据库,并将数据导进去就行.<br />
如果这样改不加数据库状态,你就把数据库导成一个新库来代替旧库吧<br />
企业管理器&#8211;右键你的数据库&#8211;所有任务&#8211;导出数据<br />
          &#8211;目标标数据库选择新建<br />
          &#8211;选择&#8221;在两个sql数据库之间复制对象和数据&#8221;<br />
          &#8211;把&#8221;包含扩展属性&#8221;选上,其他的根据需要选择<br />
          &#8211;最后完成。</p>
<p>
<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/945.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server 系统数据库恢复</title>
		<link>http://www.evanjiang.net.cn/archives/59.html</link>
		<comments>http://www.evanjiang.net.cn/archives/59.html#comments</comments>
		<pubDate>Wed, 17 Dec 2008 03:45:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[sqlserver]]></category>
		<category><![CDATA[sqlserver 数据库 恢复]]></category>

		<guid isPermaLink="false">http://www.hunttech.com.cn/wpblog/?p=59</guid>
		<description><![CDATA[<p>      在SQL Server2000数据库系统中，有多个系统数据库,如master,model,msdb,tempdb等。其中master数据库是最重要的数据库，存储的是SQL Server系统的所有系统级别信息</p>
<p>，包括磁盘空间，文件分配和使用、系统级的配置参数。同时还记录了所有的登录帐户信息、初始化信息和其他数据库信息。一旦master数据库异常，会导致整个数据库系统都无</p>
<p>法正常功能。由于master数据库的重要性，所以一般禁止用户直接访问，如果一定要修改，确保在修改前要做完整的数据备份。</p>
<p>　一：备份master数据库
　　　1:master数据库的备份场景：
　　　 在下列情况下，应该备份master数据库。
　　　 创建或删除用户数据库
　　　 添加/删除登录帐户或修改的数据库级别的角色，从而影响了整个数据库服务器的安全性
　　　 更改了服务器级别的配置选项或数据库配置选项
　 　　简单的说，也就是涉及到服务器级别的更改，都应该及时备份master。</p>
<p></p>
<p>           2:master数据库备份方法
　　　默认情况下，master数据库使用简单恢复模型，对于master数据库备份只需要使用完全备份。完全备份方法很简单，不多描述。
　　　　　　　　
  二：恢复master数据库基本思路
         如果master数据库损坏，SQL Server就不能启动，且在事件管理器中可以查看到相应的master数据库无法访问的日志信息。在这种情况下，就需要恢复master数据库。
　　恢复master数据库的思路比较清晰，主要分为如下步骤：
        1：重建全新master数据库,以保证SQL Server服务器可以启动。
        2：启动SQL Server服务后，通过企业管理器或命令，将SQL Server服务器置于单用户模式
　　3：在单用户模式下进行master数据库恢复
　　4：恢复完成后，将SQL Server实例重新置于多用户模式。
 
　三：恢复master数据库具体演示
     1：利用rebuildm.exe工具重建master数据库
　　 该工具在安装SQL Server实例时已经安装到程序目录下。默认路径为：
　　   C:\Program Files\Microsoft SQL Server\80\Tools\Binn
           运行该工具，在弹出的重建master窗口中，设置好正确的参数信息：SQL Server服务器,排序规则  以及SQL Server 2000安装文件中master文件所在路径。见下图：
              
 
          注：重建过程会重建全部四个系统数据库以及两个示例数据库northwind和pubs,接着对数据库服务器进行配置。
　　　　重建完成后，通过服务管理器或企业管理器启动SQL Server服务器。
　    　　需要注意的是：此时SQL Server数据库中只有dbo角色相关的登录帐户，且sa帐户密码已经重置为空。同时所有的用户数据库都不可见。








     2：将SQL Server服务器置于单用户模式
         将SQL Server服务器设置为单用户模式方法很简单：打开企业管理器，选择服务器右键单击，选择“属性”在“属性配置”窗口“常规”选项框单击“启动参数”，在“</p>
<p>启动参数”中添加“-m”参数。如下图：
            
 
     3：在单用户模式下进行master数据库恢复
　　 设置好单用户模式后，重新启动SQL Server实例,进入真正的master数据库还原。还原方式可以通过企业管理器进行还原
            </p>
<p>　　　也可以通过查询分析器运行T-SQL命令执行还原：
            
 
　　　注：使用企业管理器进行还原时，还原成功后可能会出现一些连接错误提示。建议使用查询分析器来执行还原，可以避免出现错误提示。</p>
<p>　4：恢复完成后，将SQL Server实例重置于多用户模式
          恢复完成后，重新启动SQL Server实例，去除第2步设置的单用户模式参数 -m。
　　重新启动SQL Server实例,打开企业管理器，可以看到所有的用户数据库已经可见，且安全性相关登录帐户也已经恢复！
 
        注：
          在恢复master数据库时model和msdb数据库也会被更建，
　　 所以master数据恢复完成后，应该立即还原model和msdb数据库。
 
     五：其它系统数据库的恢复
         对于其它系统数据库，如model数据库和msdb数据库都是很重要的系统数据库。model数据库作为所有新建的用户数据库和tempdb数据库的样板，任何新建数据库默认结构








都与model数据库一样。
　　Msdb数据库是SQLSERVER2000代理服务以及自动化作业使用的数据库。
         这两个数据库异常也会影响SQL Server服务器正常工作。
         特别是model数据库，是作为所有新建数据库的模板，如果model数据库损坏也会导致SQL [...]]]></description>
			<content:encoded><![CDATA[<p>      在SQL Server2000数据库系统中，有多个系统数据库,如master,model,msdb,tempdb等。其中master数据库是最重要的数据库，存储的是SQL Server系统的所有系统级别信息</p>
<p>，包括磁盘空间，文件分配和使用、系统级的配置参数。同时还记录了所有的登录帐户信息、初始化信息和其他数据库信息。一旦master数据库异常，会导致整个数据库系统都无</p>
<p>法正常功能。由于master数据库的重要性，所以一般禁止用户直接访问，如果一定要修改，确保在修改前要做完整的数据备份。</p>
<p>　一：备份master数据库<br />
　　　1:master数据库的备份场景：<br />
　　　 在下列情况下，应该备份master数据库。<br />
　　　 创建或删除用户数据库<br />
　　　 添加/删除登录帐户或修改的数据库级别的角色，从而影响了整个数据库服务器的安全性<br />
　　　 更改了服务器级别的配置选项或数据库配置选项<br />
　 　　简单的说，也就是涉及到服务器级别的更改，都应该及时备份master。</p>
<p><span id="more-59"></span></p>
<p>           2:master数据库备份方法<br />
　　　默认情况下，master数据库使用简单恢复模型，对于master数据库备份只需要使用完全备份。完全备份方法很简单，不多描述。<br />
　　　　　　　　<br />
  二：恢复master数据库基本思路<br />
         如果master数据库损坏，SQL Server就不能启动，且在事件管理器中可以查看到相应的master数据库无法访问的日志信息。在这种情况下，就需要恢复master数据库。<br />
　　恢复master数据库的思路比较清晰，主要分为如下步骤：<br />
        1：重建全新master数据库,以保证SQL Server服务器可以启动。<br />
        2：启动SQL Server服务后，通过企业管理器或命令，将SQL Server服务器置于单用户模式<br />
　　3：在单用户模式下进行master数据库恢复<br />
　　4：恢复完成后，将SQL Server实例重新置于多用户模式。<br />
 <br />
　三：恢复master数据库具体演示<br />
     1：利用rebuildm.exe工具重建master数据库<br />
　　 该工具在安装SQL Server实例时已经安装到程序目录下。默认路径为：<br />
　　   C:\Program Files\Microsoft SQL Server\80\Tools\Binn<br />
           运行该工具，在弹出的重建master窗口中，设置好正确的参数信息：SQL Server服务器,排序规则  以及SQL Server 2000安装文件中master文件所在路径。见下图：<br />
              <br />
 <br />
          注：重建过程会重建全部四个系统数据库以及两个示例数据库northwind和pubs,接着对数据库服务器进行配置。<br />
　　　　重建完成后，通过服务管理器或企业管理器启动SQL Server服务器。<br />
　    　　需要注意的是：此时SQL Server数据库中只有dbo角色相关的登录帐户，且sa帐户密码已经重置为空。同时所有的用户数据库都不可见。<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
     2：将SQL Server服务器置于单用户模式<br />
         将SQL Server服务器设置为单用户模式方法很简单：打开企业管理器，选择服务器右键单击，选择“属性”在“属性配置”窗口“常规”选项框单击“启动参数”，在“</p>
<p>启动参数”中添加“-m”参数。如下图：<br />
            <br />
 <br />
     3：在单用户模式下进行master数据库恢复<br />
　　 设置好单用户模式后，重新启动SQL Server实例,进入真正的master数据库还原。还原方式可以通过企业管理器进行还原<br />
            </p>
<p>　　　也可以通过查询分析器运行T-SQL命令执行还原：<br />
            <br />
 <br />
　　　注：使用企业管理器进行还原时，还原成功后可能会出现一些连接错误提示。建议使用查询分析器来执行还原，可以避免出现错误提示。</p>
<p>　4：恢复完成后，将SQL Server实例重置于多用户模式<br />
          恢复完成后，重新启动SQL Server实例，去除第2步设置的单用户模式参数 -m。<br />
　　重新启动SQL Server实例,打开企业管理器，可以看到所有的用户数据库已经可见，且安全性相关登录帐户也已经恢复！<br />
 <br />
        注：<br />
          在恢复master数据库时model和msdb数据库也会被更建，<br />
　　 所以master数据恢复完成后，应该立即还原model和msdb数据库。<br />
 <br />
     五：其它系统数据库的恢复<br />
         对于其它系统数据库，如model数据库和msdb数据库都是很重要的系统数据库。model数据库作为所有新建的用户数据库和tempdb数据库的样板，任何新建数据库默认结构<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
都与model数据库一样。<br />
　　Msdb数据库是SQLSERVER2000代理服务以及自动化作业使用的数据库。<br />
         这两个数据库异常也会影响SQL Server服务器正常工作。<br />
         特别是model数据库，是作为所有新建数据库的模板，如果model数据库损坏也会导致SQL Server服务不能启动，在这种情况下，也需要先重建master数据库,然后再依次</p>
<p>恢复master,model和msdb数据库，恢复操作与恢复master数据库操作相类似。<br />
         稍有不同的是，msdb数据库损坏不会导致SQL Server服务无法启动，此时只需通过企业管理器进行恢复工作即可！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/59.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
