程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 如何修復SQLSERVER數據庫“置疑”問題

如何修復SQLSERVER數據庫“置疑”問題

編輯:關於SqlServer
 你可以看到在SQLSERVER 的ERROR LOG 和OS的應用程序日志中應該有1105的錯誤信息:
  
  SQL Server事務日志可能會被填滿,這會阻止之後的數據庫操作,包括UPDATE, DELETE, INSERT 和CHECKPOINT。
  事務日志填滿會導致1105錯誤:
  Can't allocate space for object syslogs in database dbname because
  the logsegment is full。 If you ran out of space in syslogs, dump
  the transaction log。 Otherwise use ALTER DATABASE or
  sp_extendsegment to increase the size of the segment。
  
  這種現象可能出現於任何一個數據庫中,包括Master和TempDB。一些難以預見的因素可能消耗日志空間。 例如:
  一個大型事務, 尤其像批量數據更新、插入或刪除。
  一個未提交的事務。
  檢查點處理程序截除時所需的帶寬過大。
  截除時超過阈值
  上述各種條件互相作用的結果。
  用於發布的標記事務沒有被日志讀取程序讀走
  
  下面是修復的步驟和收縮日志的步驟:
  
  1.在命令提示符下運行以下命令啟動 SQL Server:
  SQLSERVER -f -m
  
  備注:-m 開關以單用戶模式啟動 SQL Server。在單用戶模式下,只能成功建立一個連接。 請注意是否有任何其他客戶機或服務可能會在您通過 SQL Server 查詢分析器  建立連接前使用那個連接。
  
  2. 重置置疑數據庫的狀態。
  sp_resetstatus 'database_name'
  
  下面是結果集:
  
  Database'database_name'status reset!
  WARNING: You must reboot SQL Server prior to Accessing this database!
  
  3. 用 ALTER DATABASE 向數據庫添加一個數據文件或日志文件:
  USE master
  GO
  CREATE DATABASE db_name ON
  (
  NAME = dbname_dat1,
  FILENAME = 'D:MSSQLDatadbname_dat1.ndf',
  SIZE = 1000MB,
  FILEGROWTH = 50MB
  )
  GO
  --更改該數據庫以添加一個 2GB 大小的新數據文件
  ALTER DATABASE db_name
  ADD FILE
  (
  NAME = dbname_dat2,
  FILENAME = 'F:MSSQLDATAdbname_dat2.ndf',
  SIZE = 2000MB,
  FILEGROWTH = 50MB
  )
  GO
  --更改該數據庫以添加一個1GB 大小的新日志文件
  ALTER DATABASE db_name
  ADD LOG FILE
  ( NAME = db_name_log2,
  FILENAME = 'F:MSSQLDatadb_name_log2.ldf',
  SIZE = 1000MB,
  FILEGROWTH = 20MB),
  GO
  
  4. 停止並重新啟動 SQL Server:
  用新的數據文件或日志文件所提供的額外空間,SQL Server 應該能完成數據庫的恢復。
  
  5. 釋放磁盤空間並且重新運行恢復操作,按照下面的步驟收縮日志。
  sp_resetstatus 關閉數據庫的置疑標志,但是原封不動地保持數據庫的其它選項。
  
  為從根本上解決這樣的問題,你可以按下面的操作配置SQLSERVER 2000:
  a.如果不需要恢復到指定的時間點,你可以將數據庫的恢復模式配置為簡單,這樣
  UPDATE,DELETE,SELECT就不會記錄日志,日志就不會增加的很大:
  
  USE MASTER
  
  GO
  ALTER DATABASE DB_NAME SET RECO
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved