Sql-Server

將 SQL Server 數據庫從 Windows 移動到 Linux 失敗

  • November 6, 2017

我們正在嘗試將 SQL Server 數據庫從 Windows 移動到 Linux。但是我們在遷移過程中面臨的問題很少。

  1. 我們從 Windows 中的 SSMS 備份了數據庫伺服器
  2. 我們在執行以下命令的 linux 中恢復了它:
RESTORE FILELISTONLY FROM  DISK =N'/var/opt/mssql/data/backup_file_name.bak' 
RESTORE DATABASE DB_NAME 
   FROM  DISK = N'/var/opt/mssql/backup_file_name.bak' WITH  FILE = 1,   
   MOVE N'DB_NAME' TO N'/var/opt/mssql/data/DB_NAME.mdf',   
   MOVE N'DB_NAME_Log' TO N'/var/opt/mssql/data/DB_NAME.ldf', 
   NOUNLOAD,  REPLACE,  STATS = 1
GO

執行這個我或多或少地得到一個錯誤在於:

文件 XX_FlatFline 無法恢復到PATH_IN_WINDOWS {…..mdf}。使用 WITH MOVE 標識文件的有效位置。

MDF 和 LDF 文件都出現錯誤。上面報錯中顯示的windows路徑就是mdf和ldf文件在windows機器中的位置。

有人可以幫我理解這裡出了什麼問題嗎?當我將轉儲恢復到新數據庫時,為什麼 Windows 路徑仍然很重要?

警告:我是 SQL Server 的新手。

在 Linux 上的 SQL Server 的第一個版本中,我看到 SQL Server 將路徑轉換為 windows 中的相關術語,例如,root ‘/’ 將是 C:。因此,如果存在此邏輯,您可以嘗試將其設置為:

從磁碟 = N’C:\var\opt\mssql\backup_file_name.bak’ WITH FILE = 1

但我認為現在有所不同,正如這裡提到的, 也許您應該首先檢查 Linux 上 SQL Server 的版本,然後檢查該文章中的步驟。

引用自:https://dba.stackexchange.com/questions/185453