亚洲AVI,黑人巨茎大战欧美白妇,初高中生洗澡自慰高清网站,欧美日韩无砖专区一中文字

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)

sqlserver823,sql42883

mysql 新建數(shù)據(jù)庫(kù)時(shí)出現(xiàn)823:錯(cuò)誤。

標(biāo)題:[MySQL]MSSQL數(shù)據(jù)庫(kù)823錯(cuò)誤解決方法

創(chuàng)新互聯(lián)建站是一家專(zhuān)注于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作和遂寧托管服務(wù)器的網(wǎng)絡(luò)公司,有著豐富的建站經(jīng)驗(yàn)和案例。

出處:

時(shí)間:Sat, 12 Apr 2008 10:12:27 +0000

作者:ah011

地址:

內(nèi)容:

1.日志文件被破壞823錯(cuò)誤

----------------------

日志文件被破壞的數(shù)據(jù)庫(kù)文件,通過(guò)如下方法附加上去后,數(shù)據(jù)庫(kù)里所有的表都不能訪(fǎng)問(wèn),提示錯(cuò)誤832,請(qǐng)問(wèn)要如何解決??

use master

go

sp_configure 'allow updates',1

go

reconfigure with override

go

update sysdatabases set status=-32768 where dbid=DB_ID('linyi_pljy')

go

dbcc rebuild_log('linyi_pljy','e:\Program Files\Microsoft SQL Server\MSSQL\Data\linyi_pljy_log.ldf')

go

sp_dboption 'linyi_pljy','dbo use only','false'

go

sp_configure 'allow updates',0

go

reconfigure with override

go

---------------------

2.附加數(shù)據(jù)庫(kù)文件時(shí),提示823錯(cuò)誤

----------------------

EXEC sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE /* 打開(kāi)修改系統(tǒng)表的開(kāi)關(guān) */

update sysdatabases set status = 32768 where name = '數(shù)據(jù)庫(kù)名'

DBCC REBUILD_LOG ('數(shù)據(jù)庫(kù)名', 'E: dzzdatabase dzz1204_Log.LDF' )

update sysdatabases set status = 0 where name = '數(shù)據(jù)庫(kù)名'

restore database 數(shù)據(jù)庫(kù)名 WITH RECOVERY

EXEC sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE /* 關(guān)閉打開(kāi)修改系統(tǒng)表的開(kāi)關(guān) */

3因?yàn)橥k姷仍蛟斐蒑SSQL數(shù)據(jù)庫(kù),提示823錯(cuò)誤

----------------------

USE MASTER

GO

sp_dboption 'databaseName', 'single user', 'true'

Go

DBCC CHECKDB('databaseName', REPAIR_REBUILD)

Go

USE databaseName

go

