MySQL在生产环境下是怎么进行备份和备份恢复的?

mysql的基础备份和基础备份恢复很简单,备份用mysqldump命令,恢复备份用 < 标准输入符。其实很多进入公司工作过一段时间的IT小伙伴,应该都知道这两个操作,所以本文主要是针对一些刚开始踏入此行业的新人提供一定的指导方向。

一、备份的方式

1.逻辑备份

逻辑备份最常用的工具是mysqldump,是指对数据库的表结构、表数据等进行备份,通常会保存为一个sql扩展名的文件。

  • 备份特定数据库
  • 备份特定表

备份特定表时,要注意:生成的sql文件中只包含了create table的语句。

  • 备份所有数据库

2.物理备份

物理备份是对数据库的物理文件(如数据文件、日志文件等)进行备份。物理备份可以分为冷备份和热备份。

  • 冷备份:在数据库关闭状态下进行备份,如使用打包工具(如tar)将数据库文件目录打包。这种方法简单但会影响数据库的可用性。
  • 热备份:在数据库运行状态下进行备份,通常依赖于数据库的二进制日志(binlog)功能。这种方法不会影响数据库的可用性,但需要更复杂的配置和操作步骤。

3.第三方工具备份

除了mysqldump和物理备份外,还可以使用第三方工具进行备份,如Percona XtraBackup、Navicat、DBeaver等。这些工具提供了更丰富的功能和更高的可靠性,特别适用于大型数据库和需要高可用性的场景。

二、备份恢复方式

1.逻辑恢复

  • 恢复整个数据库:使用mysql命令导入SQL文件
  • 恢复特定表:如果只需要恢复特定的表,可以先创建一个空数据库(如果尚不存在),然后修改SQL文件以仅包含需要恢复的表的SQL语句,最后使用mysql命令导入。

2.物理恢复

物理恢复是将备份的物理文件(如数据文件和日志文件)恢复到MySQL服务器的相应位置,并重新启动MySQL服务。这种方法通常用于冷备份的恢复。

3.第三方工具恢复

使用第三方工具进行恢复时,需要按照工具的特定步骤和说明进行操作。通常这些工具提供了图形化界面或命令行工具,以简化恢复过程。

三、注意事项

  • 定期备份:定期备份数据库是防止数据丢失的关键措施。备份频率应根据数据变化率和对数据丢失的容忍度来确定。
  • 备份验证:备份完成后应进行验证,以确保备份文件的完整性和可用性。
  • 恢复演练:定期进行恢复演练可以帮助确保在数据丢失时能够迅速、准确地恢复数据。

MySQL数据库的备份和恢复是确保数据安全和业务连续性的重要手段。在生产环境中,应根据实际情况选择合适的备份和恢复方法,并遵循最佳实践以确保数据的完整性和可用性。

MySQL数据库备份

前端监控:www.webfunny.cn ;只需要简单几步,就可以搭建一套属于自己的前端监控系统,快来试试吧。(github:webfunny_monitor)

mysqldump 是 MySQL 自带的逻辑备份工具。

它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert 语句,当我们需要还原这些数据时,只要执行这些 insert 语句,即可将对应的数据还原。

选项说明

1、备份命令

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 –database 数据库名 > 文件名.sql

例如: mysqldump -h 192.168.1.100 -p 3306 -uroot -ppassword –database cmdb > /data/backup/cmdb.sql

2、备份压缩

导出的数据有可能比较大,不好备份到远程,这时候就需要进行压缩

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 –database 数据库名 | gzip > 文件名.sql.gz

例如: mysqldump -h192.168.1.100 -p 3306 -uroot -ppassword –database cmdb | gzip > /data/backup/cmdb.sql.gz

3、备份同个库多个表

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 –database 数据库名 表1 表2 …. > 文件名.sql

例如 mysqldump -h192.168.1.100 -p3306 -uroot -ppassword cmdb t1 t2 > /data/backup/cmdb_t1_t2.sql

4、同时备份多个库

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 –databases 数据库名1 数据库名2 数据库名3 > 文件名.sql

例如:mysqldump -h192.168.1.100 -uroot -ppassword –databases cmdb bbs blog > /data/backup/mutil_db.sql

5、备份实例上所有的数据库

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 –all-databases > 文件名.sql

例如:mysqldump -h192.168.1.100 -p3306 -uroot -ppassword –all-databases > /data/backup/all_db.sql

6、备份数据出带删除数据库或者表的sql备份

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 –add-drop-table –add-drop-database 数据库名 > 文件名.sql

例如:mysqldump -uroot -ppassword –add-drop-table –add-drop-database cmdb > /data/backup/all_db.sql

7、备份数据库结构,不备份数据

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 –no-data 数据库名1 数据库名2 数据库名3 > 文件名.sql

例如:mysqldump –no-data –databases db1 db2 cmdb > /data/backup/structure.sql

3.1 系统行命令

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。