好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > SQLServer 數據修復命令DBCC一覽

SQLServer 數據修復命令DBCC一覽

熱門標簽:鎮江網路外呼系統供應商 申請400電話在哪辦理流程 外呼運營商線路收費 臨沂智能電銷機器人加盟哪家好 貴州房產智能外呼系統供應商 電銷外呼有錄音系統有哪些 小e電話機器人 一個導航軟件能用幾個地圖標注點 百度地圖標注改顏色
1. DBCC CHECKDB
  重啟服務器后,在沒有進行任何操作的情況下,在SQL查詢分析器中執行以下SQL進行數據庫的修復,修復數據庫存在的一致性錯誤與分配錯誤。
use master
declare @databasename varchar(255)
set @databasename='需要修復的數據庫實體的名稱'
exec sp_dboption @databasename, N'single', N'true' --將目標數據庫置為單用戶狀態
dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(@databasename,REPAIR_REBUILD)
exec sp_dboption @databasename, N'single', N'false'--將目標數據庫置為多用戶狀態
然后執行 DBCC CHECKDB('需要修復的數據庫實體的名稱') 檢查數據庫是否仍舊存在錯誤。注意:修復后可能會造成部分數據的丟失。
2. DBCC CHECKTABLE
如果DBCC CHECKDB 檢查仍舊存在錯誤,可以使用DBCC CHECKTABLE來修復。
use 需要修復的數據庫實體的名稱
declare @dbname varchar(255)
set @dbname='需要修復的數據庫實體的名稱'
exec sp_dboption @dbname,'single user','true'
dbcc checktable('需要修復的數據表的名稱',REPAIR_ALLOW_DATA_LOSS)
dbcc checktable('需要修復的數據表的名稱',REPAIR_REBUILD)
------把' 需要修復的數據表的名稱'更改為執行DBCC CHECKDB時報錯的數據表的名稱
exec sp_dboption @dbname,'single user','false'
3. 其他的一些常用的修復命令
DBCC DBREINDEX 重建指定數據庫中表的一個或多個索引
用法:DBCC DBREINDEX (表名,'') 修復此表所有的索引。
===================================
SQL SERVER數據庫的檢測及修復方法
隨著K/3產品的推廣,要求客戶服務人員對SQL SERVER數據庫的了解也進一步提高。在K/3的使用過程中,數據庫文件被頻繁地使用,由于某些原因,數據庫有可能被損壞,本文將針對這種情況的數據庫檢測及修復方法做一簡單講解。希望各位在實際工作過程中有新的發現時,及時給我們提供信息,以便做進一步的更新。
1.1 SQL SERVER數據庫的檢測
SQL SERVER提供了數據庫檢測的命令,可用DBCC CHECKDB對數據庫中各個對象的分配及結構的正確性進行檢測,并可通過一參數控制,將所有的錯誤信息顯示出來。其語法如下:
DBCC CHECKDB
('database_name' [,NOINDEX | { REPAIR_ALLOW_DATA_LOSS
| REPAIR_FAST
| REPAIR_REBUILD
}]
) [WITH {ALL_ERRORMSGS | NO_INFOMSGS}]
參數說明:
'database_name'代表被檢測的數據庫實體名;
NOINDEX指非系統表的非聚族索引不檢測;
REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST| REPAIR_REBUILD 指直接修復發現的錯誤,其中REPAIR_ALLOW_DATA_LOSS代表,若此錯誤不能修復時,系統將直接刪除相關數據。帶此三個參數的任一個時,數據庫必須處于單用戶模式,可在Enterprise Manager中的數據庫屬性中設置;
ALL_ERRORMSGS代表將檢測到的錯誤信息全部顯示出來,否則,對于每張表最多只顯示200條錯誤信息;
NO_INFOMSGS代表隱藏所有的信息及占用空間的報告。
經過檢測,對于錯誤的對象,將以OBJECT ID的形式報告具體出錯的信息,可根據OBJECT ID到系統表sysobjects中查找到相關的表,即NAME。
1.2 SQL SERVER問題數據庫的修復
經過數據庫檢測后,可針對出現的問題采取相應的措施進行處理。如通過檢測后,發現對象的物理存放存在問題,可用DBCC CHECKALLOC來進行修復:
DBCC CHECKALLOC ('database_name' | REPAIR_REBUILD }] ) [WITH {ALL_ERRORMSGS | NO_INFOMSGS}]
若是非系統對象的索引出錯,則可用DBCC DBREINDEX進行修復:
DBCC DBREINDEX ( [ 'database.owner.table_name' [, index_name [, fillfactor ] ] ] ) [WITH NO_INFOMSGS]
以上兩種情況,也可直接使用DBCC CHECKDB(‘db_name',repair_rebuild)來修復。
另外一種情況是在進行檢測時,提示無法建立數據連接,此時表明,數據庫已損壞。對于這種情況,我們可采取如下措施來嘗試修復。
首先,在SQL Enterprise中新建一數據庫(如數據庫名為test),建好數據庫后,停止SQL Server Service Manager,并將客戶數據庫的MDF文件更名為test _data.mdf(即新建數據庫的主文件名),然后用更名后的文件覆蓋新建數據庫同名文件,接著,啟動SQL Server Service Manager。對Master數據庫將系統表設置為可更改狀態
Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go
將數據庫設為緊急狀態:
update sysdatabases set status = 32768 where database '
停止并重新啟動SQL Server Service Manager,并重建Log文件:
DBCC TRACEON (3604)
DBCC REBUILD_LOG(' test ','test _log_ldf')
將數據庫設置為單用戶模式,然后進行檢測:
sp_dboption ' test ', 'single user', 'true'
DBCC CHECKDB(' test ')
Go
此數據庫執行CHECKDB的過程中發現一些表的索引被破壞,于是針對具體的表進行重建索引的操作:
DBCC DBREINDEX(表名)
如執行以上操作仍然不能解決,若索引破壞的表是臨時表或不是關鍵表,則可從新建賬套中引入,若是主表,則可能通過近期的備份來(部份)恢復。若沒有一個備份,則無法修復。
1.3 SQL Server數據庫為什么易損壞呢?
以下是微軟提供的一些可能引起數據庫損壞的原因及一些預防措施:
操作問題,包括冷起動機器、熱拔硬盤、刪除一些數據庫文件;
硬件問題,包括磁盤控制器的問題;
操作系統問題,包括與系統相關的一些致命錯誤。
1.4 預防措施:
1、定期/不定期執行CHKDSK(不帶參數),以檢測硬盤物理結構并修復一些CHKDSK報告的問題;
2、常備份數據。
1.5 應用數據庫修復舉例
declare @databasename varchar(255)
set @databasename='AIS20021224170730'------一定要手工輸入
---------執行一般性修復還存在問題時,進行允許數據丟失的修復
---------許數據丟失的修復要求在單用戶下進行,此時請退出中間層,客戶端,sql的其他模塊
---所有功能退出,在查詢分析器master里設置數據庫為單用戶
exec sp_dboption @databasename, N'single', N'true'
-----在查詢分析器master里,進行修復數據庫
dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(@databasename,REPAIR_REBUILD)
------還原數據庫狀態
exec sp_dboption @databasename, N'single', N'false'
第2章數據庫日志損壞的修復
請遵照如下步驟來試圖重建數據庫事務日志.
注意: 由于事務日志丟失, 數據庫可能有沒有提交的數據.
注:都要替換成真實的數據庫名字
2.1 步驟1:
創建一個新的數據庫,命名為原來數據庫的名字.
2.2步驟2:
停止SQL Server
2.3步驟3:
把老數據庫的MDF文件替換新數據庫的相應的MDF文件, 并把LDF文件刪除
2.4步驟4:
重新啟動SQL Server 服務,然后運行如下命令:
復制代碼 代碼如下:

Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go
begin tran
update sysdatabases set status = 32768 where db_name'
-- Verify one row is updated before committing
commit tran

2.5步驟5:
停止SQL然后重新啟動SQL Server 服務,然后運行如下命令:
DBCC TRACEON (3604)
DBCC REBUILD_LOG('db_name','c:\mssql7\data\dbxxx_3.LDF')
Go
2.6步驟6:
停止SQL然后重新啟動SQL Server 服務,然后運行:
復制代碼 代碼如下:

use master
update sysdatabases set status = 8 where
Go
sp_configure 'allow updates', 0
reconfigure with override
Go

2.7步驟7:
運行dbcc checkdb(db_name)檢查數據庫的完整性.
第3章 數據庫質疑的一般處理
1、執行如下SQL(打開修改系統表的開關):
EXEC sp_configure 'allow updates', 1
RECONFIGURE WITH OVERRIDE
2、修改數據庫Master中的表:sysdatabases
將 status字段數值更改為4
3、再執行如下SQL:
EXEC sp_configure 'allow updates', 0
RECONFIGURE WITH OVERRIDE。

標簽:延邊 保定 澳門 嘉興 晉城 合肥 日照 三明

巨人網絡通訊聲明:本文標題《SQLServer 數據修復命令DBCC一覽》,本文關鍵詞  SQLServer,數據修復,命令,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQLServer 數據修復命令DBCC一覽》相關的同類信息!
  • 本頁收集關于SQLServer 數據修復命令DBCC一覽的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 两男生互摸jiji秘?网站| 五月丁香六月激情综合啪| 色综合图片二区150p| 富二代小视频软件下载| 色噜噜视频网| 欧美xxxxx俄罗斯老妇| 女同学用丝袜脚玩我蛋| 积积对积积的桶免费| 无码人妻一区二区三区性色aV在线| 护士的色诱2韩国电影| 一本色道久久88亚洲精品综合| 美女被摸胸| 91p65.com| 两攻一受肉调教打屁股| jzzijzzij亚洲成熟少妇在线播放| 人妻夜夜爽天天爽三区麻豆av网站| 亚洲精品在线观看91| 我的娇妻(queen-time)| 宁明县| 国产区欧美| 日韩黄色影院| 高清码????裸体网站| 日本狠狠狠狠曰狠狠狠狠爱| 亚洲另类欧美日韩| 我解开了岳坶的乳奶水| 罗志祥5G天天奭免费高清电视剧| 免费观看欧美大片毛试看区| 国产激情在线| 大香伊在线| 杨幂大战老外三分钟四十八秒 | 伊人久久大香色综合久久五月色| 两个裸男脱了内裤互摸的视频| 极品另类????| 精品99国产精亚洲天天天天天| 欧美亚洲另类综合| 被cao是什么感觉全程| 中国特黄毛片| 尤物的两个硕大的乳球| 母狗校花| 中国xxxxx普通话对白| 少妇性色午夜婬片AAA片软件|