mysql的数据备份
mysqldump
MySQL 自带的数据库备份工具。
注意:mysqldump 工具导出数据库只适用于数据量比较小的数据库,如果数据量特别大,就不建议用此工具,因为会导出时间特别长,并且导入时间也特别长。
导出数据库
方式一
方式二
区别:在使用第一种方法的时候,应该先在MYSQL中建立一个新的库,之后把需要恢复的数据导入你新建的库

而第二种方法可以直接导入比如:

如想要备份所有的数据库则:

如果目标太大则可以压缩

复原则是:

导出表及其复原


只导出数据库的结构(不要表的数据)

加-d
xtrabackup
重要日志 redo log
是 InnoDB 存储引擎专属的日志,用于保证数据的持久性。
当数据库突然崩溃(如断电)时,InnoDB 可以通过重做日志恢复尚未写入数据文件(.ibd)的已提交事务,避免数据丢失。
简单说:它是 “防止崩溃丢失数据” 的保障。
redolog 日志就是 ib_logfile0 和 ib_logfile1,默认情况下会有这两个文件组成 redolog,MySQL 会先向 ib_logfile0 写入日志,写满之后然后再向 ib_logfile1 写入,当 ib_logfile1 写满了之后又会向 ib_logfile0行写入,并且之前 ib_logfile0 的日志会被覆盖掉

xtrabackup 备份数据的过程
备份开始时,xtrabackup 先记录一个 “起始标记”(LSN),xtrabackup 会先将数据库里已有的数据进行备份,在备份的同时,xtrabackup 会实时监控着 redolog 日志文件,如果又新的 redolog 日志产生,就说明有新的数据写入,xtrabackup 会将新增的 redolog 日志记录下来,确保不会漏掉新增的数据,备份结束之后会再记录一个 LSN 标记,然后将起始和结束之间的所有数据以及新产生的数据整合成一个备份文件。
注意:如果对 myIsam 类型的进行备份,需要先停止数据的写入,然后再备份,因为 myIsam 不支持事务性,不能做回滚操作。
xtrabackup 备份恢复的过程
备份恢复分为两个阶段,一个是数据的预处理(prepare),另一个是数据恢复。
第一阶段:
通过 xtrabackup --prepare 命令,读取备份文件中的配置文件,然后重做已提交的事务,回滚未提交的事务,之后数据就写到了备份的数据文件(.ibd)中,并重建日志文件。
第二阶段:
将备份文件复制到数据库数据目录。
xtrabackup 备份操作步骤与命令参数
操作步骤
创建备份目录:先创建 /data 目录,用于存储备份数据。
执行备份命令:运行指定的 xtrabackup 备份命令完成数据备份。
核心备份命令
假设要将数据库备份到 /data/backup/mysql 目录下

参数说明:
--backup :执行备份操作。
--target-dir :存放备份文件的目录。
--parallel :并发拷贝数据文件的线程数。
备份产物:命令执行后, /data/backup/mysql 目录下会包含数据文件、
xtrabackup_binlog_info (位点信息)、 xtrabackup_checkpoints (LSN信息)等关键文
件。
浙公网安备 33010602011771号