SQL数据库置疑修复说明文档
生活随笔
收集整理的這篇文章主要介紹了
SQL数据库置疑修复说明文档
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SQL數據庫置疑修復說明文檔?
一, 數據庫置疑產生的原因?
二, 數據庫置疑的預防?
三, 數據庫置疑的修復?
一,數據庫置疑產生的原因?
1、 SQL?Server所在分區空間是否夠?數據庫文件大小是否達到最大文件限制??
FAT32的格式只支持四G以內的文件?
2、 數據庫文件損壞或被非正常刪除時出現這種情況?
3、 病毒防火墻的掃描也會引起數據庫置疑?
4、 當SQL?Server啟動時,將會嘗試獲得對數據庫文件的排他訪問權,如果此時該文件被其他程序占用,或者遺失,數據庫將會被標記為置疑。?
5、 電腦非法關機也會造成數據庫置疑?
6、 電腦磁盤有壞道有可能造成數據庫置疑?
二,數據庫置疑的預防?
1、 數據庫存放的盤符,空間是否夠大,經常檢查盤符的空間?
2、 數據庫存放的盤符的格式設置為NTFS格式?
3、 進行病毒清除時,盡量把SQL服務停掉,再進行檢查?
4、 盡量減少非正常關機?
5、 建議客戶購買后備電源?
6、 給客戶實施軟件之后一定要做好自動備份?
7、 建議客戶每隔一定時間手動備份一次?
三,數據庫置疑的修復?
1, 點擊后臺登錄時,如果提示如下圖片就有可能表示數據庫置疑了?
???
2, 需要確認檢查數據庫置疑,打開企業管理器中的數據庫目錄,如下圖顯示表示置疑?
??????
?????
下面所有修復置疑的語法,在沒有特別提到時,默認數據庫都請選擇(Master)數據庫)?
3, 修復置疑(必須在SQL的查詢分析器中才能進行數據修復置疑工作)?
A、 打開查詢分析器,當數據置疑之后在查詢分析器中是看不到置疑的數據庫名稱的,所以進入查詢分析器之后,所選數據庫默認(Master)數據庫即可。(復制下面置疑語法到查詢分析器中執行。?
--修復數據庫置疑的語法?
SP_configure?'allow?update',1?
go?
RECONFIGURE?WITH?OVERRIDE?
go?
update?sysdatabases?
set?status=-32768?
where?name='zmsoftpos_cs'--數據庫名稱?
go?
dbcc?rebuild_log('zmsoftpos_cs','D:\zmsoftpos_cs_log')--重新建立日志?
Go?
update?sysdatabases?
set?status=26?
where?name='zmsoftpos_cs'?
Go?
Sp_configure?'allow?update',0?
Go?
Reconfigure?with?override?
GO?
備注:其中所有的“zmsoftpos_cs”是置疑的數據庫名稱,請根據客戶實際的置疑數據庫進行更改名稱,其他的內容不變?
B、 拷入置疑語法之后,請按F5執行,如果顯示框內顯示的內容如下表示置疑修復成功?
??
C、 置疑修復成功之后,再到如上圖的master下拉框架內就可以選擇所修復的置疑數據庫了,此時置疑是修復成功了,但是并不代表此數據庫就沒有問題了,請暫時不要進軟件,我們還需要檢查數據庫有沒有問題。?
4, 檢查修復置疑好的數據庫是否正常?
A、 打開查詢分析器選中修復好的數據庫名稱,輸入“dbcc?checkdb”語法,再按F5執行,根據數據庫的大小執行需要的時間不確定,請耐心等待,執行完之后在顯示框內就會顯示一些相關內容如下圖:?
??
如上圖所示,把顯示框拖到最下面,如果“CHECKDB?發現了?0?個分配錯誤和?0?個一致性錯誤”即表示此數據庫已經好了,不用再修復了,客戶即可進入軟件進行操作了。?
備注:(以下的語法就不用再執行了)?
B、 如果執行“dbcc?checkdb”后顯示框內顯示了很多紅色的記錄,那么表示這個數據庫的有些表還有錯誤需要修復?
??
5, 修復過程如下:(修復過程中語法內的數據庫名稱都根據客戶使用的數據庫進行更改)?
A、 首先退出所有的客戶端軟件與企業管理器,只打開查詢分析器,默認數據庫“Master”,拷入如下語法執行:?
sp_dboption?'zmsoftpos_cs','single?user','true'?
備注:其中的數據庫名稱根據客戶使用的數據庫進行更改。此語法是把數據庫設置為“單用戶模式”?
B、 設置為單用戶模式之后,拷入如下語法進行多次執行?
dbcc??checkdb(zmsoftpos_cs,REPAIR_REBUILD)?
備注:數據庫名稱根據客戶使用的數據庫進行更改。此語法可以多次執行,也需要多次執行,每執行完一次拖到顯示框內的最后面如果“發現的是0個分配錯誤與O個一致性錯誤”就不用再修復了,只需執行下面語法即可?
Sp_dboption?'zmsoftpos_cs','single?User',?'False',?
備注:下面的語法也不需執行了。?
如果執行多次之后:“CHECKDB?發現了?N個分配錯誤和?N個一致性錯誤”不會再次減少時,表示此語法修復不成功,需要進行下面的修復過程。?
C、 再把下面語法拷進入,進行多次執行:?
dbcc?checkdb?('zmsoftpos_cs',REPAIR_allow_data_loss)?
備注:此語法的執行與上面“?B?”點中執行的語法過程一樣,執行到此步驟百分之九十以上的數據庫都是可以修復的。如果執行到最后分配錯誤與一致性錯誤還不減少,那么執行下面的”D”操作?
D、 拷入如下語法執行:?
?exec?sp_MSforeachtable?'dbcc?dbreindex(''?'')'?
備注:執行此語法時,此時的“?Master?”數據庫名稱一定要選擇修復的數據庫名稱,執行才會生效。執行完成之后,再使用“?dbcc?checkdb?”語法再檢查一次,如果是“發現的是0個分配錯誤與O個一致性錯誤”表示修復成功,如果是:“CHECKDB?發現了?N個分配錯誤和?N個一致性錯誤”?
表示此數據庫壞得很歷害,使用此方法已不能修復成功了。必面使用其他方法了。最后不管修復成不成功都要使用下面的語法結尾:?
Sp_dboption?'zmsoftpos_cs','single?User',?'False'?
備注:把之前的單用戶模塊解除掉?
6, 在上面的修復過程中不能解決的問題,再使用BCP命令語法進行修復?
??????例:以超市版本為例,超市版本的數據庫名稱為:zmsoftpos_cs?
A、打開帳套管理新建一個相同的帳套,數據庫名稱就會是zmsoftpos_cs_01的帳套名稱,新建好之后,一定要使用后臺登錄進去一次,再退出后臺。?
B、打開查詢分析器,選擇好帳套數據庫“zmsoftpos_cs”把下面的語法拷進入按F5執行:?
select?'if?EXISTS(SELECT?*?FROM?zmsoftpos_cs_01..sysobjects?WHERE?name?=?'?+?char(39)?+?name?+?char(39)?+??')'+char(13)+?'delete?from?zmsoftpos_cs_01..'+name?from?zmsoftpos_cs..sysobjects?where?type='U'and?name?not?in?('system_sheet_setup','system_mode_file','system_image')?order?by?name?
執行完成之后在下面的顯示框架內就會出現如下語法:?
??
使用鼠標左擊一下圖片中紅色圓圈內的按鈕,就會選中下面的語法,然后再到紅色圓圈內的按鈕上點鼠標右鍵,點擊另存為,就會出現如下對話:?
??
其中的保存類型一定要先選擇所有文件,然后再到文件名處,填寫好如圖片中輸入的名稱,然后點保存!?
C、以上的語法另存為之后,再拷入以下的語法執行:?
select?'bcp?zmsoftpos_cs..'+name+'?out?f:\data\'+name+'.txt?-c?-S127.0.0.1?-Usa_?-P422426362227001'?from?zmsoftpos_cs..sysobjects?where?xtype='U'??
and?name?not?in?('system_sheet_setup','system_mode_file','system_image')?order?by?name?
備注:以上的語法中有一個文件存放路徑,“f:\data\”此路徑根據實際的情況創建,然后更改過來,再執行。執行之后,按照上面的方法,點擊另存為如下圖:?
??
其中的保存類型也要先選擇所有文件,然后再到文件名中填入如圖上的名稱:導出數據.bat文件名,然后再點保存,保存的路徑一定要是上面語法中設置中文件夾的路徑。?
D、此時再選擇超市版本的zmsoftpos_cs_01的帳套名稱,然后在左上角的文件中打開找到之前保存的“刪除數據.sql”的文件,把其中的?
”delete?from”全部替換成“truncate?table”,然后再按F5執行。?
E、把D點的語法執行完成之后,還是選擇zmsoftpos_cs.01帳套再執行以下的語法:?
select?'bcp?zmsoftpos_cs_01..'+name+'?in?f:\data\'+name+'.txt?-c?-S127.0.0.1?-Usa_?-P422426362227001'??
from?zmsoftpos_cs..sysobjects?where?xtype='U'?and?name?not?in?('system_sheet_setup','system_mode_file','system_image')?order?by?name?
其中的路徑f:\data\一定要與“?C?”點中的路徑一致。按F5執行之后,按照C點的步驟,把顯示框內的語法另存為“導入數據.bat”的文件名,保存到語法的路徑文件夾內。?
F、以上的步驟操作完成之后,打開以上語法存放的徑路,先雙擊導出數據文件,雙擊之后就會出現如下對話框架:?
??
此界面表示,正在從原帳套里面把數據導出來,請您靜心等待,導出完成之后此界面會自動關閉的。?
等待完成之后,再雙擊”導入數據.bat”文件,也會出現如上的界面。也請您靜心等待,導出完成之后界面也會自動關閉。?
G、以上的步驟都完成之后,請把zmsoftpos_cs_01的帳套,備份一次,然后把zmsoftpos_cs與zmsoftpos_cs_01兩個帳套都刪掉,然后新建超市版本的帳套,把恢復備份的zmsoftpos_cs_01文件,此時您的數據庫修復的工作就大功告成了。。?
一, 數據庫置疑產生的原因?
二, 數據庫置疑的預防?
三, 數據庫置疑的修復?
一,數據庫置疑產生的原因?
1、 SQL?Server所在分區空間是否夠?數據庫文件大小是否達到最大文件限制??
FAT32的格式只支持四G以內的文件?
2、 數據庫文件損壞或被非正常刪除時出現這種情況?
3、 病毒防火墻的掃描也會引起數據庫置疑?
4、 當SQL?Server啟動時,將會嘗試獲得對數據庫文件的排他訪問權,如果此時該文件被其他程序占用,或者遺失,數據庫將會被標記為置疑。?
5、 電腦非法關機也會造成數據庫置疑?
6、 電腦磁盤有壞道有可能造成數據庫置疑?
二,數據庫置疑的預防?
1、 數據庫存放的盤符,空間是否夠大,經常檢查盤符的空間?
2、 數據庫存放的盤符的格式設置為NTFS格式?
3、 進行病毒清除時,盡量把SQL服務停掉,再進行檢查?
4、 盡量減少非正常關機?
5、 建議客戶購買后備電源?
6、 給客戶實施軟件之后一定要做好自動備份?
7、 建議客戶每隔一定時間手動備份一次?
三,數據庫置疑的修復?
1, 點擊后臺登錄時,如果提示如下圖片就有可能表示數據庫置疑了?
???
2, 需要確認檢查數據庫置疑,打開企業管理器中的數據庫目錄,如下圖顯示表示置疑?
??????
?????
下面所有修復置疑的語法,在沒有特別提到時,默認數據庫都請選擇(Master)數據庫)?
3, 修復置疑(必須在SQL的查詢分析器中才能進行數據修復置疑工作)?
A、 打開查詢分析器,當數據置疑之后在查詢分析器中是看不到置疑的數據庫名稱的,所以進入查詢分析器之后,所選數據庫默認(Master)數據庫即可。(復制下面置疑語法到查詢分析器中執行。?
--修復數據庫置疑的語法?
SP_configure?'allow?update',1?
go?
RECONFIGURE?WITH?OVERRIDE?
go?
update?sysdatabases?
set?status=-32768?
where?name='zmsoftpos_cs'--數據庫名稱?
go?
dbcc?rebuild_log('zmsoftpos_cs','D:\zmsoftpos_cs_log')--重新建立日志?
Go?
update?sysdatabases?
set?status=26?
where?name='zmsoftpos_cs'?
Go?
Sp_configure?'allow?update',0?
Go?
Reconfigure?with?override?
GO?
備注:其中所有的“zmsoftpos_cs”是置疑的數據庫名稱,請根據客戶實際的置疑數據庫進行更改名稱,其他的內容不變?
B、 拷入置疑語法之后,請按F5執行,如果顯示框內顯示的內容如下表示置疑修復成功?
??
C、 置疑修復成功之后,再到如上圖的master下拉框架內就可以選擇所修復的置疑數據庫了,此時置疑是修復成功了,但是并不代表此數據庫就沒有問題了,請暫時不要進軟件,我們還需要檢查數據庫有沒有問題。?
4, 檢查修復置疑好的數據庫是否正常?
A、 打開查詢分析器選中修復好的數據庫名稱,輸入“dbcc?checkdb”語法,再按F5執行,根據數據庫的大小執行需要的時間不確定,請耐心等待,執行完之后在顯示框內就會顯示一些相關內容如下圖:?
??
如上圖所示,把顯示框拖到最下面,如果“CHECKDB?發現了?0?個分配錯誤和?0?個一致性錯誤”即表示此數據庫已經好了,不用再修復了,客戶即可進入軟件進行操作了。?
備注:(以下的語法就不用再執行了)?
B、 如果執行“dbcc?checkdb”后顯示框內顯示了很多紅色的記錄,那么表示這個數據庫的有些表還有錯誤需要修復?
??
5, 修復過程如下:(修復過程中語法內的數據庫名稱都根據客戶使用的數據庫進行更改)?
A、 首先退出所有的客戶端軟件與企業管理器,只打開查詢分析器,默認數據庫“Master”,拷入如下語法執行:?
sp_dboption?'zmsoftpos_cs','single?user','true'?
備注:其中的數據庫名稱根據客戶使用的數據庫進行更改。此語法是把數據庫設置為“單用戶模式”?
B、 設置為單用戶模式之后,拷入如下語法進行多次執行?
dbcc??checkdb(zmsoftpos_cs,REPAIR_REBUILD)?
備注:數據庫名稱根據客戶使用的數據庫進行更改。此語法可以多次執行,也需要多次執行,每執行完一次拖到顯示框內的最后面如果“發現的是0個分配錯誤與O個一致性錯誤”就不用再修復了,只需執行下面語法即可?
Sp_dboption?'zmsoftpos_cs','single?User',?'False',?
備注:下面的語法也不需執行了。?
如果執行多次之后:“CHECKDB?發現了?N個分配錯誤和?N個一致性錯誤”不會再次減少時,表示此語法修復不成功,需要進行下面的修復過程。?
C、 再把下面語法拷進入,進行多次執行:?
dbcc?checkdb?('zmsoftpos_cs',REPAIR_allow_data_loss)?
備注:此語法的執行與上面“?B?”點中執行的語法過程一樣,執行到此步驟百分之九十以上的數據庫都是可以修復的。如果執行到最后分配錯誤與一致性錯誤還不減少,那么執行下面的”D”操作?
D、 拷入如下語法執行:?
?exec?sp_MSforeachtable?'dbcc?dbreindex(''?'')'?
備注:執行此語法時,此時的“?Master?”數據庫名稱一定要選擇修復的數據庫名稱,執行才會生效。執行完成之后,再使用“?dbcc?checkdb?”語法再檢查一次,如果是“發現的是0個分配錯誤與O個一致性錯誤”表示修復成功,如果是:“CHECKDB?發現了?N個分配錯誤和?N個一致性錯誤”?
表示此數據庫壞得很歷害,使用此方法已不能修復成功了。必面使用其他方法了。最后不管修復成不成功都要使用下面的語法結尾:?
Sp_dboption?'zmsoftpos_cs','single?User',?'False'?
備注:把之前的單用戶模塊解除掉?
6, 在上面的修復過程中不能解決的問題,再使用BCP命令語法進行修復?
??????例:以超市版本為例,超市版本的數據庫名稱為:zmsoftpos_cs?
A、打開帳套管理新建一個相同的帳套,數據庫名稱就會是zmsoftpos_cs_01的帳套名稱,新建好之后,一定要使用后臺登錄進去一次,再退出后臺。?
B、打開查詢分析器,選擇好帳套數據庫“zmsoftpos_cs”把下面的語法拷進入按F5執行:?
select?'if?EXISTS(SELECT?*?FROM?zmsoftpos_cs_01..sysobjects?WHERE?name?=?'?+?char(39)?+?name?+?char(39)?+??')'+char(13)+?'delete?from?zmsoftpos_cs_01..'+name?from?zmsoftpos_cs..sysobjects?where?type='U'and?name?not?in?('system_sheet_setup','system_mode_file','system_image')?order?by?name?
執行完成之后在下面的顯示框架內就會出現如下語法:?
??
使用鼠標左擊一下圖片中紅色圓圈內的按鈕,就會選中下面的語法,然后再到紅色圓圈內的按鈕上點鼠標右鍵,點擊另存為,就會出現如下對話:?
??
其中的保存類型一定要先選擇所有文件,然后再到文件名處,填寫好如圖片中輸入的名稱,然后點保存!?
C、以上的語法另存為之后,再拷入以下的語法執行:?
select?'bcp?zmsoftpos_cs..'+name+'?out?f:\data\'+name+'.txt?-c?-S127.0.0.1?-Usa_?-P422426362227001'?from?zmsoftpos_cs..sysobjects?where?xtype='U'??
and?name?not?in?('system_sheet_setup','system_mode_file','system_image')?order?by?name?
備注:以上的語法中有一個文件存放路徑,“f:\data\”此路徑根據實際的情況創建,然后更改過來,再執行。執行之后,按照上面的方法,點擊另存為如下圖:?
??
其中的保存類型也要先選擇所有文件,然后再到文件名中填入如圖上的名稱:導出數據.bat文件名,然后再點保存,保存的路徑一定要是上面語法中設置中文件夾的路徑。?
D、此時再選擇超市版本的zmsoftpos_cs_01的帳套名稱,然后在左上角的文件中打開找到之前保存的“刪除數據.sql”的文件,把其中的?
”delete?from”全部替換成“truncate?table”,然后再按F5執行。?
E、把D點的語法執行完成之后,還是選擇zmsoftpos_cs.01帳套再執行以下的語法:?
select?'bcp?zmsoftpos_cs_01..'+name+'?in?f:\data\'+name+'.txt?-c?-S127.0.0.1?-Usa_?-P422426362227001'??
from?zmsoftpos_cs..sysobjects?where?xtype='U'?and?name?not?in?('system_sheet_setup','system_mode_file','system_image')?order?by?name?
其中的路徑f:\data\一定要與“?C?”點中的路徑一致。按F5執行之后,按照C點的步驟,把顯示框內的語法另存為“導入數據.bat”的文件名,保存到語法的路徑文件夾內。?
F、以上的步驟操作完成之后,打開以上語法存放的徑路,先雙擊導出數據文件,雙擊之后就會出現如下對話框架:?
??
此界面表示,正在從原帳套里面把數據導出來,請您靜心等待,導出完成之后此界面會自動關閉的。?
等待完成之后,再雙擊”導入數據.bat”文件,也會出現如上的界面。也請您靜心等待,導出完成之后界面也會自動關閉。?
G、以上的步驟都完成之后,請把zmsoftpos_cs_01的帳套,備份一次,然后把zmsoftpos_cs與zmsoftpos_cs_01兩個帳套都刪掉,然后新建超市版本的帳套,把恢復備份的zmsoftpos_cs_01文件,此時您的數據庫修復的工作就大功告成了。。?
總結
以上是生活随笔為你收集整理的SQL数据库置疑修复说明文档的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CoreAnimation —— CAR
- 下一篇: POJ-3041 匈牙利算法 二分图最大