如何修复SQLSERVER"置疑"之(二)

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

     如果因为磁盘可用空间不足,而不能完成数据库的恢复,那么  SQLSERVER2000会返回错误1105并且将sysdatabases中的status列设为 置疑

你可以看到在 SQLSERVER的ERRORLOG和OS的应用程序日志中应该有1105的错误信息:

SQLSERVER事务日志可能会被填满,这会阻止之后的数据库操作,包括UPDATE,DELETE,INSERT和CHECKPOINT。
事务日志填满会导致1105错误:
   Can'tallocatespaceforobjectsyslogsindatabasedbnamebecause
   thelogsegmentisfull。Ifyouranoutofspaceinsyslogs,dump
   thetransactionlog。OtherwiseuseALTERDATABASEor
   sp_extendsegmenttoincreasethesizeofthesegment。

这种现象可能出现于任何一个数据库中,包括Master和TempDB。一些难以预见的因素可能消耗日志空间。例如:
一个大型事务,尤其像批量数据更新、插入或删除。
一个未提交的事务。
检查点处理程序截除时所需的带宽过大。
截除时超过阈值
上述各种条件互相作用的结果。
用于发布的标记事务没有被日志读取程序读走


下面是 修复的步骤和收缩日志的步骤:

  1.在命令提示符下运行以下命令启动 SQLSERVER

            SQLSERVER-f-m

      备注:-m开关以单用户模式启动 SQLSERVER。在单用户模式下,只能成功建立一个连接。请注意是否有任何其他客户机或服务可能会在您通过 SQLSERVER查询分析器   建立连接前使用那个连接。

   2. 重置 置疑数据库的状态。

       sp_resetstatus'database_name'

下面是结果集:

Database'database_name'statusreset!WARNING:Youmustreboot SQLSERVERpriortoaccessingthisdatabase!


  3.用ALTERDATABASE向数据库添加一个数据文件或日志文件:

USEmasterGOCREATEDATABASEdb_nameON(NAME=dbname_dat1,FILENAME='D://Data/dbname_dat1.ndf',SIZE=1000MB,FILEGROWTH=50MB)GO

--更改该数据库以添加一个2GB大小的新数据文件ALTERDATABASEdb_nameADDFILE(NAME=dbname_dat2,FILENAME='F:/MSSQL/DATA/dbname_dat2.ndf',SIZE=2000MB,FILEGROWTH=50MB)GO--更改该数据库以添加一个1GB大小的新日志文件ALTERDATABASEdb_nameADDLOGFILE(NAME=db_name_log2,FILENAME='F:/MSSQL/Data/db_name_log2.ldf',SIZE=1000MB,FILEGROWTH=20MB),GO

    4.停止并重新启动 SQLSERVER:
  用新的数据文件或日志文件所提供的额外空间, SQLSERVER应该能完成数据库的恢复。

    5.释放磁盘空间并且重新运行恢复操作,按照下面的步骤收缩日志。
 sp_resetstatus关闭数据库的 置疑标志,但是原封不动地保持数据库的其它选项。


为从根本上解决这样的问题,你可以按下面的操作配置 SQLSERVER2000:
a.如果不需要恢复到指定的时间点,你可以将数据库的恢复模式配置为简单,这样
UPDATE,DELETE,SELECT就不会记录日志,日志就不会增加的很大:

    USEMASTER

   GO
    ALTERDATABASEDB_NAMESETRECOVERYSIMPLE
b.如果你的恢复模式是全部,你一定要配置日志字段收缩:

   USEMASTER

   GO
   sp_dboption'databasename','trunc.logonchkpt.',true
   sp_dboption'databasename','autoshrink',true上一页 
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值