SQL 数据库备份

SQL 数据库备份

本教程将说明如何在MySQL和MS SQL Server中对数据库进行备份。由于可能因为电力波动或磁盘崩溃等原因导致数据丢失,因此创建数据库备份非常重要。总体而言,定期进行数据库备份对确保关键数据的长期可用性至关重要。

备份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

示例

以下是一个创建数据库 testDBD 盘上的备份文件的示例。

SQL> BACKUP DATABASE testDB
TO DISK = 'D:\testDB.bak'
GO

要执行备份或恢复操作,您应具有管理员和系统管理员的权限。您还应该将数据库备份到与实际数据库不同的磁盘上。即使磁盘崩溃,我们也不会丢失备份文件和数据库。

输出

当我们执行上述查询时,输出结果如下所示:

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).

使用SQL DIFFERENTIAL语句进行备份

SQL DIFFERENTIAL语句备份用于创建数据库的差异备份。差异备份只包含自上次完整备份以来对数据库所做的更改。与完整备份相比,这种类型的备份通常更小。因此,它减少了备份所需的时间。

语法

以下是使用DIFFERENTIAL语句备份数据库的语法-

BACKUP DATABASE database_name
TO DISK = 'filepath'
WITH DIFFERENTIAL
GO

示例

让我们来看一个使用下面的DIFFERENTIAL语句的例子:

SQL> BACKUP DATABASE testDB
TO DISK = 'D:\testDB.bak'
WITH DIFFERENTIAL
GO

输出

执行以上查询后,输出如下:

Processed 200 pages for database 'testDB', file 'testDB' on file 2.
Processed 2 pages for database 'testDB', file 'testDB_log' on file 2.
BACKUP DATABASE WITH DIFFERENTIAL successfully processed 202 pages in 0.011 seconds (143.110 MB/sec).

恢复MS SQL数据库

如果您有一个正确的MS SQL数据库备份,那么在需要时可以轻松地恢复它。

语法

以下是SQL中RESTORE DATABASE命令的语法。

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

在这里,如果您想覆盖现有数据库,可以使用 WITH REPLACE 选项。

示例

以下是从备份文件 testDB.bak 恢复数据库的示例,该文件存在于 D 驱动器上。

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程