當前位置:首頁 » 編程語言 » sql數據置疑
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql數據置疑

發布時間: 2023-03-28 09:57:07

1. sql資料庫置疑怎麼處理

修復方法

  • 1

    打開SQL企業管理器

    按序打開 ,開始--所有程序(或程序)--Microsoft SQL Server--企業管理器

    打開後按序點+號展開直到資料庫

2. 如何解決SQL Server資料庫置疑問題

您好,是這樣的:
1.首先確認已經備份了.mdf和.ldf文件。
2. 在SQL Server中新建一個同名的資料庫,然後停止SQL Server服務。

3. 用原有的.mdf和.ldf文件覆蓋新建資料庫對應的.mdf和.ldf文件。
4. 重新啟動SQL Server服務,這是應該會看到這個資料庫處於置疑(Suspect)狀態。
5. 在SQL查詢分析器中執行以下命令,以允許更新系統表:use mastergosp_configure "allow updates",1reconfigurewithoverridego。
6. 將這個資料庫置為緊急模式:update sysdatabases set status = 32768 where name="db_name"go。
7. 使用DBCC CHECKDB命令檢查資料庫中的錯誤:DBCC CHECKDB("db_name")GO。
8. 如果DBCC CHECKDB命令失敗,請轉至第10步,否則先將資料庫置為單用戶模式,再嘗試對其進行修復:sp_dboption "db_name","single
user","true"DBCCCHECKDB("db_name",REPAIR_ALLOW_DATA_LOSS)GO
如果在執行DBCCCHECKDB("db_name",REPAIR_ALLOW_DATA_LOSS)命令時提示說資料庫未處於單用戶模式狀態的話,則重新啟動SQLServer服務,然後繼續嘗試。
9. 如果DBCCCHECKDB("db_name",REPAIR_ALLOW_DATA_LOSS)命令失敗,請轉至第10步,否則若成功修復了資料庫中的錯誤:
重新執行DBCC CHECKDB("db_name")命令,確認資料庫中已沒有錯誤存在。
清除資料庫的置疑狀態:sp_resetstatus "db_name"
清除資料庫的單用戶模式狀態:sp_dboption "db_name","single user","false"
重新啟動SQL Server服務,如果一切正常的話,則資料庫已經成功恢復。
10.如果以上步驟都不能解決問題的話,請參考附件中的文檔嘗試通過重建事務日誌來恢復資料庫中的數據。如果您只有MDF文件,問題就更加復雜一些,我們需要直接重建事務日誌了:
1. 在SQL Server中新建一個同名的資料庫,然後停止SQL Server服務。
2. 用原有的ldf文件覆蓋新建資料庫對應的.mdf文件,將其日誌文件(.ldf)刪除。
3. 啟動SQL Server服務,並將資料庫置為緊急模式(同上: 步驟5和步驟6)。
4. 停止並重新啟動SQL Server服務。
5. 執行以下命令重建資料庫日誌文件:(下面是個示例,您要用您實際的資料庫名)
DBCC REBUILD_LOG("cas_db", "D:\cas_db\cas_db_Log.LDF")
6. 重新將該資料庫置為單用戶模式。
7. 再次嘗試使用DBCC CHECKTABLE或DBCC CHECKDB命令檢查並修復資料庫中。

3. sql資料庫置疑 data里找不到該資料庫的數據 怎麼辦

先使用「無日誌附加」的方法進行附加數據後,對資料庫做DBCC檢測,然後針對錯誤進行修復
。一般如果資料庫正在進行讀寫操作,突然斷電,會導致資料庫無法回寫正常的數據,這樣就會導致資料庫索引及其它錯誤,常見的有「並閆鎖頁錯誤」、「表錯誤:
分配單元ID
169144,頁(1:XXXX)。測試(IS_OFF
(BUF_IOERR,
pBUF->bstat))失敗。」,可以先用DBCC先進行修復
,命令:
DBCC
CHECKDB(DBName,REPAIR_FAST)
--不丟失數據
DBCC
CHECKDB(DBName,REPAIR_REBUILD)--不丟失數據
DBCC
CHECKDB(DBName,REPAIR_ALLOW_DATA_LOSS)--會丟失數據
如果還是修復不好,就找專業的數據恢復公司做修復吧,可以找北亞數據恢復修復
,他們修復SQL資料庫很厲害。。。

4. sql2000資料庫置疑怎麼處理

