簡體   English   中英

我如何知道我的 bacpac 用於哪個版本的 SQL 服務器? (我在 Ubuntu 上使用 SQL Server 2019 express)

[英]How do I know which version of SQL Server my bacpac is for? (I'm using SQL Server 2019 express on Ubuntu )

我得到了一個 SQL 服務器 bacpac 文件來恢復 Ubuntu 20.x 實例上的數據庫。

我想我會使用這個命令來恢復文件:

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "Password123!" -Q "RESTORE DATABASE [demodb] FROM DISK = N'/var/opt/mssql/backup/mssql-latest.bacpac' WITH FILE = 1, NOUNLOAD, REPLACE, NORECOVERY, STATS = 5"

雖然它給我的錯誤是:

消息 3241,級別 16,State 1,服務器 6f604ce9f741,第 1 行設備“/var/opt/mssql/backup/mssql-latest.bacpac”上的媒體系列格式不正確。 SQL 服務器無法處理此媒體系列。 消息 3013,級別 16,State 1,服務器 6f604ce9f741,第 1 行 RESTORE DATABASE 異常終止。

當通過谷歌搜索進一步調查時,它似乎與舊版本的 SQL 服務器 bacpac 與新版本的 SQL 服務器一起使用。

我目前正在運行 SQL Server 2019 Express,認為這可行。

在不下載SQL Server的每個版本的情況下,如何找出我需要使用的版本? 同樣,我如何知道我是否需要使用 Express 或 Developer,或 SQL 服務器的任何其他版本。 我認為 Express 是理想的,因為我認為它是輕量級的。

BACPAC 基本上是 ZIP 文件。 您可以將文件的擴展名更改為 zip 文件並解壓縮。 您可以看到 SQL 服務器的版本。

編輯 bacpac 文件的參考文章

BACPAC 提取文件夾

您可以打開 BACPAC 的 SQL 服務器版本的 Origin.xml。

SQL Server 版本

另外,要回答您關於 SQL Server Express 與 SQL Server Developer 的問題。 SQL Server Express 是有限的功能集,SQL Server Developer 具有完整的功能集,如 SQL Server Enterprise edition。 但是,您只能將 SQL Server Developer 用於開發目的,而不能用於生產。 Express 版對存儲和功能有一些限制。 如果不滿意,您可以 go 為開發版和以后升級,當您 go 為生產。

SQL服務器的不同版本及區別

這里真正的問題是,您正在嘗試使用“RESTORE DATABASE”命令恢復 .BACPAC 文件,這顯然會失敗,因為“RESTORE DATABASE”命令用於恢復.BAK 文件而不是.BACPAC 文件。

您必須使用 SQLPackage 實用程序來恢復 BACPAC 文件。 此處提供了詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM