快速入門:SQL 備份及還原至 Azure Blob 儲存體
適用於: SQL Server 2016 (13.x) 和更新版本 Azure SQL 受控執行個體
本快速入門可協助您了解如何將備份寫入至 Azure Blob 儲存體以及從中還原。 本文說明如何建立 Azure Blob 儲存體容器、將備份寫入到 Azure Blob 儲存體,然後執行還原。
注意
SQL Server 2012 SP1 CU2 已推出對備份到 Azure Blob 儲存體的支援。 SQL Server 2014 和先前版本不支援此快速入門文章中所述的共用存取簽章 (SAS)。
針對 SQL Server 2014 和先前版本,請使用教學課程:SQL Server 2014 備份及還原至 Microsoft Azure Blob 儲存體。
必要條件
若要完成本快速入門,您必須熟悉 SQL Server 備份與還原概念以及 T-SQL 語法。 您需要 Azure 儲存體帳戶、SQL Server Management Studio (SSMS),以及執行 SQL Server 伺服器或 Azure SQL 受控執行個體之伺服器的存取權。 此外,用來發出 BACKUP 或 RESTORE 命令的帳戶,應該位於擁有 ALTER ANY CREDENTIAL 權限的 db_backupoperator 資料庫角色中。
- 取得免費 Azure 帳戶。
- 建立 Azure 儲存體帳戶。
- 安裝 SQL Server Management Studio。
- 安裝 SQL Server 2017 Developer Edition,或使用透過 Azure SQL 虛擬機器或點對站建立的連線來部署 Azure SQL 受控執行個體。
- 將使用者帳戶指派給 db_backupoperator 的角色,並授與 ALTER ANY CREDENTIAL 權限。
建立 Azure Blob 儲存體容器
容器會提供一組 Blob 的群組。 所有 Blob 都必須位於容器中。 儲存體帳戶可以包含不限數目的容器,但是至少必須具有一個容器。 容器可以儲存不限數目的 Blob。
若要建立容器,請遵循下列步驟:
開啟 Azure 入口網站。
巡覽至您的儲存體帳戶。
選取儲存體帳戶,向下捲動至 [Blob 服務]。
選取 [Blob],然後選取 [+ 容器] 以新增新的容器。
輸入容器名稱,並記下您指定的容器名稱。 此資訊會在本快速入門稍後的 T-SQL 陳述式內的 URL (備份檔路徑) 中用到。
選取 [確定]。
注意
即使您選擇建立公用容器,SQL Server 備份與還原仍然需要儲存體帳戶的驗證。 您也可以使用 REST API,以程式設計方式建立容器。 如需詳細資訊,請參閱建立容器
建立測試資料庫
在此步驟中,使用 SQL Server Management Studio (SSMS) 來建立測試資料庫。
- 啟動 SQL Server Management Studio (SSMS) 並連線至 SQL Server 執行個體。
- 開啟 [新增查詢] 視窗。
- 執行下列 Transact-SQL (T-SQL) 程式碼以建立測試資料庫。 重新整理 [物件總管] 中的 [資料庫] 節點以查看新的資料庫。 在 SQL 受控執行個體上建立的新資料庫會自動啟用 TDE,因此您將必須加以停用以繼續。
USE [master]
GO
-- Create database
CREATE DATABASE [SQLTestDB]
GO
-- Create table in database
USE [SQLTestDB]
GO
CREATE TABLE SQLTest (
ID INT NOT NULL PRIMARY KEY,
c1 VARCHAR(100) NOT NULL,
dt1 DATETIME NOT NULL DEFAULT getdate()
)
GO
-- Populate table
USE [SQLTestDB]
GO
INSERT INTO SQLTest (ID, c1) VALUES (1, 'test1')
INSERT INTO SQLTest (ID, c1) VALUES (2, 'test2')
INSERT INTO SQLTest (ID, c1) VALUES (3, 'test3')
INSERT INTO SQLTest (ID, c1) VALUES (4, 'test4')
INSERT INTO SQLTest (ID, c1) VALUES (5, 'test5')
GO
SELECT * FROM SQLTest
GO
-- Disable TDE for newly-created databases on SQL Managed Instance
USE [SQLTestDB];
GO
ALTER DATABASE [SQLTestDB] SET ENCRYPTION OFF;
GO
DROP DATABASE ENCRYPTION KEY
GO
建立認證
依照下面的步驟使用 SQL Server Management Studio 中的 GUI 來建立認證。 或者,您也能以程式設計方式建立認證。
展開 SQL Server Management Studio(SSMS) 之 [物件總管] 內的 [資料庫] 節點。
以滑鼠右鍵按一下新的
SQLTestDB
資料庫,將滑鼠游標移到 [工作] 上方並選取 [備份] 以啟動 [備份資料庫] 精靈。從 [備份至] 目的地下拉式清單選取 [URL],然後選取 [新增] 以啟動 [選取備份目的地] 對話方塊。
選取 [選取備份目的地] 對話方塊上的 [新增容器] 以啟動 [連線至 Microsoft 訂用帳戶] 視窗。
選取 [登入] 以登入 Azure 入口網站,然後繼續完成登入程序。
從下拉式清單選取您的訂用帳戶。
從下拉式清單中選取您的儲存體帳戶。
從下拉式清單選取您先前建立的容器。
選取 [建立認證] 以產生您的共用存取簽章 (SAS) 。 儲存此值,因為您將需要它才能進行還原。
選取 [確定] 以關閉 [連線至 Microsoft 訂用帳戶] 視窗。 這會在 [選取備份目的地] 對話方塊上填入 Azure 儲存體容器值。 選取 [確定] 以選擇選取的儲存體容器,並關閉對話方塊。
目前,您可以跳到下一節中的步驟 4 以快速建立資料庫備份,或關閉 [備份資料庫] 精靈以改為使用 Transact-SQL 備份資料庫來繼續。
備份資料庫
在此步驟中,使用 SQL Server Management Studio 內的 GUI 或 Transact-SQL (T-SQL) 將資料庫 SQLTestDB
備份到您的 Azure Blob 儲存體帳戶。
若 [備份資料庫] 精靈尚未開啟,請展開 SQL Server Management Studio(SSMS) 之 [物件總管] 內的 [資料庫] 節點。
以滑鼠右鍵按一下新的
SQLTestDB
資料庫,將滑鼠游標移到 [工作] 上方並選取 [備份] 以啟動 [備份資料庫] 精靈。從 [備份至] 下拉式清單選取 [URL],然後選取 [新增] 以啟動 [選取備份目的地] 對話方塊。
在 [Azure 儲存體容器] 下拉式清單中選取您在上一個步驟中建立的容器。
選取 [備份資料庫] 精靈上的 [確定] 以備份您的資料庫。
成功備份資料庫之後,請選取 [確定] 以關閉所有備份相關視窗。
提示
您可以透過選取 [備份資料庫] 精靈頂端的 [指令碼] 來建立此命令背後的 Transact-SQL:
刪除資料庫
在此步驟中,請先刪除資料庫,然後再執行還原。 此步驟僅適用於此教學課程的目的,在一般資料庫管理程序中不太可能使用。 您可以跳過此步驟,但是在受控執行個體上進行還原時,您將需要變更資料庫的名稱,或執行還原命令 WITH REPLACE
,以便在內部部署環境中成功還原資料庫。
- 展開 [物件總管] 中的 [資料庫] 節點、以滑鼠右鍵按一下 []
SQLTestDB
資料庫,然後選取刪除以啟動 [刪除物件] 精靈。 - 在受控執行個體上,選取 [確定] 以刪除資料庫。 在內部部署環境中,選取 [關閉現有的連接] 旁的核取方塊並選取 [確定] 以刪除資料庫。
對話方塊的
在此步驟中,使用 SQL Server Management Studio 中的 GUI 或使用 Transact-SQL 來還原資料庫。
以滑鼠右鍵按一下 SQL Server Management Studio 內 [物件總管] 中的 [資料庫] 節點,然後選取 [還原資料庫]。
選取 [裝置],然後選取省略符號 (...) 以選擇裝置。
從 [備份媒體類型] 下拉式清單選取 [URL] 並選取 [新增] 以新增您的裝置。
從下拉式清單選取容器,然後貼到您在建立認證時儲存的共用存取簽章 (SAS)。
選取 [確定] 以選取備份檔案位置。
展開 [容器] 並選取您的備份檔案所在的容器。
選取您要還原的備份檔案,然後選取 [確定]。 如果看不到任何檔案,則您可能使用了錯誤的 SAS 金鑰。 您可以遵循與先前相同的步驟來重新產生 SAS 金鑰,以新增容器。
選取 [確定] 以關閉 [選取備份裝置] 對話方塊。
選取 [確定] 以還原您的資料庫。
另請參閱
下列是一些建議閱讀的主題,這些主題可讓您了解針對 SQL Server 備份使用 Azure Blob 儲存體的概念與最佳做法。