新聞中心
在進(jìn)行數(shù)據(jù)庫(kù)管理時(shí),有時(shí)我們會(huì)遇到數(shù)據(jù)庫(kù)附加不上的情況。這可能是由于多種原因?qū)е碌?,如文件?quán)限、數(shù)據(jù)庫(kù)狀態(tài)等等。面對(duì)這種情況,我們應(yīng)該如何解決呢?本文將介紹幾種常見(jiàn)的處理方法,幫助你順利地完成數(shù)據(jù)庫(kù)的附加。

1. 檢查文件權(quán)限
數(shù)據(jù)庫(kù)的附加需要讀取數(shù)據(jù)庫(kù)文件,因此在進(jìn)行附加操作之前,我們首先要檢查數(shù)據(jù)庫(kù)文件的權(quán)限是否正確??梢栽谖募A上右鍵,選擇“屬性”-“安全”選項(xiàng)卡,檢查文件夾及文件的權(quán)限是否允許用戶(hù)組對(duì)其進(jìn)行讀寫(xiě)操作。如果沒(méi)有權(quán)限,可以逐一授權(quán)或者更改文件夾及文件的權(quán)限。如果權(quán)限正確,但仍然無(wú)法附加數(shù)據(jù)庫(kù),那么我們需要檢查數(shù)據(jù)庫(kù)本身的狀態(tài)。
2. 檢查數(shù)據(jù)庫(kù)狀態(tài)
當(dāng)我們嘗試附加一個(gè)由另一個(gè) SQL Server 實(shí)例創(chuàng)建的數(shù)據(jù)庫(kù)時(shí),可能會(huì)遇到無(wú)法附加數(shù)據(jù)庫(kù)的情況。這可能是由于數(shù)據(jù)庫(kù)狀態(tài)未正確設(shè)置導(dǎo)致的。在這種情況下,我們可以使用以下 T-SQL 語(yǔ)句來(lái)查看數(shù)據(jù)庫(kù)狀態(tài):
SELECT name, state_desc FROM sys.databases
如果該數(shù)據(jù)庫(kù)的狀態(tài)為“SUSPECT”,則說(shuō)明該數(shù)據(jù)庫(kù)已經(jīng)損壞,需要進(jìn)行修復(fù)操作。我們可以使用 SQL Server 提供的數(shù)據(jù)庫(kù)修復(fù)工具,或者使用備份文件來(lái)還原數(shù)據(jù)庫(kù)。如果數(shù)據(jù)庫(kù)狀態(tài)為“OFFLINE”,則說(shuō)明該數(shù)據(jù)庫(kù)沒(méi)有被正確地關(guān)閉,可以使用以下 T-SQL 語(yǔ)句來(lái)將其恢復(fù)上線狀態(tài):
ALTER DATABASE [database_name] SET ONLINE
如果數(shù)據(jù)庫(kù)狀態(tài)為“RESTORING”,則說(shuō)明該數(shù)據(jù)庫(kù)正在進(jìn)行恢復(fù)操作,需要等待恢復(fù)完成后才能進(jìn)行附加操作。
3. 檢查 SQL Server 版本
在進(jìn)行數(shù)據(jù)庫(kù)附加操作時(shí),還需要確認(rèn)附加的數(shù)據(jù)庫(kù)與當(dāng)前 SQL Server 實(shí)例的版本是否一致。如果版本不一致,則需要升級(jí) SQL Server 實(shí)例或者使用低版本的 SQL Server 進(jìn)行附加操作。如果使用低版本的 SQL Server 進(jìn)行附加,則需要使用以下 T-SQL 語(yǔ)句來(lái)升級(jí)數(shù)據(jù)庫(kù):
ALTER DATABASE [database_name] SET COMPATIBILITY_LEVEL = [SQL Server 版本號(hào)]
4. 檢查 T-SQL 語(yǔ)句是否正確
當(dāng)我們使用 T-SQL 語(yǔ)句來(lái)進(jìn)行數(shù)據(jù)庫(kù)附加操作時(shí),也需要確認(rèn) T-SQL 語(yǔ)句是否正確。在使用 T-SQL 語(yǔ)句進(jìn)行數(shù)據(jù)庫(kù)附加操作時(shí),需要保證文件路徑、數(shù)據(jù)庫(kù)名稱(chēng)等信息都是正確的,并且需要保證所有語(yǔ)句關(guān)鍵字的大小寫(xiě)都是正確的。
以上是幾種常見(jiàn)的數(shù)據(jù)庫(kù)附加問(wèn)題的處理方法。在進(jìn)行數(shù)據(jù)庫(kù)管理操作時(shí),我們需要認(rèn)真檢查每一個(gè)步驟,保證附加操作的順利進(jìn)行,避免出現(xiàn)不必要的錯(cuò)誤和損失。
相關(guān)問(wèn)題拓展閱讀:
- 我的數(shù)據(jù)庫(kù)怎么附加不了???警告我要我在SYSINDEXES運(yùn)行DBCC CHECKTA
我的數(shù)據(jù)庫(kù)怎么附加不了啊?警告我要我在SYSINDEXES運(yùn)行DBCC CHECKTA
sysindexes 運(yùn)行 DBCC CHECKTABLE(轉(zhuǎn)) 錯(cuò)誤602未能在 sysindexes 中找到數(shù)據(jù)庫(kù) ID %1! 中對(duì)象 ID %2! 的索引 ID %3! 對(duì)應(yīng)的行。請(qǐng)對(duì) sysindexes 運(yùn)行 DBCC CHECKTABLE。疑難解答錯(cuò)誤旅渣602嚴(yán)重級(jí)別 21消息正文未能在 sysindexes 中找到數(shù)據(jù)庫(kù) ID %1! 中對(duì)象拆埋悄 ID %2! 的索引 ID %3! 對(duì)應(yīng)的行。請(qǐng)對(duì) sysindexes 運(yùn)行 DBCC CHECKTABLE。解釋當(dāng)Microsoft? SQL Server? 無(wú)法在 sysindexes 表中找到需要的表或索引所對(duì)應(yīng)的行時(shí)(例如,當(dāng)執(zhí)行引用已除去的表的存儲(chǔ)過(guò)程時(shí)),發(fā)生該錯(cuò)誤。對(duì)策如果該錯(cuò)誤因?yàn)榇鎯?chǔ)過(guò)程引用某個(gè)已除去的表而發(fā)生,則除去并重新創(chuàng)建該存儲(chǔ)過(guò)程。該錯(cuò)誤還可能和其它錯(cuò)誤信息一起發(fā)生,而這些消息更好地指出問(wèn)題的根本原因。在 sysindexes 上執(zhí)行 DBCC CHECKTABLE;同樣執(zhí)行 DBCC CHECKDB。如果問(wèn)題仍然存在,請(qǐng)與您的主要支持提供者聯(lián)系。使 DBCC CHECKDB 語(yǔ)句的輸出可查閱Transact-SQL 參考 DBCC CHECKTABLE檢查指定表或索引視圖的數(shù)據(jù)、索引及 text、ntext 和 image 頁(yè)的完整性。語(yǔ)法DBCC CHECKTABLE( ‘table_name’ | ‘view_name’) > > >}>參數(shù)’table_name’ | ‘view_name’是要對(duì)其數(shù)據(jù)頁(yè)完整性進(jìn)行檢查的表或索引視圖。表名和視圖名必須符合標(biāo)識(shí)符的規(guī)則。有關(guān)更多信息,請(qǐng)參見(jiàn)使用標(biāo)識(shí)符。 NOINDEX指定不檢查非系統(tǒng)表的非聚集索引。REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD指定DBCC CHECKTABLE 修復(fù)發(fā)現(xiàn)的錯(cuò)誤。數(shù)據(jù)庫(kù)必須在單用戶(hù)模式下以使用修復(fù)選項(xiàng),可以是下列值之一。值描述REPAIR_ALLOW_DATA_LOSS執(zhí)行由 REPAIR_REBUILD 完成的所有修復(fù),包括對(duì)行和頁(yè)進(jìn)行分配和取消分配以改正分配錯(cuò)誤、結(jié)構(gòu)行或頁(yè)的錯(cuò)誤,以及刪除已損壞的文本對(duì)象。這些修復(fù)可能會(huì)導(dǎo)致一些數(shù)據(jù)丟失。修復(fù)操作可以在用戶(hù)事務(wù)下完成以允許用戶(hù)回滾所做的更改。如果回滾修復(fù),則數(shù)據(jù)庫(kù)仍會(huì)含有錯(cuò)誤,應(yīng)該從備份進(jìn)行恢復(fù)。如果由于所提供修復(fù)等級(jí)的緣故遺漏某個(gè)錯(cuò)誤的修復(fù),則將遺漏任何取決于該修復(fù)的修復(fù)。修復(fù)完成后,備份數(shù)據(jù)庫(kù)。REPAIR_FAST進(jìn)行小的、不耗時(shí)的修復(fù)操作,如修復(fù)非聚集索引中的附加鍵。這些修復(fù)可以很快完成,并且不會(huì)有丟失數(shù)據(jù)的危險(xiǎn)。REPAIR_REBUILD執(zhí)行由 REPAIR_FAST 完成的所有修復(fù),包括需要較長(zhǎng)時(shí)間的修復(fù)(如重建索引)。執(zhí)行這些修復(fù)時(shí)不會(huì)有丟失數(shù)據(jù)的危險(xiǎn)。index_id是要對(duì)其數(shù)據(jù)頁(yè)完整性進(jìn)行檢查的索引標(biāo)識(shí) (ID) 號(hào)。如果指定 index_id,DBCC CHECKTABLE 只會(huì)對(duì)該索引進(jìn)行檢查。WITH指定有關(guān)下列內(nèi)容的選項(xiàng):返回錯(cuò)誤信息的數(shù)量、獲得的鎖或估計(jì)液賣(mài)的 tempdb 要求。如果 ALL_ERRORMSGS 和 NO_INFOMSGS 都未指定,則 Microsoft SQL Server 將返回全部錯(cuò)誤信息。ALL_ERRORMSGS顯示所有錯(cuò)誤信息。如果未指定,SQL Server 就按每個(gè)表最多 200 條錯(cuò)誤信息進(jìn)行顯示。錯(cuò)誤信息按對(duì)象 ID 進(jìn)行排序。NO_INFOMSGS禁止顯示所有信息性消息和關(guān)于所用空間的報(bào)告。 TABLOCK導(dǎo)致DBCC CHECKTABLE 獲得共享表鎖。ESTIMATE ON顯示估計(jì)的 tempdb 空間大小,要運(yùn)行帶有所有其它指定選項(xiàng)的 DBCC CHECKTABLE 則需要該空間。PHYSICAL_ON僅限于檢查頁(yè)和記錄標(biāo)題物理結(jié)構(gòu)的完整性,以及頁(yè)對(duì)象 ID 和索引 ID 與分配結(jié)構(gòu)之間的一致性。該檢查旨在以較低的開(kāi)銷(xiāo)檢查數(shù)據(jù)庫(kù)的物理一致性,同時(shí)還檢測(cè)會(huì)危及用戶(hù)數(shù)據(jù)安全的殘缺頁(yè)和常見(jiàn)的硬件故障。PHYSICAL_ON 始終意味著 NO_INFOMSGS,并且不能與任何修復(fù)選項(xiàng)一起使用。注釋DBCC CHECKTABLE 對(duì)表和索引視圖執(zhí)行物理一致性檢查。只用于向后兼容性的 NOINDEX 選項(xiàng)也適用于索引視圖。對(duì)于指定的表,DBCC CHECKTABLE 檢查其: 索引和數(shù)據(jù)頁(yè)是否已正確鏈接。索引是否按照正確的順序排列。各指針是否一致。每頁(yè)上的數(shù)據(jù)是否均合理。頁(yè)面偏移量是否合理。 DBCC CHECKTABLE 對(duì)指定表的 text、ntext 和 image 頁(yè)的鏈接及大小進(jìn)行檢查。然而,DBCC CHECKTABLE 不驗(yàn)證數(shù)據(jù)庫(kù)中所有分配結(jié)構(gòu)的一致性。使用 DBCC CHECKALLOC 進(jìn)行此驗(yàn)證。 默認(rèn)情況下,DBCC CHECKTABLE 不獲取表鎖。但它獲取架構(gòu)鎖,該鎖阻止對(duì)元數(shù)據(jù)進(jìn)行更改,但允許更改數(shù)據(jù)。DBCC 語(yǔ)句收集信息,然后掃描任何日志以查找其它所做的任何更改,在掃描的結(jié)尾將兩組信息合并在一起以產(chǎn)生數(shù)據(jù)的一致視圖。如果指定 TABLOCK 選項(xiàng),DBCC CHECKTABLE 獲取共享表鎖。這樣可允許某些類(lèi)別的錯(cuò)誤有更詳細(xì)的錯(cuò)誤信息,并通過(guò)避免使用事務(wù)日志數(shù)據(jù)而將所要求的 tempdb 空間大小降為更低。若要對(duì)數(shù)據(jù)庫(kù)中每個(gè)表執(zhí)行 DBCC CHECKTABLE,請(qǐng)使用 DBCC CHECKDB。默認(rèn)情況下,DBCC CHECKTABLE 對(duì)對(duì)象執(zhí)行并行檢查。并行度由查詢(xún)處理器自動(dòng)確定。更大并行度的配置方式與并行查詢(xún)相同。使用 sp_configure 系統(tǒng)存儲(chǔ)過(guò)程限制可用于 DBCC 檢查的更大處理器數(shù)。有關(guān)更多信息,請(qǐng)參見(jiàn) max degree of paralleli 選項(xiàng)。使用跟蹤標(biāo)記 2528 可禁用并行檢查。有關(guān)更多信息,請(qǐng)參見(jiàn)跟蹤標(biāo)記。結(jié)果集DBCC CHECKTABLE 返回以下結(jié)果集(如果只指定表名或如果提供任意選項(xiàng),都返回與之相同的結(jié)果集);下例指定 pubs 數(shù)據(jù)庫(kù)中的 authors 表(值可能會(huì)有變化):DBCC results for ‘a(chǎn)uthors’. There are 23 rows in 1 pages for object ‘a(chǎn)uthors’. DBCC execution completed. If DBCC printed error messages, contact your system administrator.如果指定 ESTIMATEON 選項(xiàng),DBCC CHECKTABLE 將返回以下結(jié)果集。Estimated TEMPDB space needed for CHECKTABLES (KB)(1 row(s) affected) DBCC execution completed. If DBCC printed error messages, contact your system administrator. 權(quán)限D(zhuǎn)BCC CHECKTABLE 權(quán)限默認(rèn)授予 sysadmin 固定服務(wù)器角色、db_owner 固定數(shù)據(jù)庫(kù)角色的成員或表的所有者且不可。示例A. 檢查特定表下例檢查 authors 表的數(shù)據(jù)頁(yè)完整性。DBCC CHECKTABLE (‘a(chǎn)uthors’) GO B. 檢查表,但不檢查非聚集索引下例對(duì) authors 表的數(shù)據(jù)頁(yè)完整性進(jìn)行檢查,但不檢查非聚集索引。DBCC CHECKTABLE (‘a(chǎn)uthors’) WITH PHYSICAL_ON GO C. 檢查特定索引下例對(duì)通過(guò)訪問(wèn) sysindexes 獲得的特定索引進(jìn)行檢查。
關(guān)于數(shù)據(jù)庫(kù)附加不了的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都網(wǎng)站推廣找創(chuàng)新互聯(lián),老牌網(wǎng)站營(yíng)銷(xiāo)公司
成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)(www.cdcxhl.com)專(zhuān)注高端網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì)制作,網(wǎng)站維護(hù),網(wǎng)絡(luò)營(yíng)銷(xiāo),SEO優(yōu)化推廣,快速提升企業(yè)網(wǎng)站排名等一站式服務(wù)。IDC基礎(chǔ)服務(wù):云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)、服務(wù)器租用、服務(wù)器托管提供四川、成都、綿陽(yáng)、雅安、重慶、貴州、昆明、鄭州、湖北十堰機(jī)房互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)。
當(dāng)前題目:解決方法:數(shù)據(jù)庫(kù)附加不了,如何處理? (數(shù)據(jù)庫(kù)附加不了)
瀏覽地址:http://fisionsoft.com.cn/article/dhopsih.html


咨詢(xún)
建站咨詢(xún)