1、新建一同名資料庫(文件名,文件組都和原來的一樣),然後停止資料庫服務,用原來文件替換新建的資料庫文件,啟動資料庫,該資料庫被設為suspect
2、把資料庫改成緊急模式:
sp_configure
'allow',
1
reconfigure
with
override
update
sysdatabases
set
status
=
32768
where
name
=
'資料庫名'
3、把LDF文件改名,再執行
DBCC
REBUILD_LOG
('資料庫名',
'E:\fdzz\database\fdzz1204_Log.LDF'
)
4、恢復資料庫緊急模式
update
sysdatabases
set
status
=
0
where
name
=
'資料庫名'
如果不行,你就去看這篇文章.
http://www.flashmayi.com/article/show.php?id=8363&spn=1

5. sql資料庫置疑,錯誤代碼926,請問要如何修復

請輸入你的答案...
資料庫926錯誤解決方案在做任何操作前首先備份資料庫的數據文件和日誌文件!以及最新的備份文件!第一種解決方法:先刪除報錯資料庫,再新建一同名資料庫,然後暫停Service
manager(及sql
server
服務)
,刪除庫文件和日誌文件再啟動Service
manager
,使用單數據文件恢復資料庫命令恢復資料庫。例:打開sql
server/tools/sql
server
query
analyzer
執行下面操作
EXEC
sp_attach_single_file_db
@dbname
=
'pubs',
@physname
=
'c:\mssql7\data\pubs.mdf'
說明:『pubs』為要恢復的資料庫名稱,『c:\mssql7\data\pubs.mdf』為要恢復的資料庫的庫文件的具體路徑和文件名稱。再重新啟動一下service
manager
,看能否正常打開處理後的資料庫;如果不可以再使用第二種方案。第二種解決方法:打開sql
server/tools/sql
server
query
analyzer
執行下面操作
USE
MASTER
GO
sp_configure
'allow
update',1
RECONFIGURE
WITH
OVERRIDE
GO
UPDATE
sysdatabases
set
status
=
32768
WHERE
name
=
'db_pos363'
GO
sp_configure
'allow
update',0
RECONFIGURE
WITH
OVERRIDE
GO
說明:'db_pos363'是要修復的資料庫名稱。執行完畢再重啟一下Service
manager打開資料庫看是否處於緊急狀態!再從另一裝有sql
2000的機器上連接報錯的資料庫,然後再在sql
2000的機器上新建一資料庫,再使用sql
2000自帶的資料庫導入導出功能(在新建的資料庫上單擊右鍵/所有任務/數據導入、數據導出)從報錯資料庫導入數據到新建的資料庫中!在導入選項中注意以下幾項:
1,
導入方式選擇分『從源資料庫復製表和視圖』以及『從sql
server資料庫間復制對象和數據』。當選擇從源資料庫復製表和視圖時一定要選擇全部表!
2,
當選擇『從sql
server資料庫間復制對象和數據』時,在『導入導出向導』對話框中去除『使用默認選項』的選中標志;再在打開『選項』對話框,去除以下三項的選中標志。A,復制數據用戶和資料庫角色;B,復制sql
server
登陸;C,復制對象及許可權。
3,
在使用『從sql
server資料庫間復制對象和數據』時,有時會出現單張表導入失敗,這時有時會在導入結束時提示那幾張表導入失敗有時不提示,如果提示,就再使用『從源資料庫復製表和視圖』並選中導入失敗的表重新導入一遍;如果不提示就只能在一張張表打開查看了,發現空表後再使用『從源資料庫復製表和視圖』導入需要導入的表!導入成功後再刪除sql
server
7.0機器上處於緊急狀態的資料庫,再新建一個同名資料庫,建好後再使用sql
2000的資料庫導出功能導出到此資料庫中,在導出過程中同樣要注意導入時的注意事項!

6. sql server2000資料庫置疑還能用嗎

