SQL 資料庫備份



在本 SQL 資料庫備份教程中,我們將解釋如何在 MySQLMS SQL Server 中備份資料庫。在資料庫由於電源浪湧或磁碟崩潰等原因損壞或丟失時擁有資料庫備份是非常重要和基本的開發實踐。透過實踐這一點,可以恢復資料庫到故障發生前的狀態。

SQL 資料庫備份語句

在 SQL 中,BACKUP DATABASE 語句用於建立資料庫備份。

語法

以下是 SQL 資料庫備份語句的語法:

BACKUP DATABASE database_name
TO DISK = 'filepath'
GO

此處,SQL 命令建立資料庫 database_name 的備份檔案。

SQL 中的備份型別

在 SQL 中,有三種可用的資料庫備份型別。它們是

  • 完全備份
  • 差異備份
  • 事務日誌 (T-log) 備份

SQL 完全備份

完全備份是 SQL Server 資料庫的完整備份。

語法

以下是 SQL 完全備份的語法:

BACKUP DATABASE database_name
TO medium = 'filepath'
GO

此處,database_name 是資料庫的名稱,medium 指的是儲存介質,例如磁碟、磁帶或 URL。

SQL 差異備份

在 Sql 中,您還可以使用 WITH DIFFERENTIAL 命令僅備份新的更改。

語法

以下是 Sql 差異備份的語法:

BACKUP DATABASE my_db
TO medium = 'filepath'
WITH DIFFERENTIAL;
GO

此處,database_name 是資料庫的名稱,medium 指的是儲存裝置,例如磁碟、磁帶或 URL。

事務日誌 (T-log) 備份

事務日誌備份包括自上次事務日誌備份以來的所有事務。BACKUP LOG 命令用於執行事務日誌備份。

語法

以下是 Sql 事務日誌備份的語法:

BACKUP LOG database_name
TO medium = 'filepath';
GO

此處,database_name 是資料庫的名稱,medium 指的是儲存裝置,例如磁碟

從備份還原資料庫

要還原資料庫中的備份檔案,我們可以使用 RESTORE DATABASE 命令。

語法

以下是從備份還原資料庫的語法:

RESTORE DATABASE database_name
FROM DISK = 'filepath';
GO

此處,database_name 是資料庫的名稱,medium 指的是磁碟、磁帶或 URL。

MySQL 和 MS SQL 資料庫備份和還原

以下是建立 MySQL 和 MS Sql 資料庫備份的過程。

備份 MySQL 資料庫

MySQL 的 mysqldump 命令可用於獲取給定資料庫的完整備份。此操作將在命令列中執行,需要資料庫使用者名稱和密碼,最好是管理員許可權。

$ mysqldump -u username -p"password" -R testDB > testDB.sql

我們使用 -p 標記緊跟我們的密碼,以無空格的方式連線到資料庫。-R 是必需的,以告訴 mysqldump 除了資料庫中的正常資料之外,還複製儲存過程和函式。

根據資料庫的大小,上述命令可能需要一段時間才能建立最終輸出檔案 testDB.sql。命令完成後,您將擁有一個完整的資料庫轉儲檔案 testDB.sql,您可以將其儲存在任何您喜歡的位置。稍後,此檔案可用於還原資料庫。

還原 MySQL 資料庫

如果我們有資料庫轉儲,則可以使用以下兩步過程來還原我們的資料庫。第一步是使用 mysqladmin 提示命令建立我們的新資料庫,如下所示

$ mysqladmin -u username -p"password" create tutorialsDB;

下一步是將舊資料庫匯入到新的資料庫中,如下所示

$ mysql -u username -p"password" tutorialsDB < testDB.sql;
如果您希望保留與舊資料庫相同的資料庫名稱,則必須先刪除舊資料庫,然後在將舊資料匯入此資料庫之前重新建立它,但請確保此資料庫中沒有任何您不想丟失的資料。

備份 MS SQL 資料庫

如果您使用的是 MS SQL Server,則要為現有資料庫建立備份,SQL 為我們提供了一個簡單的 SQL BACKUP DATABASE 命令。

語法

以下是 SQL 中 BACKUP DATABASE 命令的語法:

BACKUP DATABASE database_name
TO DISK = 'filepath'
GO

示例

以下是如何在 D 盤上為資料庫 testDB 建立備份檔案的示例。

SQL> BACKUP DATABASE testDB
TO DISK = 'D:\testDB.bak'
GO
要執行備份或還原,您應該具有管理員 sysadmin 許可權。您還應將資料庫備份到除實際資料庫以外的其他磁碟上。即使磁碟崩潰,我們也不會丟失備份檔案以及資料庫。

輸出

當我們執行上述查詢時,將獲得以下輸出:

Processed 344 pages for database 'testDB', file 'testDB' on file 1.
Processed 2 pages for database 'testDB', file 'testDB_log' on file 1.
BACKUP DATABASE successfully processed 346 pages in 0.011 seconds (245.383 MB/sec).

還原 MS SQL 資料庫

如果您有 MS SQL 資料庫的正確備份,則可以在需要時輕鬆地將其還原。

語法

以下是 SQL 中 RESTORE DATABASE 命令的語法:

RESTORE DATABASE database_name
FROM DISK = 'filepath'
[WITH REPLACE]
GO

如果要覆蓋現有資料庫,則可以提供 WITH REPLACE 選項。

示例

以下是如何從 D 盤上可用的備份檔案 testDB.bak 還原資料庫的示例。

SQL> RESTORE DATABASE testDB
FROM DISK = 'D:\testDB.bak'
WITH REPLACE
GO
廣告