SqlServer資料庫恢復備份資料的方法

潇湘神剑發表於2024-11-18

一、如何備份

二、開始還原

  當時在公司是要將阿里雲的sqlserver中的資料備份一份到公司內網資料庫,並將資料恢復到公司內網SqlServer資料庫,當我按照原庫的要求建立了新的空庫。在SSMS控制檯還原的時候,它竟然報錯,報:system.data.sqlclient.Sqlerror:備份集中的資料庫備份與現有的‘xxxxxx’資料庫不同。

既然備份資料跟新庫有差別那就對比一下吧:

# 檢視備份檔案的詳細資訊
RESTORE HEADERONLY 
FROM DISK = 'C:\Path\To\Your\BackupFile.bak';

# 檢視現有資料庫的詳細資訊
SELECT * FROM sys.databases WHERE name = '<dbname>';

對比了差異,也沒發現啥明顯的差異。

既然控制檯還原報錯那就用命令列還原吧,特此記錄。(以下命令需要在master庫下執行)

方式一、刪除現有資料庫並重新建立

# 刪除現有資料庫
DROP DATABASE <dbname>;

# 還原資料庫
RESTORE DATABASE <dbname>
FROM DISK = 'C:\Path\To\Your\BackupFile.bak'
RESTORE DATABASE <dbname>  建立新庫。

方式二、不刪除現有資料庫直接覆蓋

# 還原資料庫
RESTORE DATABASE <dbname>
FROM DISK = 'C:\Path\To\Your\BackupFile.bak'
WITH REPLACE;
WITH REPLACE;  不刪除現有資料庫,覆蓋現有資料庫的所有資料。

相關文章