在MS SQLSERVER中一直有這樣的問題,SQLSERVER的狀態"置疑",原因約有以下幾條:
1.錯誤的刪除日誌;
2.硬體(HD)損壞,造成日誌和數據文件寫錯誤;
3.硬碟的空間不夠,比如日誌文件過大;
解決辦法:
最簡單的辦法是有資料庫的全備份,然後恢復即可.
步驟:
1. 刪除原始的資料庫:
USE MASTER
GO
DROP DATABASE DB_SUEPECT
2.建立同名的資料庫:
USE master
GO
CREATE DATABASE DB_SUSPECT
ON
( NAME = DBNAME_DAT,
FILENAME = 'C:',
SIZE = 10,
FILEGROWTH = 5 )
LOG ON
( NAME = 'DBNAME_LOG',
FILENAME = 'g:',
SIZE = 5MB,
FILEGROWTH = 5MB )
GO
3.恢復資料庫:
RESTORE DATABASE DB_SUSPECT
FROM DBNAME_BACKUP.DAT
4.資料庫完整性檢測:
DBCC CHECKDB('DB_SUSPECT')
5.重新啟動MSSQLSERVER服務.
如果沒有全備份,那就要用一些特殊的方法:
1.設置資料庫為緊急模式
Use Master
GO
sp_configure 'allow updates', 1
reconfigure with override
GO
UPDATE sysdatabases SET status = 32768 where name = '乎孝DB_SUSPECT'
GO
2.停掉SQL Server服務:
.Net STOP MSSQLSERVER
3.把原始資料庫的數據文件DBNAME_DAT.MDF,DBNAME_LOG.LDF移走:
4.啟動SQL Server服務:
.Net START MSSQLSERVER
5.重新建立一個同名的資料庫DB_SUSPECT;
USE master
GO
CREATE DATABASE DB_SUSPECT
ON
( NAME = DBNAME_DAT,
FILENAME = 'C:',
SIZE = 10,
FILEGROWTH = 5 )
LOG ON
( NAME = 'DBNAME_LOG',
FILENAME = 'g:',
SIZE = 5MB,
FILEGROWTH = 5MB )
GO
6.設置數據禪頃塵庫運行在單用戶的模式:
USE MASTER
GO
ALTER DATABASE DB_SUSPECT SET SINGLE_USER
GO
7.停掉SQL服務:
.Net STOP MSSQLSERVER
8.把原來的數據文件再覆蓋回來:
9.啟動SQL Server服務:
.Net START MSSQLSERVER
10.重新設置SQLSERVER的狀態:
USE MASTER
GO
EXEC sp_resetstatus "DB_SUSPECT"
11.資料庫完整性檢測:
DBCC CHECKDB('DB_SUSPECT')
12.恢復資料庫為多用戶模式:
USE MASTER
GO
ALTER DATABASE DB_SUSPECT SET MULTI_USER
GO
13.恢復SQLSERVER原始的配置:
USE MATER
GO
UPDATE sysdatabases SET status = 4194320 where name = 'DB_SUSPECT'
GO
14.配置SQLSERVER不允許更新系統表:
USE MASTER
GO
sp_configure 'allow updates', 0
reconfigure with override
GO
15.重新啟動MSSQLSERVER服務:
最好重新啟動操作系統
16.備份資料庫:
可以通過SQLSERVER企業管理器或T-SQL.需要備份MASTER和DB_SUSPECT
補賀禪充一點,如果用DOMAIN\USER時,要注意對.MDF.LDF的所在目錄的許可權.
靈驗腳本
遇到這種資料庫置疑情況,就運行下面這個腳本,屢試不爽:
======================================================
--before running any script, run the following to set the
master database to allow updates
USE master
GO
sp_configure 'allow updates', 1
GO
RECONFIGURE WITH OVERRIDE
GO

--Run the following script
UPDATE master..sysdatabases SET status = status ^ 256
WHERE name = 'Database_Name'

--Run the following script
exec SP_resetstatus Database_Name

--stop and start the MSDTC at this stage

--After the procere is created, immediately disable
updates to the system tables:
exec sp_configure 'allow updates', 0
GO
RECONFIGURE WITH OVERRIDE
GO

7. sql2000資料庫經常置疑怎麼處理

修復資料庫前,請做好相關備份。最好不要前後台相連,以免造成不必要的數據丟失。我們以名為「kspos」的資料庫為例。1.首先把服務管理器先停止,把原來置疑的資料庫下的兩個文件拷貝出來,
啟動服務管理器,在企業管理器中刪除該資料庫,然後建立一個同名的數
據庫。停止服務管理器,把置疑的資料庫文件拷貝進去覆蓋。2.運行中輸入「isqlw」,打開查詢分析器。3.輸入語句USE
MASTER
GOSP_CONFIGURE
'ALLOW
UPDATES',1
RECONFIGURE
WITH
OVERRIDE
GOUPDATE
SYSDATABASES
SET
STATUS
=-32768
WHERE
NAME='kspos'
Go使資料庫處於緊急修復模式4.輸入語句:use
kspos

go

dbcc
checkdb
('kspos')
此語句作用在於查詢資料庫的損壞狀況。5.刪除原來的日誌文件,重新建立新的日誌文件。

