I have tried Percona Xtrabackup for the first time today and certainly appreciate the work you guys have done with your various offerings.
Our replication topology:
Master1 <-----> Master2
We have virtual IPs defined and use ldirector/heartbeat to pass the connections over to specific servers. For example all writes happen on Master1 and reads happen on Master2 while also acting as ‘hot backup’ for Master1 in case it fails. Same DBs/tables are never written to on both masters at the same time, so this configuration works without replication issues.
Now to the question, we replicate around 30-40 databases which are specified in the my.cnf file using binlog-do-db and replicate-do-db. ‘mysql’ database including performance_schema, information_schema are not replicated.
Now, I would like to clone ‘Slave1’ to replace Master2 when replication breaks between Master1 and Master2. As long as Master1 is present, data on it is always the most up to date.
I have followed the Slave Cloning procedure from the docs and successfully created a full backup by passing the list of replicated databases only as an argument to innobackupex. I understand i now have to copy the whole directory over to Master2 (when replication is broken on it), stop mysqld, make a copy of datadir, innodb-log-dir, and copy the backup directory over.
The actual question, since i did not backup mysql and other system databases, can i just copy over the ‘replicated databases’ directories from the backed up directory, ibdata files to existing datadir and ib_logfiles to existing innodb-log-dir on Master2 and leave the existing non replicated databases (mysql and others) as they are in the existing datadir? Will that work?