分享方式:


在 Linux 上備份與還原 SQL Server 資料庫

適用於:SQL Server - Linux

您可以使用許多不同的選項,從 Linux 上的 SQL Server 備份資料庫。 在 Linux 伺服器上,您可以使用 sqlcmd 來連線至 SQL Server 並進行備份。 在 Windows 中,您可以連線至 Linux 上的 SQL Server,並藉由使用者介面來進行備份。 備份功能在不同平台上都相同。 例如,您可以在本機將資料庫備份至遠端磁碟機或 SQL Server 備份到 Microsoft Azure Blob 儲存體的 URL

重要

Linux 上的 SQL Server 僅支援使用區塊 Blob 備份至 Azure Blob 儲存體。 使用儲存體金鑰來進行備份與還原會導致系統使用不受支援的分頁 Blob。 請改用共用存取簽章。 如需區塊 Blob 與分頁 Blob 的資訊,請參閱備份至區塊 Blob 與分頁 Blob

備份資料庫

在下列範例中,sqlcmd 會連線至本機 SQL Server 執行個體,並取得稱為 demodb 的使用者資料庫完整備份。

sqlcmd -S localhost -U SA -Q "BACKUP DATABASE [demodb] TO DISK = N'/var/opt/mssql/data/demodb.bak' WITH NOFORMAT, NOINIT, NAME = 'demodb-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"

執行命令時,SQL Server 會提示您輸入密碼。 輸入密碼之後,Shell 會傳回備份進度的結果。 例如:

Password:
10 percent processed.
21 percent processed.
32 percent processed.
40 percent processed.
51 percent processed.
61 percent processed.
72 percent processed.
80 percent processed.
91 percent processed.
Processed 296 pages for database 'demodb', file 'demodb' on file 1.
100 percent processed.
Processed 2 pages for database 'demodb', file 'demodb_log' on file 1.
BACKUP DATABASE successfully processed 298 pages in 0.064 seconds (36.376 MB/sec).

備份交易記錄

如果您的資料庫處於完整復原模式,您也可以進行交易記錄備份,以獲得更細微的還原選項。 在下列範例中,sqlcmd 會連線至本機 SQL Server 執行個體,並進行交易記錄備份。

sqlcmd -S localhost -U SA -Q "BACKUP LOG [demodb] TO DISK = N'/var/opt/mssql/data/demodb_LogBackup.bak' WITH NOFORMAT, NOINIT, NAME = N'demodb_LogBackup', NOSKIP, NOREWIND, NOUNLOAD, STATS = 5"

還原資料庫

在下列範例中,sqlcmd 會連線至 SQL Server 的本機執行個體,並還原 demodb 資料庫。 NORECOVERY 選項用於允許記錄檔案備份的其他還原。 如果您不打算還原其他記錄檔,請移除 NORECOVERY 選項。

sqlcmd -S localhost -U SA -Q "RESTORE DATABASE [demodb] FROM DISK = N'/var/opt/mssql/data/demodb.bak' WITH FILE = 1, NOUNLOAD, REPLACE, NORECOVERY, STATS = 5"

提示

如果您不小心使用 NORECOVERY,但沒有其他記錄檔備份,請執行命令 RESTORE DATABASE demodb,而不使用其他參數。 這會完成還原,並讓您的資料庫保持運作。

還原交易記錄

下列命令會還原先前的交易記錄備份。

sqlcmd -S localhost -U SA -Q "RESTORE LOG demodb FROM DISK = N'/var/opt/mssql/data/demodb_LogBackup.bak'"

使用 SQL Server Management Studio (SSMS) 進行備份和還原

您可以從 Windows 電腦使用 SSMS 連線至 Linux 資料庫,並透過使用者介面進行備份。

注意

使用最新版的 SSMS 連線至 SQL Server。 若要下載並安裝最新版本,請參閱下載 SQL Server Management Studio (SSMS)。 如需使用 SSMS 的詳細資訊,請參閱使用 Windows 上的 SQL Server Management Studio 來管理 Linux 上的 SQL Server

下列步驟會逐步解說如何使用 SSMS 進行備份。

  1. 啟動 SSMS 並連線到 Linux 上的 SQL Server 執行個體。

  2. 在 [物件總管] 中,以滑鼠右鍵按一下資料庫,選取 [工作],然後選取 [備份...]。

  3. 在 [備份資料庫] 對話方塊中,確認參數和選項,然後選取 [確定]。

SQL Server 完成資料庫備份。

使用 SQL Server Management Studio (SSMS) 還原

下列步驟會逐步引導您使用 SSMS 還原資料庫。

  1. 在 SSMS 中,以滑鼠右鍵按一下 [資料庫],然後選取 [還原資料庫...]。

  2. 在 [來源] 底下,選取 [裝置],然後選取省略符號 (...)。

  3. 找出您的資料庫備份檔案,然後選取 [確定]。

  4. 在 [還原計畫] 下方,確認備份檔案和設定。 選取 [確定]。

  5. SQL Server 會還原資料庫。

參與編輯 SQL 文件

您知道您可以自行編輯 SQL 內容嗎? 這樣做不僅可以協助改善文件,也能名列該頁面的參與者。

如需詳細資訊,請參閱如何參與 SQL Server 文件