Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
5197519f
Commit
5197519f
authored
Jun 28, 2022
by
Sergei Golubchik
Committed by
Julius Goryavsky
Aug 01, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
revert mariabackup part of MDEV-27524, fix the test
parent
6a3fbfdb
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
90 additions
and
354 deletions
+90
-354
extra/mariabackup/backup_copy.cc
extra/mariabackup/backup_copy.cc
+30
-54
extra/mariabackup/backup_copy.h
extra/mariabackup/backup_copy.h
+0
-7
extra/mariabackup/backup_mysql.cc
extra/mariabackup/backup_mysql.cc
+52
-196
extra/mariabackup/backup_mysql.h
extra/mariabackup/backup_mysql.h
+5
-1
extra/mariabackup/common.h
extra/mariabackup/common.h
+0
-10
extra/mariabackup/xtrabackup.cc
extra/mariabackup/xtrabackup.cc
+2
-60
extra/mariabackup/xtrabackup.h
extra/mariabackup/xtrabackup.h
+0
-2
mysql-test/suite/galera/r/galera_log_bin_ext_mariabackup.result
...test/suite/galera/r/galera_log_bin_ext_mariabackup.result
+1
-22
mysql-test/suite/galera/t/galera_log_bin.inc
mysql-test/suite/galera/t/galera_log_bin.inc
+0
-1
mysql-test/suite/galera/t/galera_log_bin_sst.inc
mysql-test/suite/galera/t/galera_log_bin_sst.inc
+0
-1
No files found.
extra/mariabackup/backup_copy.cc
View file @
5197519f
...
...
@@ -581,6 +581,7 @@ datafile_read(datafile_cur_t *cursor)
Check to see if a file exists.
Takes name of the file to check.
@return true if file exists. */
static
bool
file_exists
(
const
char
*
filename
)
{
...
...
@@ -1543,14 +1544,13 @@ bool backup_start(CorruptedPages &corrupted_pages)
if
(
!
write_galera_info
(
mysql_connection
))
{
return
(
false
);
}
write_current_binlog_file
(
mysql_connection
);
}
bool
with_binlogs
=
opt_binlog_info
==
BINLOG_INFO_ON
;
if
(
opt_binlog_info
==
BINLOG_INFO_ON
)
{
if
(
with_binlogs
||
opt_galera_info
)
{
if
(
!
write_current_binlog_file
(
mysql_connection
,
with_binlogs
))
{
return
(
false
);
}
lock_binlog_maybe
(
mysql_connection
);
write_binlog_info
(
mysql_connection
);
}
if
(
have_flush_engine_logs
&&
!
opt_no_lock
)
{
...
...
@@ -1584,34 +1584,15 @@ void backup_release()
}
}
static
const
char
*
default_buffer_pool_file
=
"ib_buffer_pool"
;
static
const
char
*
get_buffer_pool_filename
(
size_t
*
length
)
{
/* If mariabackup is run for Galera, then the file
name is changed to the default so that the receiving
node can find this file and rename it according to its
settings, otherwise we keep the original file name: */
size_t
dir_length
=
0
;
const
char
*
dst_name
=
default_buffer_pool_file
;
if
(
!
opt_galera_info
)
{
dir_length
=
dirname_length
(
buffer_pool_filename
);
dst_name
=
buffer_pool_filename
+
dir_length
;
}
if
(
length
)
{
*
length
=
dir_length
;
}
return
dst_name
;
}
/** Finish after backup_start() and backup_release() */
bool
backup_finish
()
{
/* Copy buffer pool dump or LRU dump */
if
(
!
opt_rsync
)
{
if
(
buffer_pool_filename
&&
file_exists
(
buffer_pool_filename
))
{
const
char
*
dst_name
=
get_buffer_pool_filename
(
NULL
);
const
char
*
dst_name
;
dst_name
=
trim_dotslash
(
buffer_pool_filename
);
copy_file
(
ds_data
,
buffer_pool_filename
,
dst_name
,
0
);
}
if
(
file_exists
(
"ib_lru_dump"
))
{
...
...
@@ -1700,14 +1681,17 @@ ibx_copy_incremental_over_full()
/* copy buffer pool dump */
if
(
innobase_buffer_pool_filename
)
{
const
char
*
src_name
=
get_buffer_pool_filename
(
NULL
);
const
char
*
src_name
;
src_name
=
trim_dotslash
(
innobase_buffer_pool_filename
);
snprintf
(
path
,
sizeof
(
path
),
"%s/%s"
,
xtrabackup_incremental_dir
,
src_name
);
if
(
file_exists
(
path
))
{
copy_file
(
ds_data
,
path
,
src_name
,
0
);
copy_file
(
ds_data
,
path
,
innobase_buffer_pool_filename
,
0
);
}
}
...
...
@@ -1942,14 +1926,6 @@ copy_back()
datadir_node_init
(
&
node
);
/* If mariabackup is run for Galera, then the file
name is changed to the default so that the receiving
node can find this file and rename it according to its
settings, otherwise we keep the original file name: */
size_t
dir_length
;
const
char
*
src_buffer_pool
;
src_buffer_pool
=
get_buffer_pool_filename
(
&
dir_length
);
while
(
datadir_iter_next
(
it
,
&
node
))
{
const
char
*
ext_list
[]
=
{
"backup-my.cnf"
,
"xtrabackup_binary"
,
"xtrabackup_binlog_info"
,
...
...
@@ -2012,11 +1988,6 @@ copy_back()
continue
;
}
/* skip buffer pool dump */
if
(
!
strcmp
(
filename
,
src_buffer_pool
))
{
continue
;
}
/* skip innodb data files */
is_ibdata_file
=
false
;
for
(
Tablespace
::
const_iterator
iter
(
srv_sys_space
.
begin
()),
...
...
@@ -2039,18 +2010,23 @@ copy_back()
/* copy buffer pool dump */
if
(
file_exists
(
src_buffer_pool
))
{
char
dst_dir
[
FN_REFLEN
];
while
(
IS_TRAILING_SLASH
(
buffer_pool_filename
,
dir_length
))
{
dir_length
--
;
}
memcpy
(
dst_dir
,
buffer_pool_filename
,
dir_length
);
dst_dir
[
dir_length
]
=
0
;
if
(
!
(
ret
=
copy_or_move_file
(
src_buffer_pool
,
src_buffer_pool
,
dst_dir
,
1
)))
{
goto
cleanup
;
if
(
innobase_buffer_pool_filename
)
{
const
char
*
src_name
;
char
path
[
FN_REFLEN
];
src_name
=
trim_dotslash
(
innobase_buffer_pool_filename
);
snprintf
(
path
,
sizeof
(
path
),
"%s/%s"
,
mysql_data_home
,
src_name
);
/* could be already copied with other files
from data directory */
if
(
file_exists
(
src_name
)
&&
!
file_exists
(
innobase_buffer_pool_filename
))
{
copy_or_move_file
(
src_name
,
innobase_buffer_pool_filename
,
mysql_data_home
,
0
);
}
}
...
...
extra/mariabackup/backup_copy.h
View file @
5197519f
...
...
@@ -32,13 +32,6 @@ copy_file(ds_ctxt_t *datasink,
const
char
*
dst_file_path
,
uint
thread_n
);
/************************************************************************
Check to see if a file exists.
Takes name of the file to check.
@return true if file exists. */
bool
file_exists
(
const
char
*
filename
);
/** Start --backup */
bool
backup_start
(
CorruptedPages
&
corrupted_pages
);
/** Release resources after backup_start() */
...
...
extra/mariabackup/backup_mysql.cc
View file @
5197519f
...
...
@@ -84,6 +84,7 @@ os_event_t kill_query_thread_stop;
bool
sql_thread_started
=
false
;
char
*
mysql_slave_position
=
NULL
;
char
*
mysql_binlog_position
=
NULL
;
char
*
buffer_pool_filename
=
NULL
;
/* History on server */
time_t
history_start_time
;
...
...
@@ -1573,68 +1574,51 @@ write_galera_info(MYSQL *connection)
}
static
bool
write_binlog_info
(
MYSQL
*
connection
,
char
*
log_bin_dir
,
MYSQL_RES
*
mysql_result
,
my_ulonglong
n_rows
,
my_ulonglong
start
);
/*********************************************************************//**
Flush and copy the current binary log file into the backup,
if GTID is enabled */
bool
write_current_binlog_file
(
MYSQL
*
connection
,
bool
write_binlogs
)
write_current_binlog_file
(
MYSQL
*
connection
)
{
char
*
log_bin
=
NULL
;
char
*
filename
=
NULL
;
char
*
position
=
NULL
;
char
*
executed_gtid_set
=
NULL
;
char
*
gtid_binlog_state
=
NULL
;
char
*
log_bin_file
=
NULL
;
char
*
log_bin_dir
=
NULL
;
bool
gtid_exists
;
bool
result
=
true
;
char
filepath
[
FN_REFLEN
];
mysql_variable
log_bin_var
[]
=
{
{
"
@@GLOBAL.log_bin"
,
&
log_bin
},
mysql_variable
status
[]
=
{
{
"
Executed_Gtid_Set"
,
&
executed_gtid_set
},
{
NULL
,
NULL
}
};
mysql_variable
vars
[]
=
{
{
"gtid_binlog_state"
,
&
gtid_binlog_state
},
{
"log_bin_basename"
,
&
log_bin_dir
},
mysql_variable
status_after_flush
[]
=
{
{
"File"
,
&
log_bin_file
},
{
NULL
,
NULL
}
};
mysql_variable
status
[]
=
{
{
"File"
,
&
filename
},
{
"Position"
,
&
position
},
{
"Executed_Gtid_Set"
,
&
executed_gtid_set
},
mysql_variable
vars
[]
=
{
{
"gtid_binlog_state"
,
&
gtid_binlog_state
},
{
"log_bin_basename"
,
&
log_bin_dir
},
{
NULL
,
NULL
}
};
read_mysql_variables
(
connection
,
"SELECT @@GLOBAL.log_bin"
,
log_bin_var
,
false
);
/* Do not create xtrabackup_binlog_info if binary log is disabled: */
if
(
strncmp
(
log_bin
,
"1"
,
2
)
!=
0
)
{
goto
binlog_disabled
;
}
lock_binlog_maybe
(
connection
);
read_mysql_variables
(
connection
,
"SHOW MASTER STATUS"
,
status
,
false
);
/* Do not create xtrabackup_binlog_info if replication
has not started yet: */
if
(
filename
==
NULL
||
position
==
NULL
)
{
goto
no_replication
;
}
read_mysql_variables
(
connection
,
"SHOW VARIABLES"
,
vars
,
true
);
gtid_exists
=
(
executed_gtid_set
&&
*
executed_gtid_set
)
||
(
gtid_binlog_state
&&
*
gtid_binlog_state
);
if
(
write_binlogs
||
gtid_exists
)
{
if
(
gtid_exists
)
{
size_t
log_bin_dir_length
;
lock_binlog_maybe
(
connection
);
xb_mysql_query
(
connection
,
"FLUSH BINARY LOGS"
,
false
);
read_mysql_variables
(
connection
,
"SHOW MASTER STATUS"
,
status_after_flush
,
false
);
if
(
opt_log_bin
!=
NULL
&&
strchr
(
opt_log_bin
,
FN_LIBCHAR
))
{
/* If log_bin is set, it has priority */
...
...
@@ -1644,88 +1628,33 @@ write_current_binlog_file(MYSQL *connection, bool write_binlogs)
log_bin_dir
=
strdup
(
opt_log_bin
);
}
else
if
(
log_bin_dir
==
NULL
)
{
/* Default location is MySQL datadir */
log_bin_dir
=
static_cast
<
char
*>
(
malloc
(
3
));
ut_a
(
log_bin_dir
);
log_bin_dir
[
0
]
=
'.'
;
log_bin_dir
[
1
]
=
FN_LIBCHAR
;
log_bin_dir
[
2
]
=
0
;
log_bin_dir
=
strdup
(
"./"
);
}
size_t
log_bin_dir_length
;
dirname_part
(
log_bin_dir
,
log_bin_dir
,
&
log_bin_dir_length
);
/* strip final slash if it is not the only path component */
while
(
IS_TRAILING_SLASH
(
log_bin_dir
,
log_bin_dir_length
))
{
log_bin_dir_length
--
;
if
(
log_bin_dir_length
>
1
&&
log_bin_dir
[
log_bin_dir_length
-
1
]
==
FN_LIBCHAR
)
{
log_bin_dir
[
log_bin_dir_length
-
1
]
=
0
;
}
log_bin_dir
[
log_bin_dir_length
]
=
0
;
if
(
log_bin_dir
==
NULL
)
{
msg
(
"Failed to locate binary log files"
);
if
(
log_bin_dir
==
NULL
||
log_bin_file
==
NULL
)
{
msg
(
"Failed to get master binlog coordinates from "
"SHOW MASTER STATUS"
);
result
=
false
;
goto
cleanup
;
}
uint
max_binlogs
;
max_binlogs
=
opt_max_binlogs
;
if
(
max_binlogs
==
0
)
{
if
(
gtid_exists
)
{
max_binlogs
=
1
;
}
else
{
goto
cleanup
;
}
}
xb_mysql_query
(
connection
,
"FLUSH BINARY LOGS"
,
false
);
MYSQL_RES
*
mysql_result
;
mysql_result
=
xb_mysql_query
(
connection
,
"SHOW BINARY LOGS"
,
true
);
ut_ad
(
mysql_num_fields
(
mysql_result
)
>=
2
);
my_ulonglong
n_rows
;
my_ulonglong
start
;
n_rows
=
mysql_num_rows
(
mysql_result
);
start
=
0
;
if
(
max_binlogs
<
n_rows
)
{
start
=
n_rows
-
max_binlogs
;
}
if
(
start
)
{
mysql_data_seek
(
mysql_result
,
start
);
}
MYSQL_ROW
row
;
while
((
row
=
mysql_fetch_row
(
mysql_result
)))
{
const
char
*
binlog_name
=
row
[
0
];
char
filepath
[
FN_REFLEN
];
snprintf
(
filepath
,
sizeof
(
filepath
),
"%s%c%s"
,
log_bin_dir
,
FN_LIBCHAR
,
binlog_name
);
if
(
file_exists
(
filepath
))
{
result
=
copy_file
(
ds_data
,
filepath
,
binlog_name
,
0
);
if
(
!
result
)
break
;
}
}
if
(
result
)
{
write_binlog_info
(
connection
,
log_bin_dir
,
mysql_result
,
n_rows
,
start
);
}
mysql_free_result
(
mysql_result
);
snprintf
(
filepath
,
sizeof
(
filepath
),
"%s%c%s"
,
log_bin_dir
,
FN_LIBCHAR
,
log_bin_file
);
result
=
copy_file
(
ds_data
,
filepath
,
log_bin_file
,
0
);
}
cleanup:
free_mysql_variables
(
vars
);
no_replication:
free_mysql_variables
(
status_after_flush
);
free_mysql_variables
(
status
);
binlog_disabled:
free_mysql_variables
(
log_bin_var
);
free_mysql_variables
(
vars
);
return
(
result
);
}
...
...
@@ -1734,11 +1663,8 @@ write_current_binlog_file(MYSQL *connection, bool write_binlogs)
/*********************************************************************//**
Retrieves MySQL binlog position and
saves it in a file. It also prints it to stdout. */
static
bool
write_binlog_info
(
MYSQL
*
connection
,
char
*
log_bin_dir
,
MYSQL_RES
*
mysql_result
,
my_ulonglong
n_rows
,
my_ulonglong
start
)
write_binlog_info
(
MYSQL
*
connection
)
{
char
*
filename
=
NULL
;
char
*
position
=
NULL
;
...
...
@@ -1746,13 +1672,9 @@ write_binlog_info(MYSQL *connection, char *log_bin_dir,
char
*
gtid_current_pos
=
NULL
;
char
*
gtid_executed
=
NULL
;
char
*
gtid
=
NULL
;
char
*
buffer
;
char
*
buf
;
size_t
total
;
bool
result
=
true
;
bool
result
;
bool
mysql_gtid
;
bool
mariadb_gtid
;
bool
with_gtid
;
mysql_variable
status
[]
=
{
{
"File"
,
&
filename
},
...
...
@@ -1770,106 +1692,39 @@ write_binlog_info(MYSQL *connection, char *log_bin_dir,
read_mysql_variables
(
connection
,
"SHOW MASTER STATUS"
,
status
,
false
);
read_mysql_variables
(
connection
,
"SHOW VARIABLES"
,
vars
,
true
);
mysql_gtid
=
gtid_mode
&&
(
strcmp
(
gtid_mode
,
"ON"
)
==
0
);
mariadb_gtid
=
gtid_current_pos
&&
*
gtid_current_pos
;
if
(
filename
==
NULL
||
position
==
NULL
)
{
/* Do not create xtrabackup_binlog_info if binary
log is disabled */
result
=
true
;
goto
cleanup
;
}
mysql_gtid
=
((
gtid_mode
!=
NULL
)
&&
(
strcmp
(
gtid_mode
,
"ON"
)
==
0
));
mariadb_gtid
=
(
gtid_current_pos
!=
NULL
);
gtid
=
(
gtid_executed
&&
*
gtid_executed
)
?
gtid_executed
:
gtid_current_pos
;
gtid
=
(
gtid_executed
!=
NULL
?
gtid_executed
:
gtid_current_pos
)
;
with_gtid
=
mariadb_gtid
||
mysql_gtid
;
if
(
with_gtid
)
{
if
(
mariadb_gtid
||
mysql_gtid
)
{
ut_a
(
asprintf
(
&
mysql_binlog_position
,
"filename '%s', position '%s', "
"GTID of the last change '%s'"
,
filename
,
position
,
gtid
)
!=
-
1
);
result
=
backup_file_printf
(
XTRABACKUP_BINLOG_INFO
,
"%s
\t
%s
\t
%s
\n
"
,
filename
,
position
,
gtid
);
}
else
{
ut_a
(
asprintf
(
&
mysql_binlog_position
,
"filename '%s', position '%s'"
,
filename
,
position
)
!=
-
1
);
result
=
backup_file_printf
(
XTRABACKUP_BINLOG_INFO
,
"%s
\t
%s
\n
"
,
filename
,
position
);
}
mysql_data_seek
(
mysql_result
,
start
);
MYSQL_ROW
row
;
my_ulonglong
current
;
total
=
1
;
current
=
start
;
while
((
row
=
mysql_fetch_row
(
mysql_result
)))
{
const
char
*
binlog_name
=
row
[
0
];
/* The position in the current binlog is taken from
the global variable, but for the previous ones it is
determined by their length: */
const
char
*
binlog_pos
=
++
current
==
n_rows
?
position
:
row
[
1
];
total
+=
strlen
(
binlog_name
)
+
strlen
(
binlog_pos
)
+
2
;
if
(
with_gtid
&&
current
!=
n_rows
)
{
/* Add the "\t[]" length to the buffer size: */
total
+=
3
;
}
}
/* For the last of the binray log files, also add
the length of the GTID (+ one character for '\t'): */
if
(
with_gtid
)
{
total
+=
strlen
(
gtid
)
+
1
;
}
buffer
=
static_cast
<
char
*>
(
malloc
(
total
));
if
(
!
buffer
)
{
msg
(
"Failed to allocate memory for temporary buffer"
);
result
=
false
;
goto
cleanup
;
}
mysql_data_seek
(
mysql_result
,
start
);
buf
=
buffer
;
current
=
start
;
while
((
row
=
mysql_fetch_row
(
mysql_result
)))
{
const
char
*
binlog_name
=
row
[
0
];
char
filepath
[
FN_REFLEN
];
snprintf
(
filepath
,
sizeof
(
filepath
),
"%s%c%s"
,
log_bin_dir
,
FN_LIBCHAR
,
binlog_name
);
current
++
;
if
(
file_exists
(
filepath
))
{
/* The position in the current binlog is taken from
the global variable, but for the previous ones it is
determined by their length: */
char
*
binlog_pos
=
current
==
n_rows
?
position
:
row
[
1
];
int
bytes
;
if
(
with_gtid
)
{
bytes
=
snprintf
(
buf
,
total
,
"%s
\t
%s
\t
%s
\n
"
,
binlog_name
,
binlog_pos
,
current
==
n_rows
?
gtid
:
"[]"
);
}
else
{
bytes
=
snprintf
(
buf
,
total
,
"%s
\t
%s
\n
"
,
binlog_name
,
binlog_pos
);
}
if
(
bytes
<=
0
)
{
goto
buffer_overflow
;
}
buf
+=
bytes
;
total
-=
bytes
;
}
}
if
(
buf
!=
buffer
)
{
result
=
backup_file_printf
(
XTRABACKUP_BINLOG_INFO
,
"%s"
,
buffer
);
}
cleanup2:
free
(
buffer
);
cleanup:
free_mysql_variables
(
vars
);
free_mysql_variables
(
status
);
free_mysql_variables
(
vars
);
return
(
result
);
buffer_overflow:
msg
(
"Internal error: buffer overflow in the write_binlog_info()"
);
result
=
false
;
goto
cleanup2
;
}
struct
escape_and_quote
...
...
@@ -2197,6 +2052,7 @@ backup_cleanup()
{
free
(
mysql_slave_position
);
free
(
mysql_binlog_position
);
free
(
buffer_pool_filename
);
if
(
mysql_connection
)
{
mysql_close
(
mysql_connection
);
...
...
extra/mariabackup/backup_mysql.h
View file @
5197519f
...
...
@@ -28,6 +28,7 @@ extern time_t history_lock_time;
extern
bool
sql_thread_started
;
extern
char
*
mysql_slave_position
;
extern
char
*
mysql_binlog_position
;
extern
char
*
buffer_pool_filename
;
/** connection to mysql server */
extern
MYSQL
*
mysql_connection
;
...
...
@@ -61,7 +62,10 @@ void
unlock_all
(
MYSQL
*
connection
);
bool
write_current_binlog_file
(
MYSQL
*
connection
,
bool
write_binlogs
);
write_current_binlog_file
(
MYSQL
*
connection
);
bool
write_binlog_info
(
MYSQL
*
connection
);
bool
write_xtrabackup_info
(
MYSQL
*
connection
,
const
char
*
filename
,
bool
history
,
...
...
extra/mariabackup/common.h
View file @
5197519f
...
...
@@ -187,14 +187,4 @@ xb_read_full(File fd, uchar *buf, size_t len)
return
tlen
;
}
#ifdef _WIN32
#define IS_TRAILING_SLASH(name, length) \
((length) > 1 && \
(name[(length) - 1] == '/' || \
name[(length) - 1] == '\\'))
#else
#define IS_TRAILING_SLASH(name, length) \
((length) > 1 && name[(length) - 1] == FN_LIBCHAR)
#endif
#endif
extra/mariabackup/xtrabackup.cc
View file @
5197519f
...
...
@@ -238,8 +238,7 @@ long innobase_read_io_threads = 4;
long
innobase_write_io_threads
=
4
;
longlong
innobase_page_size
=
(
1LL
<<
14
);
/* 16KB */
char
*
innobase_buffer_pool_filename
=
NULL
;
char
*
buffer_pool_filename
=
NULL
;
char
*
innobase_buffer_pool_filename
=
NULL
;
/* The default values for the following char* start-up parameters
are determined in innobase_init below: */
...
...
@@ -348,7 +347,6 @@ uint opt_lock_wait_timeout = 0;
uint
opt_lock_wait_threshold
=
0
;
uint
opt_debug_sleep_before_unlock
=
0
;
uint
opt_safe_slave_backup_timeout
=
0
;
uint
opt_max_binlogs
=
UINT_MAX
;
const
char
*
opt_history
=
NULL
;
...
...
@@ -1049,8 +1047,7 @@ enum options_xtrabackup
OPT_BACKUP_ROCKSDB
,
OPT_XTRA_CHECK_PRIVILEGES
,
OPT_XB_IGNORE_INNODB_PAGE_CORRUPTION
,
OPT_INNODB_FORCE_RECOVERY
,
OPT_MAX_BINLOGS
OPT_INNODB_FORCE_RECOVERY
};
struct
my_option
xb_client_options
[]
=
{
...
...
@@ -1453,17 +1450,6 @@ struct my_option xb_client_options[]= {
&
opt_log_innodb_page_corruption
,
&
opt_log_innodb_page_corruption
,
0
,
GET_BOOL
,
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"sst_max_binlogs"
,
OPT_MAX_BINLOGS
,
"Number of recent binary logs to be included in the backup. "
"Setting this parameter to zero normally disables transmission "
"of binary logs to the joiner nodes during SST using Galera. "
"But sometimes a single current binlog can still be transmitted "
"to the joiner even with sst_max_binlogs=0, because it is "
"required for Galera to work properly with GTIDs support."
,
(
G_PTR
*
)
&
opt_max_binlogs
,
(
G_PTR
*
)
&
opt_max_binlogs
,
0
,
GET_UINT
,
OPT_ARG
,
UINT_MAX
,
0
,
UINT_MAX
,
0
,
1
,
0
},
#define MYSQL_CLIENT
#include "sslopt-longopts.h"
#undef MYSQL_CLIENT
...
...
@@ -6222,44 +6208,6 @@ check_all_privileges()
}
}
static
void
xb_init_buffer_pool
(
const
char
*
filename
)
{
if
(
filename
&&
#ifdef _WIN32
(
filename
[
0
]
==
'/'
||
filename
[
0
]
==
'\\'
||
strchr
(
filename
,
':'
)))
#else
filename
[
0
]
==
FN_LIBCHAR
)
#endif
{
buffer_pool_filename
=
strdup
(
filename
);
}
else
{
char
filepath
[
FN_REFLEN
];
char
*
dst_dir
=
(
innobase_data_home_dir
&&
*
innobase_data_home_dir
)
?
innobase_data_home_dir
:
mysql_data_home
;
size_t
dir_length
;
if
(
dst_dir
&&
*
dst_dir
)
{
dir_length
=
strlen
(
dst_dir
);
while
(
IS_TRAILING_SLASH
(
dst_dir
,
dir_length
))
{
dir_length
--
;
}
memcpy
(
filepath
,
dst_dir
,
dir_length
);
}
else
{
filepath
[
0
]
=
'.'
;
dir_length
=
1
;
}
snprintf
(
filepath
+
dir_length
,
sizeof
(
filepath
)
-
dir_length
,
"%c%s"
,
FN_LIBCHAR
,
filename
?
filename
:
"ib_buffer_pool"
);
buffer_pool_filename
=
strdup
(
filepath
);
}
}
bool
xb_init
()
{
...
...
@@ -6324,15 +6272,11 @@ xb_init()
if
(
!
get_mysql_vars
(
mysql_connection
))
{
return
(
false
);
}
xb_init_buffer_pool
(
buffer_pool_filename
);
if
(
opt_check_privileges
)
{
check_all_privileges
();
}
history_start_time
=
time
(
NULL
);
}
else
{
xb_init_buffer_pool
(
innobase_buffer_pool_filename
);
}
return
(
true
);
...
...
@@ -6626,8 +6570,6 @@ int main(int argc, char **argv)
free_error_messages
();
mysql_mutex_destroy
(
&
LOCK_error_log
);
free
(
buffer_pool_filename
);
if
(
status
==
EXIT_SUCCESS
)
{
msg
(
"completed OK!"
);
}
...
...
extra/mariabackup/xtrabackup.h
View file @
5197519f
...
...
@@ -70,7 +70,6 @@ extern char *xtrabackup_incremental_dir;
extern
char
*
xtrabackup_incremental_basedir
;
extern
char
*
innobase_data_home_dir
;
extern
char
*
innobase_buffer_pool_filename
;
extern
char
*
buffer_pool_filename
;
extern
char
*
xb_plugin_dir
;
extern
char
*
xb_rocksdb_datadir
;
extern
my_bool
xb_backup_rocksdb
;
...
...
@@ -166,7 +165,6 @@ extern uint opt_lock_wait_timeout;
extern
uint
opt_lock_wait_threshold
;
extern
uint
opt_debug_sleep_before_unlock
;
extern
uint
opt_safe_slave_backup_timeout
;
extern
uint
opt_max_binlogs
;
extern
const
char
*
opt_history
;
...
...
mysql-test/suite/galera/r/galera_log_bin_ext_mariabackup.result
View file @
5197519f
...
...
@@ -53,28 +53,7 @@ COUNT(*) = 2
1
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
hostname1-bin.000001 # Gtid # # GTID #-#-#
hostname1-bin.000001 # Query # # use `test`; CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB
hostname1-bin.000001 # Gtid # # BEGIN GTID #-#-#
hostname1-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1)
hostname1-bin.000001 # Table_map # # table_id: # (test.t1)
hostname1-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
hostname1-bin.000001 # Xid # # COMMIT /* XID */
hostname1-bin.000001 # Gtid # # GTID #-#-#
hostname1-bin.000001 # Query # # use `test`; CREATE TABLE t2 (id INT) ENGINE=InnoDB
hostname1-bin.000001 # Gtid # # BEGIN GTID #-#-#
hostname1-bin.000001 # Annotate_rows # # INSERT INTO t2 VALUES (1)
hostname1-bin.000001 # Table_map # # table_id: # (test.t2)
hostname1-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
hostname1-bin.000001 # Xid # # COMMIT /* XID */
hostname1-bin.000001 # Gtid # # BEGIN GTID #-#-#
hostname1-bin.000001 # Annotate_rows # # INSERT INTO t2 VALUES (1)
hostname1-bin.000001 # Table_map # # table_id: # (test.t2)
hostname1-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
hostname1-bin.000001 # Xid # # COMMIT /* XID */
hostname1-bin.000001 # Gtid # # GTID #-#-#
hostname1-bin.000001 # Query # # use `test`; ALTER TABLE t1 ADD COLUMN f2 INTEGER
hostname1-bin.000001 # Rotate # # hostname1-bin.000002;pos=4
hostname1-bin.000002 # Binlog_checkpoint # # hostname1-bin.000002
DROP TABLE t1;
DROP TABLE t2;
#cleanup
...
...
mysql-test/suite/galera/t/galera_log_bin.inc
View file @
5197519f
...
...
@@ -30,7 +30,6 @@ ALTER TABLE t1 ADD COLUMN f2 INTEGER;
--
connection
node_2
SELECT
COUNT
(
*
)
=
2
FROM
INFORMATION_SCHEMA
.
COLUMNS
WHERE
TABLE_NAME
=
't1'
;
--
let
$MASTER_MYPORT
=
$NODE_MYPORT_2
--
source
include
/
show_binlog_events
.
inc
DROP
TABLE
t1
;
...
...
mysql-test/suite/galera/t/galera_log_bin_sst.inc
View file @
5197519f
...
...
@@ -70,7 +70,6 @@ let $restart_noprint=2;
--
connection
node_2
SELECT
COUNT
(
*
)
=
2
FROM
INFORMATION_SCHEMA
.
COLUMNS
WHERE
TABLE_NAME
=
't1'
;
--
let
$MASTER_MYPORT
=
$NODE_MYPORT_2
--
source
include
/
show_binlog_events
.
inc
DROP
TABLE
t1
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment