- SQL 教程
- SQL - 首页
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 数据库
- SQL - 语法
- SQL - 数据类型
- SQL - 运算符
- SQL - 表达式
- SQL 数据库
- SQL - 创建数据库
- SQL - 删除数据库
- SQL - 选择数据库
- SQL - 重命名数据库
- SQL - 显示数据库
- SQL - 备份数据库
- SQL 表
- SQL - 创建表
- SQL - 显示表
- SQL - 重命名表
- SQL - 截断表
- SQL - 克隆表
- SQL - 临时表
- SQL - 修改表
- SQL - 删除表
- SQL - 删除表数据
- SQL - 约束
- SQL 查询
- SQL - 插入查询
- SQL - 选择查询
- SQL - Select Into
- SQL - Insert Into Select
- SQL - 更新查询
- SQL - 删除查询
- SQL - 排序结果
- SQL 视图
- SQL - 创建视图
- SQL - 更新视图
- SQL - 删除视图
- SQL - 重命名视图
- SQL 运算符和子句
- SQL - Where 子句
- SQL - Top 子句
- SQL - Distinct 子句
- SQL - Order By 子句
- SQL - Group By 子句
- SQL - Having 子句
- SQL - AND & OR
- SQL - BOOLEAN (BIT) 运算符
- SQL - LIKE 运算符
- SQL - IN 运算符
- SQL - ANY,ALL 运算符
- SQL - EXISTS 运算符
- SQL - CASE
- SQL - NOT 运算符
- SQL - 不等于
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 运算符
- SQL - UNION 运算符
- SQL - UNION 与 UNION ALL
- SQL - INTERSECT 运算符
- SQL - EXCEPT 运算符
- SQL - 别名
- SQL 连接
- SQL - 使用连接
- SQL - 内连接
- SQL - 左连接
- SQL - 右连接
- SQL - 交叉连接
- SQL - 全连接
- SQL - 自连接
- SQL - 删除连接
- SQL - 更新连接
- SQL - 左连接与右连接
- SQL - Union 与 Join
- SQL 键
- SQL - 唯一键
- SQL - 主键
- SQL - 外键
- SQL - 复合键
- SQL - 备用键
- SQL 索引
- SQL - 索引
- SQL - 创建索引
- SQL - 删除索引
- SQL - 显示索引
- SQL - 唯一索引
- SQL - 聚集索引
- SQL - 非聚集索引
- 高级 SQL
- SQL - 通配符
- SQL - 注释
- SQL - 注入
- SQL - 托管
- SQL - Min & Max
- SQL - Null 函数
- SQL - 检查约束
- SQL - 默认约束
- SQL - 存储过程
- SQL - NULL 值
- SQL - 事务
- SQL - 子查询
- SQL - 处理重复项
- SQL - 使用序列
- SQL - 自动递增
- SQL - 日期和时间
- SQL - 游标
- SQL - 公共表表达式
- SQL - Group By 与 Order By
- SQL - IN 与 EXISTS
- SQL - 数据库调优
- SQL 函数参考
- SQL - 日期函数
- SQL - 字符串函数
- SQL - 聚合函数
- SQL - 数值函数
- SQL - 文本和图像函数
- SQL - 统计函数
- SQL - 逻辑函数
- SQL - 游标函数
- SQL - JSON 函数
- SQL - 转换函数
- SQL - 数据类型函数
- SQL 有用资源
- SQL - 问答
- SQL - 快速指南
- SQL - 有用函数
- SQL - 有用资源
- SQL - 讨论
SQL 数据库备份
在本 SQL 数据库备份教程中,我们将解释如何在 MySQL 和 MS 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