MySQL备份工具——mysqldump

2024年 3月 11日 76.5k 0

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

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

  • 备份全部的数据库、指定的数据库,或指定的表。

  • 允许在本地或远程进行备份。

  • 独立于存储引擎。

  • 生成文本格式的转储文件。

  • 可在不同的计算机上使用。

  • 灵活的复制/移动策略。

  • 适用于少量的数据导出,但不是一个完整的备份解决方案。

一个基本的使用例如下:

    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”客户端加载转储文件进行数据恢复,例如:

      mysql --login-path=login-path database < backup_file.sql

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

        mysqldump -uuser -ppassword orig-db | mysql -uuser-ppassword copy-db

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

          cd backup_dir
          mysql -uuser -p password database 

          相关文章

          Oracle如何使用授予和撤销权限的语法和示例
          Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
          下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
          社区版oceanbase安装
          Oracle 导出CSV工具-sqluldr2
          ETL数据集成丨快速将MySQL数据迁移至Doris数据库

          发布评论