在Ubuntu上恢復SQL Server數據的步驟
安裝SQL Server及工具
確保Ubuntu系統已安裝SQL Server(參考官方文檔),并安裝msodbcsql17
客戶端工具(用于sqlcmd
連接):
sudo apt-get update
sudo apt-get install msodbcsql17
獲取備份文件
將SQL Server備份文件(.bak
,如完整備份、差異備份或事務日志備份)上傳至Ubuntu服務器(如/var/opt/mssql/backup/
目錄),并確保當前用戶對目錄有讀取權限。
通過sqlcmd
工具登錄到本地或遠程SQL Server實例(默認端口1433):
sqlcmd -S localhost -U SA -P 'YourStrongPassword'
(注:SA
為SQL Server管理員賬戶,需替換為實際用戶名密碼)
若備份文件為完整備份(.bak
),且需覆蓋現有數據庫,使用以下命令:
RESTORE DATABASE [YourDatabaseName]
FROM DISK = '/var/opt/mssql/backup/YourDatabaseName_full.bak'
WITH REPLACE, RECOVERY;
REPLACE
:強制覆蓋現有同名數據庫;RECOVERY
:將數據庫恢復至可用狀態(若需應用后續事務日志,可先用NORECOVERY
,最后再執行RECOVERY
)。若存在差異備份或事務日志備份,需按順序恢復:
-- 恢復差異備份(需在完整備份后執行)
RESTORE DATABASE [YourDatabaseName]
FROM DISK = '/var/opt/mssql/backup/YourDatabaseName_diff.bak'
WITH DIFFERENTIAL, RECOVERY;
-- 恢復事務日志(需在完整備份+差異備份后執行)
RESTORE LOG [YourDatabaseName]
FROM DISK = '/var/opt/mssql/backup/YourDatabaseName_log.bak'
WITH RECOVERY;
退出sqlcmd
后,可通過以下命令檢查數據庫狀態:
sqlcmd -S localhost -U SA -P 'YourStrongPassword' -Q "SELECT name, state_desc FROM sys.databases WHERE name = 'YourDatabaseName';"
若state_desc
顯示為ONLINE
,則表示恢復成功。
安裝SSMS
在Ubuntu上通過apt
或下載官方包安裝SSMS(適用于Linux的輕量級版本)。
連接實例
打開SSMS,輸入服務器地址(如localhost
)、認證方式(SQL Server認證)及賬戶密碼,連接到SQL Server。
執行恢復流程
.bak
);若未備份數據,可嘗試使用第三方工具(如SysTools SQL Recovery)恢復誤刪除或損壞的數據庫文件(.mdf
/.ldf
):
.mdf
);RESTORE VERIFYONLY
命令驗證);sysadmin
角色);