前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL备份工具——mysqldump

MySQL备份工具——mysqldump

作者头像
MySQLSE
发布2024-03-12 08:55:58
1640
发布2024-03-12 08:55:58
举报

MySQL的安装包里面提供了“mysqldump”工具,它可以执行逻辑备份,如果执行备份的对象是InnoDB存储引擎,则可以执行热备份,默认情况下,它对所有的引擎执行温备份。在大多数的运维场景中,用户利用Linux的“crontab”,或Windows的任务调度程序自动运行“mysqldump”。

“mysqldump”可以将表的内容转储为文件,具有如下特点:

  • 备份全部的数据库、指定的数据库,或指定的表。
  • 允许在本地或远程进行备份。
  • 独立于存储引擎。
  • 生成文本格式的转储文件。
  • 可在不同的计算机上使用。
  • 灵活的复制/移动策略。
  • 适用于少量的数据导出,但不是一个完整的备份解决方案。

一个基本的使用例如下:

代码语言:javascript
复制
mysqldump --username --password=password db_name > backup.file

保证数据一致性

"mysqldump"可以通过如下选项保证数据的一致性:

  • “--master-data”:单独使用该选项,在备份期间通过“FLUSH TABLES WITH READ LOCK”锁定全部的表,如果该值设置为“2”,则能够在输出文件中包括“CHANGE MASER TO”语句,便于搭建另外一台复制的从服务器。
  • “--master-data”和“--single-transaction”:同时使用两个选项时,InnoDB无需锁表并能够保证一致性,在备份操作开始之前,取得全局锁以获得一致的二进制日志位置。当事务的隔离级别为“repeatable read”时,开启“--single-transaction”选项读取InnoDB的数据,可以获得非锁定的数据一致性。
  • “--lock-all-tables”:在转储期间,通过锁定全部的表满足一致性。
  • “--flush-logs”:开启一个新的二进制日志。

“mysqldump”用于创建对象的选项:

  • “--no-create-db”:不写入“CREATE DATABASE”语句。
  • “--no-create-info”:不写入“CREATE DATABASE”语句。
  • “--no-data”:创建数据库和表的结构,但是不包含数据。
  • “--no-tablespaces”:不写入“CREATE LOGFILE GROUP”或“CREATE TABLESPACE”。
  • “--quick”:快速从表中查询一条记录,不使用表的缓冲集。

“mysqldump”用于删除对象的选项:

“--add-drop-database”:在创建数据语句之前增加“DROP DATABASE”语句。

“--add-drop-table”:在创建表语句之前增加“DROP TABLE”语句。

此外,“mysqldump”还有一些其他的通用选项,例如,“--routines”、“--event”,“--trigger”,分别用于转储存储例程、事件调度器的事件,及触发器。“--opt”选项是以下语句的简写:“--add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick--set-charset”。它提供了一个快速的转储操作,并产生一个可以快速重新加载到MySQL服务器的转储文件。

恢复数据

利用“mysql”客户端加载转储文件进行数据恢复,例如:

代码语言:javascript
复制
mysql --login-path=login-path database < backup_file.sql

也可以将一个数据库复制到另外一台服务器,例如:

代码语言:javascript
复制
mysqldump -uuser -ppassword orig-db | mysql -uuser-ppassword copy-db

利用“mysqlimport”,并使用“--tab”选项可以处理用制表符分割的数据文件。“.sql”文件包含“CREATE TABLE”语句,“.txt”文件包含表的数据。加载该表,需要更改备份路径,使用“mysql”客户端处理“.sql”文件,使用“mysqlimport”处理“.txt”文件。例如:

代码语言:javascript
复制
cd backup_dir
mysql -uuser -p password database < table.sql
mysqlimport -uuser -ppassword database table.txt
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQL解决方案工程师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档