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
广告