SST fails with innodb_data_home_dir/innodb_log_home_dir
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
MySQL patches by Codership | Status tracked in 5.6 | |||||
5.5 |
Fix Released
|
Medium
|
Alex Yurchenko | |||
5.6 |
Fix Released
|
Medium
|
Alex Yurchenko | |||
Percona XtraDB Cluster moved to https://jira.percona.com/projects/PXC | Status tracked in 5.6 | |||||
5.5 |
Fix Released
|
Undecided
|
Raghavendra D Prabhu | |||
5.6 |
Fix Released
|
Undecided
|
Raghavendra D Prabhu | |||
percona-xtrabackup (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
This bug is similar to lp:1019288 but it shows a different error message.
================
130111 19:11:05 InnoDB: Completed initialization of buffer pool
InnoDB: The first specified data file /mnt/test/ibdata1 did not exist:
InnoDB: a new database to be created!
130111 19:11:05 InnoDB: Setting file /mnt/test/ibdata1 size to 100 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Progress in MB: 100
130111 19:11:05 InnoDB: Error: all log files must be created at the same time.
130111 19:11:05 InnoDB: All log files must be created also in database creation.
130111 19:11:05 InnoDB: If you want bigger or smaller log files, shut down the
130111 19:11:05 InnoDB: database and make sure there were no errors in shutdown.
130111 19:11:05 InnoDB: Then delete the existing log files. Edit the .cnf file
130111 19:11:05 InnoDB: and start the database again.
130111 19:11:05 [ERROR] Plugin 'InnoDB' init function returned error.
130111 19:11:05 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
130111 19:11:05 [ERROR] Unknown/unsupported storage engine: InnoDB
130111 19:11:05 [ERROR] Aborting
=======
This happens because SST will try to copy the ibdata1 file
to the datadir and InnoDB of the
receiver will also create a ibdata1 in innodb_
this clashes.
Workaround: Not to have a separate innodb_
Fix: To make sure SST is aware of innodb_
To reproduce, have something like:
datadir=
innodb_
innodb_
in my.cnf along with others.
Where it fails:
for (i = 0; i < srv_n_log_files; i++) {
err = open_or_
if (err != DB_SUCCESS) {
return((int) err);
}
if (log_file_created) {
log_created = TRUE;
} else {
log_opened = TRUE;
}
if ((log_opened && create_new_db)
|| (log_opened && log_created)) {
ut_print_
fprintf(stderr,
" InnoDB: Error: all log files must be"
" created at the same time.\n");
ut_print_
fprintf(stderr,
" InnoDB: All log files must be"
" created also in database creation.\n");
ut_print_
fprintf(stderr,
" InnoDB: If you want bigger or smaller"
" log files, shut down the\n");
ut_print_
fprintf(stderr,
" InnoDB: database and make sure there"
" were no errors in shutdown.\n");
ut_print_
fprintf(stderr,
" InnoDB: Then delete the existing log files."
" Edit the .cnf file\n");
ut_print_
fprintf(stderr,
" InnoDB: and start the database again.\n");
return(
}
}
in srv0start.c
Changed in percona-xtradb-cluster: | |
status: | New → Confirmed |
Changed in percona-xtradb-cluster: | |
milestone: | 5.5.30-24.8 → 5.5.31-25 |
Changed in percona-xtradb-cluster: | |
milestone: | 5.5.32-24 → 5.5.32 |
summary: |
- SST fails with innodb_data_home_dir + SST fails with innodb_data_home_dir/innodb_log_home_dir |
tags: | added: doc-req |
tags: | added: sst xtrabackup |
innobackupex --copy- back/-- move-back checks innodb_ data_home_ dir, data_file_ path and innodb_ log_group_ home_dir correctly.
innodb_
So, it is better to use it.
wsrep_sst_ xtrabackup can be modified to use a temporary directory and then use innobackupex --move-back to handle correctly.