一、如何備份
二、開始還原
當時在公司是要將阿里雲的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; 不刪除現有資料庫,覆蓋現有資料庫的所有資料。