No downtime Xtrabackup creating slave nodes
Master: 10.1.1.17: 3306
Slave: 10.1.1.18: 3307
Complete the Basic Environment configuration of the slave node: Create mysql users, install mysql software of the same version, xtrabackup software package, create directories, and configure scripts.
1. Create a full backup: master
[Mysql @ master1 backup] $ innobackupex -- defaults-file =/data/mysqldata/3306/my. cnf -- user = xtrabk -- password = 'onlybackup '/backup/backup_full/
2. Copy and prepare backup Sets
[Mysql @ master1 backup_full] $ scp-r/backup/backup_full/2015-05-21_01-31-19/* 10.1.1.18:/data/mysqldata/3307
[Mysql @ master2 3307] $ innobackupex -- apply-log/data/mysqldata/3307/data/
InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003,200 9 Innobase Oy
And Percona Ireland Ltd 2009-2012. All Rights Reserved.
This software is published under
The gnu general public license Version 2, June 1991.
IMPORTANT: Please check that the apply-log run completes successfully.
At the end of a successful apply-log run innobackupex
Prints "completed OK! ".
150521 01:51:29 innobackupex: Starting ibbackup with command: xtrabackup_56 -- defaults-file = "/data/mysqldata/3307/data/backup-my.cnf" -- defaults-group = "mysqld" -- prepare -- target-dir =/data/mysqldata/3307/ data -- tmpdir =/tmp
Xtrabackup_56 version 2.0.7 for MySQL server 5.6.10 Linux (x86_64) (revision id: 552)
Xtrabackup: cd to/data/mysqldata/3307/data
Xtrabackup: This target seems to be not prepared yet.
Xtrabackup: xtrabackup_logfile detected: size = 2097152, start_lsn = (1645755)
Xtrabackup: Temporary instance for recovery is set as followings.
Xtrabackup: innodb_data_home_dir = ./
Xtrabackup: innodb_data_file_path = ibdata1: 2048 M: autoextend
Xtrabackup: innodb_log_group_home_dir = ./
Xtrabackup: innodb_log_files_in_group = 1
Xtrabackup: innodb_log_file_size = 2097152
Xtrabackup: Temporary instance for recovery is set as followings.
Xtrabackup: innodb_data_home_dir = ./
Xtrabackup: innodb_data_file_path = ibdata1: 2048 M: autoextend
Xtrabackup: innodb_log_group_home_dir = ./
Xtrabackup: innodb_log_files_in_group = 1
Xtrabackup: innodb_log_file_size = 2097152
Xtrabackup: Starting InnoDB instance for recovery.
Xtrabackup: Using 104857600 bytes for buffer pool (set by -- use-memory parameter)
InnoDB: The InnoDB memory heap is disabled
InnoDB: Mutexes and rw_locks use GCC atomic builtins
InnoDB: Compressed tables use zlib 1.2.3
InnoDB: CPU supports crc32 instructions
InnoDB: Initializing buffer pool, size = 100.0 M
InnoDB: Completed initialization of buffer pool
InnoDB: Highest supported file format is Barracuda.
InnoDB: The log sequence numbers 1639650 and 1639650 in ibdata files do not match the log sequence number 1645755 in the ib_logfiles!
InnoDB: Database was not shutdown normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the. ibd files...
InnoDB: Restoring possible half-written data pages
InnoDB: from the doublewrite buffer...
InnoDB: Last MySQL binlog file position 0 812, file name mysql-bin.000011
InnoDB: 128 rollback segment (s) are active.
InnoDB: Waiting for purge to start
2015-05-21 01:51:31 4a924940 InnoDB: Warning: table 'mysql/innodb_index_stats'
InnoDB: in InnoDB data dictionary has unknown flags 50.
2015-05-21 01:51:31 4a924940 InnoDB: Warning: table 'mysql/innodb_table_stats'
InnoDB: in InnoDB data dictionary has unknown flags 50.
InnoDB: 1.2.10 started; log sequence number 1645755
[Notice (again)]
If you use binary log and don't use any hack of group commit,
The binary log position seems to be:
InnoDB: Last MySQL binlog file position 0 812, file name mysql-bin.000011
Xtrabackup: starting shutdown with innodb_fast_shutdown = 1
InnoDB: FTS optimize thread exiting.
InnoDB: Starting shutdown...
InnoDB: Shutdown completed; log sequence number 1645779
150521 01:51:33 innobackupex: Restarting xtrabackup with command: xtrabackup_56 -- defaults-file = "/data/mysqldata/3307/data/backup-my.cnf" -- defaults-group = "mysqld" -- prepare -- target-dir =/data/mysqldata/3307/ data -- tmpdir =/tmp
For creating ib_logfile *
Xtrabackup_56 version 2.0.7 for MySQL server 5.6.10 Linux (x86_64) (revision id: 552)
Xtrabackup: cd to/data/mysqldata/3307/data
Xtrabackup: This target seems to be already prepared.
Xtrabackup: notice: xtrabackup_logfile was already used to '-- prepare '.
Xtrabackup: Temporary instance for recovery is set as followings.
Xtrabackup: innodb_data_home_dir = ./
Xtrabackup: innodb_data_file_path = ibdata1: 2048 M: autoextend
Xtrabackup: innodb_log_group_home_dir = ./
Xtrabackup: innodb_log_files_in_group = 3
Xtrabackup: innodb_log_file_size = 268435456
Xtrabackup: Temporary instance for recovery is set as followings.
Xtrabackup: innodb_data_home_dir = ./
Xtrabackup: innodb_data_file_path = ibdata1: 2048 M: autoextend
Xtrabackup: innodb_log_group_home_dir = ./
Xtrabackup: innodb_log_files_in_group = 3
Xtrabackup: innodb_log_file_size = 268435456
Xtrabackup: Starting InnoDB instance for recovery.
Xtrabackup: Using 104857600 bytes for buffer pool (set by -- use-memory parameter)
InnoDB: The InnoDB memory heap is disabled
InnoDB: Mutexes and rw_locks use GCC atomic builtins
InnoDB: Compressed tables use zlib 1.2.3
InnoDB: CPU supports crc32 instructions
InnoDB: Initializing buffer pool, size = 100.0 M
InnoDB: Completed initialization of buffer pool
InnoDB: Setting log file./ib_logfile101 size to 256 MB
InnoDB: Progress in MB: 100 200
InnoDB: Setting log file./ib_logfile1 size to 256 MB
InnoDB: Progress in MB: 100 200
InnoDB: Setting log file./ib_logfile2 size to 256 MB
InnoDB: Progress in MB: 100 200
InnoDB: Renaming log file./ib_logfile101 to./ib_logfile0
InnoDB: New log files created, LSN = 1645779
InnoDB: Highest supported file format is Barracuda.
InnoDB: 128 rollback segment (s) are active.
InnoDB: Waiting for purge to start
2015-05-21 01:52:00 4a5b4940 InnoDB: Warning: table 'mysql/innodb_index_stats'
InnoDB: in InnoDB data dictionary has unknown flags 50.
2015-05-21 01:52:00 4a5b4940 InnoDB: Warning: table 'mysql/innodb_table_stats'
InnoDB: in InnoDB data dictionary has unknown flags 50.
InnoDB: 1.2.10 started; log sequence number 1646092
[Notice (again)]
If you use binary log and don't use any hack of group commit,
The binary log position seems to be:
InnoDB: Last MySQL binlog file position 0 812, file name mysql-bin.000011
Xtrabackup: starting shutdown with innodb_fast_shutdown = 1
InnoDB: FTS optimize thread exiting.
InnoDB: Starting shutdown...
InnoDB: Shutdown completed; log sequence number 1646102
150521 01:52:01 innobackupex: completed OK!
[Mysql @ master2 3307] $ ls data/
Backup-my.cnf ib_logfile2 performance_schema xtrabackup_binlog_info xtrabackup_logfile
Ib_logfile0 ibdata1 test xtrabackup_binlog_pos_innodb
Ib_logfile1 mysql xtrabackup_binary xtrabackup_checkpoints
[Mysql @ master2 3307] $ ls data/test/
J1.frm j1.ibd j2.MYD j2.MYI j2.frm t1.frm t1.ibd
3. Create a dedicated account for the replication Environment
Master:
(System @ localhost) [(none)]> grant replication slave on *. * to 'repl' @ '10. 1.1.% 'identified by 'replsafe ';
Query OK, 0 rows affected (0.09 sec)
(System @ localhost) [(none)]> select user, host from mysql. user;
+ -------- + ----------- +
| User | host |
+ -------- + ----------- +
| Dcw | % |
| Repl | 10.1.1.% |
| Test | 10.1.1.% |
| System | localhost |
| Xtrabk | localhost |
+ -------- + ----------- +
4. Configure the slave node initialization parameter file
[Mysql @ master1 3306] $ scp my. cnf 10.1.1.18:/data/mysqldata/3307
[Mysql @ master2 ~] $ Vim/data/mysqldata/3307/my. cnf
Server-id = 2
[Mysql @ master2 ~] $ Sed-I's/3306/3307/3307/G'/data/mysqldata/my. cnf
[Mysql @ master2 ~] $ Mysqld_safe -- defaults-file =/data/mysqldata/3307/my. cnf &
The slave node creates fewer tmp and binlog folders.
[Mysql @ master2 3307] $ mkdir tmp
[Mysql @ master2 3307] $ mkdir binlog
[Mysql @ master2 3307] $ ls
Binlog data lost + found my. cnf mysql-error.log tmp
Start Database
[Mysql @ master2 3307] $ mysqld_safe -- defaults-file =/data/mysqldata/3307/my. cnf &
5. Configure the server Load balancer node replication Environment
View the backup set information:
[Mysql @ master2 3307] $ cat data/xtrabackup_binlog_info
Mysql-bin.000011 812
[Mysql @ master2 3307] $ mysql-usystem-p '5ienet. com'-S/data/mysqldata/3307/mysql. sock
(System @ localhost) [(none)]> change master to master_host = '10. 1.1.17 ', master_port = 3306, master_user = 'repl', master_password = 'replsafe', master_log_file = 'mysql-bin.000011 ', master_log_pos = 812;
Query OK, 0 rows affected, 2 warnings (0.09 sec)
(System @ localhost) [(none)]> start slave;
Query OK, 0 rows affected (0.14 sec)
6. Check
(System @ localhost) [(none)]> start slave;
Query OK, 0 rows affected (0.14 sec)
(System @ localhost) [(none)]> show slave status \ G
* *************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.1.1.17
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000011
Read_Master_Log_Pos: 1024
Relay_Log_File: mysql-relay-bin.000002
Relay_Log_Pos: 495
Relay_Master_Log_File: mysql-bin.000011
Slave_IO_Running: Yes
Slave_ SQL _Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 1024
Relay_Log_Space: 668
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_ SQL _Errno: 0
Last_ SQL _Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID: bd8ce1ca-edb7-11e4-964f-000c291b94c4
Master_Info_File:/data/mysqldata/3307/data/master.info
SQL _Delay: 0
SQL _Remaining_Delay: NULL
Slave_ SQL _Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_ SQL _Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.03 sec)
Master:
(System @ localhost) [(none)]> use test;
Database changed
(System @ localhost) [test]> show tables;
+ ---------------- +
| Tables_in_test |
+ ---------------- +
| J1 |
| J2 |
| T1 |
+ ---------------- +
3 rows in set (0.00 sec)
(System @ localhost) [test]> select * from t1;
+ ------ +
| Name |
+ ------ +
| Dcw |
| Jjf |
+ ------ +
2 rows in set (0.11 sec)
Slave:
(System @ localhost) [(none)]> use test;
Database changed
(System @ localhost) [test]> show tables;
+ ---------------- +
| Tables_in_test |
+ ---------------- +
| J1 |
| J2 |
| T1 |
+ ---------------- +
3 rows in set (0.03 sec)
(System @ localhost) [test]> select * from t1;
+ ------ +
| Name |
+ ------ +
| Dcw |
| Jjf |
+ ------ +
2 rows in set (0.05 sec)
Insert data to the master:
(System @ localhost) [test]> insert into t1 values ('jone ');
Query OK, 1 row affected (0.05 sec)
Query in slave: synced
(System @ localhost) [test]> select * from t1;
+ ------ +
| Name |
+ ------ +
| Dcw |
| Jjf |
| Jone |
+ ------ +
3 rows in set (0.00 sec)
MySQL management-using XtraBackup for Hot Backup
MySQL open-source backup tool Xtrabackup backup deployment
MySQL Xtrabackup backup and recovery
Use XtraBackup to implement MySQL master-slave replication and quick deployment [master-slave table lock-free]
Install and use Xtrabackup from Percona to back up MySQL
XtraBackup details: click here
XtraBackup: click here
This article permanently updates the link address: