十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
在進(jìn)行數(shù)據(jù)庫管理時,有時我們會遇到數(shù)據(jù)庫附加不上的情況。這可能是由于多種原因?qū)е碌?,如文件?quán)限、數(shù)據(jù)庫狀態(tài)等等。面對這種情況,我們應(yīng)該如何解決呢?本文將介紹幾種常見的處理方法,幫助你順利地完成數(shù)據(jù)庫的附加。

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