使用innobackupex做全备——mysql物理备份基础

什么是innobackupex

innobackupex是xtrabackup工具的命令之一,可以对innoDB,XtraDB,MyISAM等存储类型的库进行备份,non-blocking backup tool。
innobackupex的帮助文档:
     WARNING:
           The innobackupex program is deprecated. Please switch to xtrabackup.
innobackupex程序已经过时了,应尽量使用xtrabackup。innobackupex可以看成是xtrabackup的一部分,xtrabackup当然也可以完成热备,增量备份等功能。
xtrabackup的参数跟innobackupex有些许不同

数据库全备


[root@lzl ~]# innobackupex  --defaults-file=/etc/my.cnf  -uroot -poracle --port=3306 -S/tmp/mysql.sock /data/bak/hotbak
xtrabackup: recognized server arguments: --datadir=/data/mysql --log_bin=master-bin --server-id=1001 
xtrabackup: recognized client arguments: 
200813 15:02:58 innobackupex: Starting the backup operation

IMPORTANT: Please check that the backup run completes successfully.
           At the end of a successful backup run innobackupex
           prints "completed OK!".

200813 15:02:58  version_check Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_group=xtrabackup;port=3306;mysql_socket=/tmp/mysql.sock' as 'root'  (using password: YES).
200813 15:02:58  version_check Connected to MySQL server
200813 15:02:58  version_check Executing a version check against the server...
200813 15:02:58  version_check Done.
200813 15:02:58 Connecting to MySQL server host: localhost, user: root, password: set, port: 3306, socket: /tmp/mysql.sock
Using server version 5.7.20-log
innobackupex version 2.4.20 based on MySQL server 5.7.26 Linux (x86_64) (revision id: c8b4056)
xtrabackup: uses posix_fadvise().
xtrabackup: cd to /data/mysql
xtrabackup: open files limit requested 0, set to 1024
xtrabackup: using the following InnoDB configuration:
xtrabackup:   innodb_data_home_dir = .
xtrabackup:   innodb_data_file_path = ibdata1:12M:autoextend
xtrabackup:   innodb_log_group_home_dir = ./
xtrabackup:   innodb_log_files_in_group = 2
xtrabackup:   innodb_log_file_size = 50331648
InnoDB: Number of pools: 1
200813 15:02:58 >> log scanned up to (2687009)  --lsn号
xtrabackup: Generating a list of tablespaces
InnoDB: Allocated tablespace ID 61 for lzldb/tab2, old maximum was 0
200813 15:02:59 [01] Copying ./ibdata1 to /data/bak/hotbak/2020-08-13_15-02-58/ibdata1   --先备份ibd文件
200813 15:02:59 [01]        ...done
200813 15:02:59 [01] Copying ./lzldb/tab2.ibd to /data/bak/hotbak/2020-08-13_15-02-58/lzldb/tab2.ibd
200813 15:02:59 [01]        ...done
200813 15:02:59 [01] Copying ./lzldb/tab1.ibd to /data/bak/hotbak/2020-08-13_15-02-58/lzldb/tab1.ibd
200813 15:02:59 [01]        ...done
200813 15:02:59 [01] Copying ./sys/sys_config.ibd to /data/bak/hotbak/2020-08-13_15-02-58/sys/sys_config.ibd
...
200813 15:02:59 [01] Copying ./mysql/engine_cost.ibd to /data/bak/hotbak/2020-08-13_15-02-58/mysql/engine_cost.ibd
200813 15:02:59 [01]        ...done
200813 15:02:59 [01] Copying ./mysql/servers.ibd to /data/bak/hotbak/2020-08-13_15-02-58/mysql/servers.ibd
200813 15:02:59 [01]        ...done
200813 15:02:59 >> log scanned up to (2687009)
200813 15:03:00 Executing FLUSH NO_WRITE_TO_BINLOG TABLES...
200813 15:03:00 Executing FLUSH TABLES WITH READ LOCK...   --备份完ibd文件后锁表
200813 15:03:00 Starting to backup non-InnoDB tables and files
200813 15:03:00 [01] Copying ./lzldb/tab3.MYI to /data/bak/hotbak/2020-08-13_15-02-58/lzldb/tab3.MYI
200813 15:03:00 [01]        ...done
200813 15:03:00 [01] Copying ./lzldb/tab2.frm to /data/bak/hotbak/2020-08-13_15-02-58/lzldb/tab2.frm
...
200813 15:03:02 [01] Copying ./mysql/help_relation.frm to /data/bak/hotbak/2020-08-13_15-02-58/mysql/help_relation.frm
200813 15:03:02 [01]        ...done
200813 15:03:02 [01] Copying ./mysql/event.MYD to /data/bak/hotbak/2020-08-13_15-02-58/mysql/event.MYD
200813 15:03:02 [01]        ...done
200813 15:03:02 Finished backing up non-InnoDB tables and files
200813 15:03:02 [00] Writing /data/bak/hotbak/2020-08-13_15-02-58/xtrabackup_binlog_info
200813 15:03:02 [00]        ...done
200813 15:03:02 Executing FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS...
xtrabackup: The latest check point (for incremental): '2687000'
xtrabackup: Stopping log copying thread.
.200813 15:03:02 >> log scanned up to (2687009)

200813 15:03:02 Executing UNLOCK TABLES
200813 15:03:02 All tables unlocked
200813 15:03:02 [00] Copying ib_buffer_pool to /data/bak/hotbak/2020-08-13_15-02-58/ib_buffer_pool
200813 15:03:02 [00]        ...done
200813 15:03:02 Backup created in directory '/data/bak/hotbak/2020-08-13_15-02-58/'
MySQL binlog position: filename 'master-bin.000009', position '194', GTID of the last change 'a9521767-c5a0-11ea-a743-08002792ac2c:1-6'   --备份binlog
200813 15:03:02 [00] Writing /data/bak/hotbak/2020-08-13_15-02-58/backup-my.cnf
200813 15:03:02 [00]        ...done
200813 15:03:02 [00] Writing /data/bak/hotbak/2020-08-13_15-02-58/xtrabackup_info
200813 15:03:02 [00]        ...done
xtrabackup: Transaction log of lsn (2687000) to (2687009) was copied.   --根据lsn号备份事务,应该是物理redo
200813 15:03:03 completed OK!

innobackupex做了什么

 1 首先做的是根据lsn号scan up log ,在备份过程中不断的记录log lsn的位置,在所有备份完成后根据记录在备份过程中的所有lsn号拷贝其中的事务。
 2 备份完所有对象后将需要备份的binlog信息放在xtrabackup_binlog_info,根据info备份所需要的binlog
 3 数据库先备份innodb的数据文件 .ibd,在备份ibd文件的时候不会锁表,也就是热备份

 4 在备份innodb的元数据.frm 和mySIAM表的数据(MYD)、索引(MYI)、元数据(frm) (注意在备份innodb元数据的时候还是要锁表)

猜你喜欢

转载自blog.csdn.net/qq_40687433/article/details/107989615
今日推荐