[MDEV-15780] Mariabackup fails on --prepare stage when innodb_data_file_path contains a path Created: 2018-04-04 Updated: 2020-08-25 Resolved: 2018-04-12 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Backup |
| Affects Version/s: | 10.1, 10.2, 10.3 |
| Fix Version/s: | 10.1.33, 10.2.15 |
| Type: | Bug | Priority: | Major |
| Reporter: | Chris Calender (Inactive) | Assignee: | Vladislav Vaintroub |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
If you set innodb_data_file_path to include a path, then the --prepare step fails when using mariabackup. For instance, suppose you have the following 2 items set:
Now, if you run mariabackup with --backup, it will run fine. However, when you attempt mariabackup with --prepare, it fails with:
If you just have innodb_data_file_path set to:
Then it works as expected. Alternatively, if you edit the backup-my.cnf file that is generated in the --target-dir and remove the path from innodb_data_file_path, then it also works as expected. This extra step is not needed in Xtrabackup. |
| Comments |
| Comment by Vladislav Vaintroub [ 2018-04-11 ] | |||||||||||||||||||||||||||||||||||||||||
|
ccalender, with absolute paths in innodb_data_file_path, I cannot get mysqld to start. this is what it tells me,on Linux
Windows is similar. To get a backup , one would first need a server started with such parameter, and that does not quite work. I'm not sure how it is supposed to work. Any idea? | |||||||||||||||||||||||||||||||||||||||||
| Comment by Chris Calender (Inactive) [ 2018-04-11 ] | |||||||||||||||||||||||||||||||||||||||||
|
Hi wlad, There is a way to get this to work on Linux. I initially tried with Windows, since that is what I had most handy, and encountered the same issue as you above. However, when I switched to Linux (Ubuntu, specifically), I was able to get mysqld started and then run mariabackup (as you can see from the results). This is also what the other reporter did (and why they informed me about the bug). To keep things simple, I first started mysqld with the following:
Once that worked, I then modified innodb_data_file_path to:
I did not have any other path settings in effect, such as innodb_data_home_dir and innodb_log_group_home_dir. I did some more testing last night, and will be filing a separate bug today about how mysqld will not even start on Windows if you give it a full path starting with "C:..". Perhaps the two are involved, but again, both the reporter and I were able to get mysqld started with these values on Linux, and thus able to produce the mariabackup bug I reported here. | |||||||||||||||||||||||||||||||||||||||||
| Comment by Vladislav Vaintroub [ 2018-04-11 ] | |||||||||||||||||||||||||||||||||||||||||
|
my attempt was from Linux (.//home/wlad/ibdata1 shows it), ubuntu specifically, after I failed to get it working from Windows prior to that. I set datadir = to my $HOME (which is /home/wlad), | |||||||||||||||||||||||||||||||||||||||||
| Comment by Vladislav Vaintroub [ 2018-04-11 ] | |||||||||||||||||||||||||||||||||||||||||
|
Does not quite work. if I do sql/mysqld --no-defaults --lc-messages-dir=/home/mariadb/wlad/1 0.2/xxx/sql/share --datadir=$HOME --innodb-data-file-path=$HOME/ibdata1:10M:auto extend --skip-grant-tables I get
| |||||||||||||||||||||||||||||||||||||||||
| Comment by Vladislav Vaintroub [ 2018-04-11 ] | |||||||||||||||||||||||||||||||||||||||||
|
Ok, got it empty innodb-data-home-dir is necessary as well. |