mysql数据库备份方式 mysql数据库备份方法有几种( 二 )


–single-transaction 功能:InnoDB “热备” 。对于InnoDB表不锁表,开启一致性快照备份.使用这个参数会在备份时调整隔离级别为RR同时开启快照备份
2021-07-20T02:48:26.478282Z57 Connect [email protected] onusing Socket2021-07-20T02:48:26.478440Z57 Query /*!40100 SET @@SQL_MODE='' */2021-07-20T02:48:26.478531Z57 Query /*!40103 SET TIME_ZONE='+00:00' */2021-07-20T02:48:26.478601Z57 Query /*!80000 SET SESSION information_schema_stats_expiry=0 */2021-07-20T02:48:26.478654Z57 Query SET SESSION NET_READ_TIMEOUT= 86400, SESSION NET_WRITE_TIMEOUT= 864002021-07-20T02:48:26.478719Z57 Query FLUSH /*!40101 LOCAL */ TABLES2021-07-20T02:48:26.480218Z57 Query FLUSH TABLES WITH READ LOCK2021-07-20T02:48:26.480292Z57 Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ2021-07-20T02:48:26.480341Z57 Query START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */–flush-logs 在备份开始时刷新一个新的二进制日志文件
特殊对象备份-R -E –triggers 备份存储过程,函数.事件
–max-allowed-packet=128M 默认是24M.最大可以设置1G
–where 导出指定条件的数据
[[email protected] ~]# mysqldump -uroot -p123 -P3307 -S /data/3307/mysql.sock scsales_prd T_HM_ROOMNO_VIEW_LOG_bak1 --where="pkid<10010">all.sql单库备份:
[[email protected] ~]# mysqldump -uroot -p123 -P3307 -S /data/3307/mysql.sock world --single-transaction>all.sql单表备份:
[[email protected] ~]# mysqldump -uroot -p123 -P3307 -S /data/3307/mysql.sock world city --single-transaction>all.sql最后提供一个生产经常使用的mysqldump完整版
mysqldump -uroot -p123 -A --master-data=https://www.520longzhigu.com/shenghuo/2 --single-transaction -R -E --triggers --max-allowed-packet=128M --flush-logs>/opt/full.sql以上就是对mysql的逻辑备份方式mysqldump的总结.
三 物理备份方式介绍说到物理备份方式.在MySQL8.0之前我们可以选择的物理备份工具都是PXB 从MySQL8017版本之后我们多了一种选择.那就是MySQL自带的clone plguin
3.1 PXB介绍PXB是percona开源出来的一个物理备份工具.可以实现innodb的热备.实现原理是利用了mysql的crash recovery原理.
首先介绍xtrabackup的实现原理:
1.执行备份命令之后pxb先获取到当前的lsn.然后开始拷贝redo文件.同时开启一个后台线程监控redo的实时变化同步到拷贝目录.2.开始先拷贝innodb表数据.然后执行FLUSH TABLES WITH READ LOCK 和LOCK TABLES FOR BACKUP拷贝非innodb表数据.当这些拷贝完成之后.再拷贝其他数据文件3.然后执行LOCK BINLOG FOR BACKUP开始获取二进制日志的位置点及Exec_Gtid_Set4.此时xtrabackup完成对redo的拷贝并释放二进制日志的锁使用xtrabackup备份数据库:
[email protected] ~]# xtrabackup --backup --user=root --password=123 --target-dir=/data/backups/xtrabackup: recognized server arguments: --datadir=/data/3306/data --server-id=7 --log_bin=/data/3306/binlog/mysql-bin --open_files_limit=65535 --innodb_buffer_pool_size=4096M --innodb_flush_log_at_trx_commit=1 --innodb_log_buffer_size=32M --innodb_log_file_size=128M --innodb_log_files_in_group=3 --innodb_flush_log_at_trx_commit=1 使用xtrabackup进行增量备份
增量备份的原理:
xtrabackup会对比全备下的LSN号码.然后进行增量拷贝
查看全备目录下记录的lsn.后边我们查看增量的LSN
[[email protected] ~]# cat /data/backups/xtrabackup_checkpointsbackup_type = full-backupedfrom_lsn = 0to_lsn = 2628274last_lsn = 2628283compact = 0recover_binlog_info = 0模拟增量数据mysql> create database increment;Query OK, 1 row affected (0.00 sec)mysql> use increment;Database changedmysql> create table increment(id int,name varchar(30));Query OK, 0 rows affected (0.01 sec)mysql> insert into increment values(1,'lzm');Query OK, 1 row affected (0.01 sec)mysql>


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: