Steps to reproduce (on HDD):
docker run --name=p57 -it -e MYSQL_ALLOW_EMPTY_PASSWORD=1 percona:latest --innodb_buffer_pool_size=2G --innodb_log_file_size=2G
while true ; do sysbench --test=/usr/share/sysbench/oltp_insert.lua --mysql-host=localhost --threads=3 --time=600 run ; done
Open another terminal and wait until total database size will be 10GB.
Without stopping insert load, run backup:
xtrabackup --backup
Run prepare:
xtrabackup --prepare --use-memory=4G
xtrabackup version 2.4.9 based on MySQL server 5.7.13 Linux (x86_64) (revision id: a467167cdd4)
xtrabackup: cd to /xtrabackup_backupfiles/
xtrabackup: This target seems to be not prepared yet.
InnoDB: Number of pools: 1
xtrabackup: xtrabackup_logfile detected: size=1443102720, start_lsn=(8805379375)
xtrabackup: using the following InnoDB configuration for recovery:
xtrabackup: innodb_data_home_dir = .
xtrabackup: innodb_data_file_path = ibdata1:10M:autoextend
xtrabackup: innodb_log_group_home_dir = .
xtrabackup: innodb_log_files_in_group = 1
xtrabackup: innodb_log_file_size = 1443102720
xtrabackup: using the following InnoDB configuration for recovery:
xtrabackup: innodb_data_home_dir = .
xtrabackup: innodb_data_file_path = ibdata1:10M:autoextend
xtrabackup: innodb_log_group_home_dir = .
xtrabackup: innodb_log_files_in_group = 1
xtrabackup: innodb_log_file_size = 1443102720
xtrabackup: Starting InnoDB instance for recovery.
xtrabackup: Using 4294967296 bytes for buffer pool (set by --use-memory parameter)
InnoDB: PUNCH HOLE support available
InnoDB: Mutexes and rw_locks use GCC atomic builtins
InnoDB: Uses event mutexes
InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
InnoDB: Compressed tables use zlib 1.2.8
InnoDB: Number of pools: 1
InnoDB: Using CPU crc32 instructions
InnoDB: Initializing buffer pool, total size = 4G, instances = 1, chunk size = 128M
.....
InnoDB: Doing recovery: scanned up to log sequence number 10088119076 (99%)
InnoDB: Database was not shutdown normally!
InnoDB: Starting crash recovery.
InnoDB: 2 transaction(s) which must be rolled back or cleaned up in total 2 row operations to undo
InnoDB: Trx id counter is 16438528
InnoDB: Starting an apply batch of log records to the database...
InnoDB: Progress in percent: 0 InnoDB: Waited for 10 seconds for 128 pending reads
InnoDB: Waited for 20 seconds for 128 pending reads
....
InnoDB: Waited for 370 seconds for 128 pending reads
At this point there is no IO from xtrabackup at all, according to pidstat -d 1
Steps to reproduce (on HDD): EMPTY_PASSWORD= 1 percona:latest --innodb_ buffer_ pool_size= 2G --innodb_ log_file_ size=2G
docker run --name=p57 -it -e MYSQL_ALLOW_
Inside docker exec -it p57 bash shell: xtrabackup- 24 sysbench
apt-get install -y percona-
while true ; do sysbench --test= /usr/share/ sysbench/ oltp_insert. lua --mysql- host=localhost --threads=3 --time=600 run ; done
Open another terminal and wait until total database size will be 10GB.
Without stopping insert load, run backup:
xtrabackup --backup
Run prepare: backupfiles/ (8805379375) data_home_ dir = . data_file_ path = ibdata1: 10M:autoextend log_group_ home_dir = . log_files_ in_group = 1 log_file_ size = 1443102720 data_home_ dir = . data_file_ path = ibdata1: 10M:autoextend log_group_ home_dir = . log_files_ in_group = 1 log_file_ size = 1443102720 thread_ fence() is used for memory barrier
xtrabackup --prepare --use-memory=4G
xtrabackup version 2.4.9 based on MySQL server 5.7.13 Linux (x86_64) (revision id: a467167cdd4)
xtrabackup: cd to /xtrabackup_
xtrabackup: This target seems to be not prepared yet.
InnoDB: Number of pools: 1
xtrabackup: xtrabackup_logfile detected: size=1443102720, start_lsn=
xtrabackup: using the following InnoDB configuration for recovery:
xtrabackup: innodb_
xtrabackup: innodb_
xtrabackup: innodb_
xtrabackup: innodb_
xtrabackup: innodb_
xtrabackup: using the following InnoDB configuration for recovery:
xtrabackup: innodb_
xtrabackup: innodb_
xtrabackup: innodb_
xtrabackup: innodb_
xtrabackup: innodb_
xtrabackup: Starting InnoDB instance for recovery.
xtrabackup: Using 4294967296 bytes for buffer pool (set by --use-memory parameter)
InnoDB: PUNCH HOLE support available
InnoDB: Mutexes and rw_locks use GCC atomic builtins
InnoDB: Uses event mutexes
InnoDB: GCC builtin __atomic_
InnoDB: Compressed tables use zlib 1.2.8
InnoDB: Number of pools: 1
InnoDB: Using CPU crc32 instructions
InnoDB: Initializing buffer pool, total size = 4G, instances = 1, chunk size = 128M
.....
InnoDB: Doing recovery: scanned up to log sequence number 10088119076 (99%)
InnoDB: Database was not shutdown normally!
InnoDB: Starting crash recovery.
InnoDB: 2 transaction(s) which must be rolled back or cleaned up in total 2 row operations to undo
InnoDB: Trx id counter is 16438528
InnoDB: Starting an apply batch of log records to the database...
InnoDB: Progress in percent: 0 InnoDB: Waited for 10 seconds for 128 pending reads
InnoDB: Waited for 20 seconds for 128 pending reads
....
InnoDB: Waited for 370 seconds for 128 pending reads
At this point there is no IO from xtrabackup at all, according to pidstat -d 1