SQL Server 在缺少檔案組的情況下如何還原資料庫

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   strong   ar   for   檔案   

SQL Server 在缺少檔案組的情況下如何還原資料庫

一、背景

  我有一個A庫,由於a,b兩張表的資料量比較大,所以對錶進行分區;在把A庫遷移到一個新的叢集上去,我只備份了A庫的主要磁碟分割過去進行還原為B庫(主要磁碟分割的備份還原可參考:SQL Server 維護計劃備份主要磁碟分割 和 主要磁碟分割備份與還原),為了對a,b表進新的資料,我修改了a,b表名,在B庫建立了兩張不分區的a,b表;

這樣運行都沒有什麼問題的,但是在一次我分離了資料庫B,拷貝了mdf和ldf檔案,現在想使用mdf和ldf還原為B庫的時候出錯了;

 

二、解決過程

  在使用SSMS的還原功能進行還原的時候出現了下面的錯誤:

(圖1:找不到檔案組)

(圖2:手動建立一個ndf檔案報錯)

  在還原的時候需要指定ndf檔案的目錄,但是由於在備份的時候我們只備份了主檔案,所以是沒有ndf檔案的(注意:表結構是在主檔案組的,所以這裡會顯示ndf檔案資訊),這個時候想通過刪除列表中ndf,卻發現刪除按鈕不可用,1所示;

  在對應的目錄中手動建立一個ndf檔案,出現了圖2的錯誤,因為無法讀取到檔案頭;

  難道就無法還原資料庫B了嘛?不要著急,我們把上面的操作產生SQL代碼,把不需要的ndf檔案刪除掉,剩下類似下面的SQL代碼,執行,還原了資料庫B!

USE [master]GOCREATE DATABASE [QQMonitor] ON ( FILENAME = N‘E:\DBBackup\DBName.mdf‘ ),( FILENAME = N‘E:\DBBackup\DBName_log.ldf‘ ) FOR ATTACHGO

  或者自己直接寫代碼,例如以下的代碼:

--還原主要磁碟分割RESTORE DATABASE [TestAnt]FILEGROUP=‘PRIMARY‘FROM DISK=‘F:\DBBackup\Ant_Primary\Ant_Primary_20110916000001.bak‘ WITH FILE = 1,MOVE N‘Barefoot.Ant‘ TO N‘F:\DBBackup\TestAnt.mdf‘,MOVE N‘Barefoot.Ant_log‘ TO N‘F:\DBBackup\TestAnt_log.ldf‘,RECOVERY,REPLACE,  STATS = 10GO

SQL Server 在缺少檔案組的情況下如何還原資料庫

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.