数据库运维中的备份和恢复是保障数据安全与可用性的关键操作,以下是常见数据库的备份和恢复方法:
全量备份
MySQL:使用 mysqldump 命令,如 mysqldump -u [用户名] -p [数据库名] > [备份文件路径].sql。这会将指定数据库的结构和数据导出到一个 SQL 文件中。
Oracle:可以使用 RMAN(Recovery Manager)工具,通过命令行进入 RMAN 后,执行 BACKUP DATABASE; 命令进行全量备份。
SQL Server:在 SQL Server Management Studio 中,右键点击要备份的数据库,选择“任务” - “备份”,在备份类型中选择“完整”,然后指定备份文件的路径等信息。
增量备份
MySQL:借助 binlog(二进制日志)实现增量备份。首先开启 binlog 功能(在 my.cnf 配置文件中设置 log_bin = [日志文件路径]),然后定期备份 binlog 文件。例如,可以使用脚本定期将 binlog 文件复制到备份目录。
Oracle:同样使用 RMAN 工具,执行 BACKUP INCREMENTAL LEVEL 1 DATABASE; 命令进行一级增量备份(基于上一次全量备份或更高级别增量备份之后的变化)。
SQL Server:在 SQL Server 中,通过备份作业设置增量备份。在备份选项中选择“差异”,它会备份自上次完整备份以来数据库中发生变化的数据。
差异备份
备份策略制定
全量恢复
MySQL:使用 mysql 命令将之前备份的 SQL 文件导入到目标数据库,如 mysql -u [用户名] -p [数据库名] < [备份文件路径].sql。
Oracle:在 RMAN 中,使用 RESTORE DATABASE; 和 RECOVER DATABASE; 命令来恢复全量备份。RESTORE 命令用于将备份文件还原到磁盘,RECOVER 命令用于应用归档日志和联机重做日志以使数据库达到一致状态。
SQL Server:在 SQL Server Management Studio 中,右键点击目标数据库,选择“任务” - “还原” - “数据库”,在弹出的对话框中选择备份文件,并根据需要配置还原选项。
增量/差异恢复
MySQL:先进行全量恢复,然后按照备份顺序依次应用增量备份的 binlog 文件。可以使用 mysqlbinlog 工具解析 binlog 文件并执行其中的 SQL 语句,如 mysqlbinlog [binlog 文件路径] | mysql -u [用户名] -p [数据库名]。
Oracle:在全量恢复(RESTORE DATABASE)之后,使用 RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL TIME 'YYYY-MM-DD HH24:MI:SS'; 命令(根据实际情况指定时间或 SCN 号)来应用增量备份数据,使数据库恢复到指定时间点或 SCN(系统更改号)状态。
SQL Server:在全量恢复后,选择差异备份文件进行还原操作。在还原差异备份时,需要确保先还原全量备份,并且在还原差异备份时选择合适的还原选项,如“覆盖现有数据库”等。
恢复测试