DBCC
REBUILD_LOG
('kspos','D:\Program
Files\Microsoft
SQL
Server\MSSQL\Data\bw9kyy_01_Log.LDF'
)6.右擊kspos資料庫\屬性\選項\選擇單用戶。7.修復
dbcc
checkdb
('kspos',REPAIR_ALLOW_DATA_LOSS)
REPAIR_ALLOW_DATA_LOSS
執行由
REPAIR_REBUILD
完成的所有修復,包括對行和頁進行分配和取消分配以改正分配錯誤、結構行或頁的錯誤,以及刪除已損壞的文本對象。這些修復可能會導致一些數據丟失。修復操作可以在用戶事務下完成以允許用戶回滾所做的更改。如果回滾修復,則資料庫仍會含有錯誤,應該從備份進行恢復。如果由於所提供修復等級的緣故遺漏某個錯誤的修復,則將遺漏任何取決於該修復的修復。修復完成後,備份資料庫。
REPAIR_FAST
進行小的、不耗時的修復操作,如修復非聚集索引中的附加鍵。這些修復可以很快完成,並且不會有丟失數據的危險。
REPAIR_REBUILD
執行由
REPAIR_FAST
完成的所有修復,包括需要較長時間的修復(如重建索引)。執行這些修復時不會有丟失數據的危險。
8.關閉單用戶模式,在企業管理器中直接右擊kspos\屬性\選項,把前面的對
勾去掉即可。

然後在查詢分析器中執行如下語句:
USE
MASTER

GO
SP_CONFIGURE
'ALLOW
UPDATES',0
RECONFIGURE
WITH
OVERRIDE

GO

到此修復工程完畢。註:一般此修復步驟需要5-8次,只需執行第7步即可。 這個方法絕對好用。

8. SQL資料庫置疑回復後使用過程中又忽然出現置疑,如何解決

步驟1:
創建一個新的資料庫,命名為原來資料庫的名字。
步驟2:
停止SQL
Server
步驟3:
把老資料庫的MDF文件替換新資料庫的相應的MDF文件,並把LDF文件刪除。
步驟4:
重新啟動SQL
Server服務,然後運行如下命令:
Use
Maste
Go
sp_configure
'allow
updates',
1
reconfigure
with
override
Go
begin
tran
update
sysdatabases
set
status
=
32768
where
name
=
'db_name'
--Verify
one
row
is
updated
before
committing
commit
tran
步驟5:
停止SQL然後重新啟動SQL
Server服務,然後運行如下命令:
DBCCTRACEON(3604)
DBCCREBUILD_LOG('db_name','c:\mssql7\data\dbxxx_3.ldf')
Go
步驟6:
停止SQL然後重新啟動SQL
Server服務,然後運行:
use
master
update
sysdatabases
set
status
=
8
where
name
=
'db_name'
Go
sp_configue
'allow
updates',
0
reconfigure
with
override
go
步驟7:
運行dbcc
checkdb(db_name)
檢查資料庫的完整性

9. SQl資料庫被置疑!!!高手請進!!

假定資料庫名為AA
1.將AA_log.ldf文件備份到其它目錄下;
2.將源目錄下的AA_log.ldf文件改名為smlog_log_bak.ldf;
3.在查詢分析器中執行以下語句修改資料庫的狀態:
use Master
go
update sysdatabases set status=32768 where name='AA' --修改狀態
go
shutdown with nowait --停止資料庫伺服器
go
4.退出SQL並在命令行模式中執行以下代碼:
sqlservr -c -T3608 -T4022 --安全模式啟動SQL SERVER
5.在查詢分析器中執行以下語句來查看剛剛修改過狀態的資料庫狀態:
select Name,Status from sysdatabases where Name='AA'
6.在查詢分析器中執行以下代碼重建日誌文件:
dbcc traceon(3604) --跟蹤
dbcc rebuild_log('AA','AA') --文件名要有全路徑和擴展名
本步驟如果成功,繼續執行下一步的操作,如果報錯,也可以不管它繼續下一步,也可以將操作之前建立的同名空資料庫日誌文件COPY過來就行。
7.在查詢分析器中執行以下代碼將資料庫置回正常狀態:
update sysdatabases set status=0 where name='AA'
8.重新啟動資料庫後執行以下語句檢查資料庫:
DBCC CHECKDB --如果執行完有錯誤用以下9.10兩步語句修復
9.要修復資料庫必需將資料庫改為單用戶模式:
Exec sp_dboption '資料庫名稱','single user','true'
10.執行以下語句修復資料庫:
DBCC CHECKDB('AA',REPAIR_ALLOW_DATA_LOSS)
11.將資料庫改為多用戶模式:
Exec sp_dboption 'AA','single user','false'
12.重新啟動電腦,成功!