exec sp_msforeachtable 'DBCC CHECKTABLE('''?''',REPAIR_REBUILD)'

go

sp_dboption 'databaseName', 'single user', 'false'

Go

如果還不行,可以采用允許丟失數(shù)據(jù)的方式修復(fù),如下:

USE MASTER

GO

sp_dboption 'databaseName', 'single user', 'true'

Go

DBCC CHECKDB('databaseName', REPAIR_ALLOW_DATA_LOSS)

Go

USE databaseName

go

exec sp_msforeachtable 'DBCC CHECKTABLE('''?''',REPAIR_REBUILD)'

go

sp_dboption 'databaseName', 'single user', 'false'

Go

4.數(shù)據(jù)庫(kù)恢復(fù)資料

----------------------

SQL Server數(shù)據(jù)庫(kù)備份有兩種方式,一種是使用BACKUP DATABASE將數(shù)據(jù)庫(kù)文件備份出去,另外一種就是直接拷貝數(shù)據(jù)庫(kù)文件mdf和日志文件ldf的方式。下面將主要討論一下后者的備份與恢復(fù)。本文假定您能熟練使用SQL Server Enterprise Manager(SQL Server企業(yè)管理器)和SQL Server Quwey Analyser(SQL Server查詢(xún)分析器)

1、正常的備份、恢復(fù)方式

正常方式下,我們要備份一個(gè)數(shù)據(jù)庫(kù),首先要先將該數(shù)據(jù)庫(kù)從運(yùn)行的數(shù)據(jù)服務(wù)器中斷開(kāi),或者停掉整個(gè)數(shù)據(jù)庫(kù)服務(wù)器,然后復(fù)制文件。

卸下數(shù)據(jù)庫(kù)的命令:Sp_detach_db 數(shù)據(jù)庫(kù)名

連接數(shù)據(jù)庫(kù)的命令:Sp_attach_db或者sp_attach_single_file_db

s_attach_db [@dbname =] ′dbname′, [@filename1 =] ′filename_n′ [,...16]

sp_attach_single_file_db [@dbname =] ′dbname′, [@physname =] ′physical_name′

使用此方法可以正確恢復(fù)SQL Sever7.0和SQL Server 2000的數(shù)據(jù)庫(kù)文件,要點(diǎn)是備份的時(shí)候一定要將mdf和ldf兩個(gè)文件都備份下來(lái),mdf文件是數(shù)據(jù)庫(kù)數(shù)據(jù)文件,ldf是數(shù)據(jù)庫(kù)日志文件。

例子:

假設(shè)數(shù)據(jù)庫(kù)為test,其數(shù)據(jù)文件為test_data.mdf,日志文件為test_log.ldf。下面我們討論一下如何備份、恢復(fù)該數(shù)據(jù)庫(kù)。

卸下數(shù)據(jù)庫(kù):sp_detach_db 'test'

連接數(shù)據(jù)庫(kù):sp_attach_db 'test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_data.mdf','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf'

sp_attach_single_file_db 'test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_data.mdf'

2、只有mdf文件的恢復(fù)技術(shù)

由于種種原因,我們?nèi)绻?dāng)時(shí)僅僅備份了mdf文件,那么恢復(fù)起來(lái)就是一件很麻煩的事情了。

如果您的mdf文件是當(dāng)前數(shù)據(jù)庫(kù)產(chǎn)生的,那么很僥幸,也許你使用sp_attach_db或者sp_attach_single_file_db可以恢復(fù)數(shù)據(jù)庫(kù),但是會(huì)出現(xiàn)類(lèi)似下面的提示信息

設(shè)備激活錯(cuò)誤。物理文件名 'C:\Program Files\Microsoft SQL Server\MSSQL\data\test_Log.LDF' 可能有誤。

已創(chuàng)建名為 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.LDF' 的新日志文件。

但是,如果您的數(shù)據(jù)庫(kù)文件是從其他計(jì)算機(jī)上復(fù)制過(guò)來(lái)的,那么很不幸,也許上述辦法就行不通了。你也許會(huì)得到類(lèi)似下面的錯(cuò)誤信息

服務(wù)器: 消息 1813,級(jí)別 16,狀態(tài) 2,行 1

未能打開(kāi)新數(shù)據(jù)庫(kù) 'test'。CREATE DATABASE 將終止。

設(shè)備激活錯(cuò)誤。物理文件名 'd:\test_log.LDF' 可能有誤。

怎么辦呢?別著急,下面我們舉例說(shuō)明恢復(fù)辦法。

A.我們使用默認(rèn)方式建立一個(gè)供恢復(fù)使用的數(shù)據(jù)庫(kù)(如test)。可以在SQL Server Enterprise Manager里面建立。

B.停掉數(shù)據(jù)庫(kù)服務(wù)器。

C.將剛才生成的數(shù)據(jù)庫(kù)的日志文件test_log.ldf刪除,用要恢復(fù)的數(shù)據(jù)庫(kù)mdf文件覆蓋剛才生成的數(shù)據(jù)庫(kù)數(shù)據(jù)文件test_data.mdf。

D.啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)器。此時(shí)會(huì)看到數(shù)據(jù)庫(kù)test的狀態(tài)為“置疑”。這時(shí)候不能對(duì)此數(shù)據(jù)庫(kù)進(jìn)行任何操作。

E.設(shè)置數(shù)據(jù)庫(kù)允許直接操作系統(tǒng)表。此操作可以在SQL Server Enterprise Manager里面選擇數(shù)據(jù)庫(kù)服務(wù)器,按右鍵,選擇“屬性”,在“服務(wù)器設(shè)置”頁(yè)面中將“允許對(duì)系統(tǒng)目錄直接修改”一項(xiàng)選中。也可以使用如下語(yǔ)句來(lái)實(shí)現(xiàn)。

use master

go

sp_configure 'allow updates',1

go

reconfigure with override

go

F.設(shè)置test為緊急修復(fù)模式

update sysdatabases set status=-32768 where dbid=DB_ID('test')

此時(shí)可以在SQL Server Enterprise Manager里面看到該數(shù)據(jù)庫(kù)處于“只讀\置疑\脫機(jī)\緊急模式”可以看到數(shù)據(jù)庫(kù)里面的表,但是僅僅有系統(tǒng)表

G.下面執(zhí)行真正的恢復(fù)操作,重建數(shù)據(jù)庫(kù)日志文件

dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')

執(zhí)行過(guò)程中,如果遇到下列提示信息:

服務(wù)器: 消息 5030,級(jí)別 16,狀態(tài) 1,行 1

未能排它地鎖定數(shù)據(jù)庫(kù)以執(zhí)行該操作。

DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯(cuò)誤信息,請(qǐng)與系統(tǒng)管理員聯(lián)系。[brown]

說(shuō)明您的其他程序正在使用該數(shù)據(jù)庫(kù),如果剛才您在F步驟中使用SQL Server Enterprise Manager打開(kāi)了test庫(kù)的系統(tǒng)表,那么退出SQL Server Enterprise Manager就可以了。

正確執(zhí)行完成的提示應(yīng)該類(lèi)似于:

[brown]警告: 數(shù)據(jù)庫(kù) 'test' 的日志已重建。已失去事務(wù)的一致性。應(yīng)運(yùn)行 DBCC CHECKDB 以驗(yàn)證物理一致性。將必須重置數(shù)據(jù)庫(kù)選項(xiàng),并且可能需要?jiǎng)h除多余的日志文件。

DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯(cuò)誤信息,請(qǐng)與系統(tǒng)管理員聯(lián)系。

此時(shí)打開(kāi)在SQL Server Enterprise Manager里面會(huì)看到數(shù)據(jù)庫(kù)的狀態(tài)為“只供DBO使用”。此時(shí)可以訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)里面的用戶(hù)表了。

H.驗(yàn)證數(shù)據(jù)庫(kù)一致性(可省略)

dbcc checkdb('test')

一般執(zhí)行結(jié)果如下:

CHECKDB 發(fā)現(xiàn)了 0 個(gè)分配錯(cuò)誤和 0 個(gè)一致性錯(cuò)誤(在數(shù)據(jù)庫(kù) 'test' 中)。

DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯(cuò)誤信息,請(qǐng)與系統(tǒng)管理員聯(lián)系。

I.設(shè)置數(shù)據(jù)庫(kù)為正常狀態(tài)

sp_dboption 'test','dbo use only','false'

如果沒(méi)有出錯(cuò),那么恭喜,現(xiàn)在就可以正常的使用恢復(fù)后的數(shù)據(jù)庫(kù)啦。

J.最后一步,我們要將步驟E中設(shè)置的“允許對(duì)系統(tǒng)目錄直接修改”一項(xiàng)恢復(fù)。因?yàn)槠綍r(shí)直接操作系統(tǒng)表是一件比較危險(xiǎn)的事情。當(dāng)然,我們可以在SQL Server Enterprise Manager里面恢復(fù),也可以使用如下語(yǔ)句完成

sp_configure 'allow updates',0

go

reconfigure with override

go

SQL Server數(shù)據(jù)庫(kù)附加提示“823”錯(cuò)誤怎么辦

sqlserver附加數(shù)據(jù)庫(kù)錯(cuò)誤823的解決方案2008-10-13 15:06sqlserver附加數(shù)據(jù)庫(kù)錯(cuò)誤823的解決方案一、SQL-Server附加數(shù)據(jù)庫(kù)時(shí)失敗。

1、異常情況:服務(wù)器在正常運(yùn)行的情況下突然斷電,導(dǎo)致數(shù)據(jù)庫(kù)文件損壞,具體表現(xiàn)是:數(shù)據(jù)庫(kù)名后面有“(置疑)”字樣。

2、異常分析:關(guān)于823錯(cuò)誤的 SQL-SERVER 中的幫助:

================================

錯(cuò)誤 823

嚴(yán)重級(jí)別 24

消息正文

在文件 "%4!" 的偏移量 %3! 處的 %2! 過(guò)程中,檢測(cè)到 I/O 錯(cuò)誤 %1!。

解釋

Microsoft SQL Server 在對(duì)某設(shè)備進(jìn)行讀或?qū)懻?qǐng)求時(shí)遇到 I/O 錯(cuò)誤。該錯(cuò)誤通常表明磁盤(pán)問(wèn)題。但是,錯(cuò)誤日志中在錯(cuò)誤 823 之前記錄的其它核心消息應(yīng)指出涉及了哪個(gè)設(shè)備。

3、解決辦法:

在SQL-Server企業(yè)管理器中,新建同名數(shù)據(jù)庫(kù)(這里假設(shè)為T(mén)est)后,停止數(shù)據(jù)庫(kù),把損壞的數(shù)據(jù)庫(kù)文件Data.mdf和Test_log.LDF覆蓋剛才新建數(shù)據(jù)庫(kù)目錄下的Data.mdf和Test_log.LDF,同時(shí)刪除Test_log.LDF文件;啟動(dòng)數(shù)據(jù)庫(kù)服務(wù),發(fā)現(xiàn)數(shù)據(jù)庫(kù)名Test后面有“置疑”字樣。不要緊,打開(kāi)SQL自帶查詢(xún)分析器,分別執(zhí)行如下SQL語(yǔ)句:

第一、

exec sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE /* 打開(kāi)修改系統(tǒng)表的開(kāi)關(guān) */

第二、

update sysdatabases set status=32768 where name='數(shù)據(jù)庫(kù)名' /* 設(shè)置數(shù)據(jù)庫(kù)狀態(tài) */

第三、

DBCC REBUILD_LOG ('數(shù)據(jù)庫(kù)名','D:\database\Test_Log.LDF') /* 重建LDF文件 */

第四、

update sysdatabases set status=0 where name='數(shù)據(jù)庫(kù)名' /* 重置數(shù)據(jù)庫(kù)狀態(tài) */

第五、

restore database 數(shù)據(jù)庫(kù)名 WITH RECOVERY /* 恢復(fù)數(shù)據(jù)庫(kù) */

第六、

exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE /* 關(guān)閉打開(kāi)修改系統(tǒng)表的開(kāi)關(guān) */

按照此方法操作,應(yīng)該能修復(fù)數(shù)據(jù)庫(kù)正常訪(fǎng)問(wèn)了。如果問(wèn)題依然存在,最笨的一個(gè)方法就是新建另一個(gè)數(shù)據(jù)庫(kù),把原數(shù)據(jù)庫(kù)(Test)各個(gè)表的數(shù)據(jù)導(dǎo)出到新建數(shù)據(jù)庫(kù)表中。

============================================================

補(bǔ)充說(shuō)明:用上面的六步把數(shù)據(jù)庫(kù)置疑的問(wèn)題解決了,但是數(shù)據(jù)庫(kù)表里還有損壞的表(inf_gdscode),把壞表導(dǎo)出的時(shí)候也不成功。最后在查詢(xún)分析器里運(yùn)行:

USE nmgbt_hcxuexipos (數(shù)據(jù)庫(kù)名)

GO

DBCC CHECKTABLE ('inf_gdscode',REPAIR_ALLOW_DATA_LOSS)

GO

錯(cuò)誤823 前滾了4個(gè)事務(wù)(在數(shù)據(jù)庫(kù)(8)中

如果庫(kù)文件和日志文件一塊附加都附加不上的話(huà),按以下步驟操作:

1,在sqlserver中新建庫(kù)(新建沒(méi)有表的空庫(kù),庫(kù)名為你附加失敗的庫(kù)名),記住數(shù)據(jù)庫(kù)文件存放地址(最好指定目錄)。

2,停止sqlserver服務(wù),在新建的庫(kù)文件目錄下將日志文件刪除(.ldf),然后將附加失敗的庫(kù)文件覆蓋進(jìn)去。

3,啟動(dòng)sqlserver服務(wù),但不停止一切連接該庫(kù)的服務(wù)。

然后執(zhí)行語(yǔ)句:

use master

go

alter database db_name set emergency

go

4、置為單用戶(hù)模式,并重建日志:

alter database db_name set single_user with rollback immediate

go

alter database db_name Rebuild Log on (name=log_name,filename='C:\log_name.ldf')

go

alter database dbname set multi_user

go

其中日志文件目錄及文件名按實(shí)際情況填寫(xiě)。

5、dbcc checkdb嘗試修復(fù)庫(kù)。

Use master

go

sp_dboption 數(shù)據(jù)庫(kù)名, single, true

dbcc checkdb(dbname,REPAIR_ALLOW_DATA_LOSS)

dbcc checkdb(dbname,REPAIR_REBUILD)

go

sp_dboption 數(shù)據(jù)庫(kù)名, single, false

go

如果修復(fù)過(guò)程中有錯(cuò)誤則庫(kù)損壞嚴(yán)重,可能修復(fù)失敗。


名稱(chēng)欄目:sqlserver823,sql42883
URL地址:http://news.spvevtbd.cn/article/dsisccs.html

其他資訊

在線(xiàn)咨詢(xún)
服務(wù)熱線(xiàn)
服務(wù)熱線(xiàn):028-86922220
TOP