Bug #57375 Incremental apply-log fails if InnoDB log directory is not InnoDB datadir
Submitted: 11 Oct 2010 15:03 Modified: 12 Oct 2011 18:39
Reporter: Pekka Lampio Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Enterprise Backup Severity:S2 (Serious)
Version:all OS:Any
Assigned to: Thava Alagu CPU Architecture:Any

[11 Oct 2010 15:03] Pekka Lampio
Description:
Incremental apply-log fails with ibbackup if InnoDB data home directory (option variable "innodb_data_home_dir" is not the same as InnoDB log directory (option variable "innodb_log_group_home_dir". The failing ibbackup run ends as follows:

...
Contents of incr_backup/datadir/backup_my.cnf:
innodb_data_home_dir got value /home/pekka/script/incr_backup/datadir
innodb_data_file_path got value ibdata1:10M;ibdata2:20M;ibdata3:50M:autoextend
datadir got value /home/pekka/script/incr_backup/datadir
innodb_log_group_home_dir got value /home/pekka/script/incr_backup/logdir
innodb_log_files_in_group got value 3
innodb_log_file_size got value 10485760

Contents of full_backup/datadir/backup_my.cnf:
innodb_data_home_dir got value /home/pekka/script/full_backup/datadir
innodb_data_file_path got value ibdata1:10M;ibdata2:20M;ibdata3:50M:autoextend
datadir got value /home/pekka/script/full_backup/datadir
innodb_log_group_home_dir got value /home/pekka/script/full_backup/logdir
innodb_log_files_in_group got value 3
innodb_log_file_size got value 10485760

ibbackup: Error: cannot open /home/pekka/script/incr_backup/datadir/ibbackup_logfile.
ibbackup: Run 'ibbackup --help' for help.

How to repeat:
Do incremental apply-log with "innodb_data_home_dir" and "innodb_log_group_home_dir" pointing to different directories for the full backup or the incremental backup.

Suggested fix:
=== modified file 'meb-ibbackup/back/back0back.c'

The function back_prepare_full_backup_for_apply() builds incorrect paths to incremental and full "ibbackup_logfile" files. This could be fixed as follows:

--- meb-ibbackup/back/back0back.c	2010-10-01 06:25:50 +0000
+++ meb-ibbackup/back/back0back.c	2010-10-11 14:46:15 +0000
@@ -5850,9 +5850,9 @@
 	ulint i;
 
 	/* form full pathnames to the datafiles */
-	incr_logfile_path = back_path_append(back_innodb_data_home_dir,
+	incr_logfile_path = back_path_append(back_log_dir,
 					     "ibbackup_logfile");
-	full_logfile_path = back_path_append(back_back_innodb_data_home_dir,
+	full_logfile_path = back_path_append(back_back_log_dir,
 					     "ibbackup_logfile");
 
 	/* copy "ibbackup_logfile" in incremental backup directory
[12 Oct 2011 18:39] Sveta Smirnova
Fixed in version 3.5.2