mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge 10.11 into 11.4
This commit is contained in:
@@ -107,7 +107,7 @@ CREATE TABLE IF NOT EXISTS func ( name char(64) binary DEFAULT '' NOT NULL, ret
|
||||
CREATE TABLE IF NOT EXISTS plugin ( name varchar(64) DEFAULT '' NOT NULL, dl varchar(128) DEFAULT '' NOT NULL, PRIMARY KEY (name) ) engine=Aria transactional=1 CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci comment='MySQL plugins';
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS servers ( Server_name char(64) NOT NULL DEFAULT '', Host varchar(2048) NOT NULL DEFAULT '', Db char(64) NOT NULL DEFAULT '', Username char(128) NOT NULL DEFAULT '', Password char(64) NOT NULL DEFAULT '', Port INT(4) NOT NULL DEFAULT '0', Socket char(64) NOT NULL DEFAULT '', Wrapper char(64) NOT NULL DEFAULT '', Owner varchar(512) NOT NULL DEFAULT '', PRIMARY KEY (Server_name)) engine=Aria transactional=1 CHARACTER SET utf8mb3 comment='MySQL Foreign Servers table';
|
||||
CREATE TABLE IF NOT EXISTS servers ( Server_name char(64) NOT NULL DEFAULT '', Host varchar(2048) NOT NULL DEFAULT '', Db char(64) NOT NULL DEFAULT '', Username char(128) NOT NULL DEFAULT '', Password char(64) NOT NULL DEFAULT '', Port INT(4) NOT NULL DEFAULT '0', Socket char(108) NOT NULL DEFAULT '', Wrapper char(64) NOT NULL DEFAULT '', Owner varchar(512) NOT NULL DEFAULT '', PRIMARY KEY (Server_name)) engine=Aria transactional=1 CHARACTER SET utf8mb3 comment='MySQL Foreign Servers table';
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tables_priv ( Host char(255) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(128) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Grantor varchar(384) DEFAULT '' NOT NULL, Timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger','Delete versioning rows') COLLATE utf8mb3_general_ci DEFAULT '' NOT NULL, Column_priv set('Select','Insert','Update','References') COLLATE utf8mb3_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name), KEY Grantor (Grantor) ) engine=Aria transactional=1 CHARACTER SET utf8mb3 COLLATE utf8mb3_bin comment='Table privileges';
|
||||
|
@@ -882,3 +882,7 @@ DELIMITER ;
|
||||
ALTER TABLE servers
|
||||
MODIFY Host varchar(2048) NOT NULL DEFAULT '',
|
||||
MODIFY Owner varchar(512) NOT NULL DEFAULT '';
|
||||
|
||||
# MDEV-34716 Fix mysql.servers socket max length too short
|
||||
ALTER TABLE servers
|
||||
MODIFY Socket char(108) NOT NULL DEFAULT '';
|
||||
|
@@ -209,6 +209,7 @@ INNODB_DATA_HOME_DIR=$(trim_dir "${INNODB_DATA_HOME_DIR:-}")
|
||||
INNODB_LOG_GROUP_HOME=$(trim_dir "${INNODB_LOG_GROUP_HOME:-}")
|
||||
INNODB_UNDO_DIR=$(trim_dir "${INNODB_UNDO_DIR:-}")
|
||||
INNODB_BUFFER_POOL=""
|
||||
INNODB_BUFFER_POOL_SIZE=""
|
||||
INNODB_FORCE_RECOVERY=""
|
||||
INNOEXTRA=""
|
||||
|
||||
@@ -329,6 +330,10 @@ case "$1" in
|
||||
readonly INNODB_BUFFER_POOL=$(trim_string "$2")
|
||||
shift
|
||||
;;
|
||||
'--innodb-buffer-pool-size')
|
||||
readonly INNODB_BUFFER_POOL_SIZE=$(trim_string "$2")
|
||||
shift
|
||||
;;
|
||||
'--defaults-file')
|
||||
file=$(trim_string "$2")
|
||||
readonly WSREP_SST_OPT_DEFAULT="$1=$file"
|
||||
@@ -607,6 +612,12 @@ case "$1" in
|
||||
fi
|
||||
skip_mysqld_arg=1
|
||||
;;
|
||||
'--innodb-buffer-pool-size')
|
||||
if [ -z "$INNODB_BUFFER_POOL_SIZE" ]; then
|
||||
MYSQLD_OPT_INNODB_BUFFER_POOL_SIZE=$(trim_string "$value")
|
||||
fi
|
||||
skip_mysqld_arg=1
|
||||
;;
|
||||
'--innodb-force-recovery')
|
||||
if [ -n "$value" -a "$value" != "0" ]; then
|
||||
INNODB_FORCE_RECOVERY=$(trim_string "$value")
|
||||
@@ -696,6 +707,10 @@ if [ -n "${MYSQLD_OPT_INNODB_BUFFER_POOL:-}" -a \
|
||||
-z "$INNODB_BUFFER_POOL" ]; then
|
||||
readonly INNODB_BUFFER_POOL="$MYSQLD_OPT_INNODB_BUFFER_POOL"
|
||||
fi
|
||||
if [ -n "${MYSQLD_OPT_INNODB_BUFFER_POOL_SIZE:-}" -a \
|
||||
-z "$INNODB_BUFFER_POOL_SIZE" ]; then
|
||||
readonly INNODB_BUFFER_POOL_SIZE="$MYSQLD_OPT_INNODB_BUFFER_POOL_SIZE"
|
||||
fi
|
||||
if [ -n "${MYSQLD_OPT_LOG_BIN:-}" -a \
|
||||
-z "$WSREP_SST_OPT_BINLOG" ]; then
|
||||
readonly WSREP_SST_OPT_BINLOG="$MYSQLD_OPT_LOG_BIN"
|
||||
@@ -752,6 +767,9 @@ fi
|
||||
if [ -n "$INNODB_BUFFER_POOL" ]; then
|
||||
INNOEXTRA="$INNOEXTRA --innodb-buffer-pool-filename='$INNODB_BUFFER_POOL'"
|
||||
fi
|
||||
if [ -n "$INNODB_BUFFER_POOL_SIZE" ]; then
|
||||
INNOEXTRA="$INNOEXTRA --innodb-buffer-pool-size='$INNODB_BUFFER_POOL_SIZE'"
|
||||
fi
|
||||
if [ -n "$WSREP_SST_OPT_BINLOG" ]; then
|
||||
INNOEXTRA="$INNOEXTRA --log-bin='$WSREP_SST_OPT_BINLOG'"
|
||||
if [ -n "$WSREP_SST_OPT_BINLOG_INDEX" ]; then
|
||||
@@ -1117,7 +1135,7 @@ get_openssl()
|
||||
{
|
||||
# If the OPENSSL_BINARY variable is already defined, just return:
|
||||
if [ -n "${OPENSSL_BINARY+x}" ]; then
|
||||
return
|
||||
return 0
|
||||
fi
|
||||
# Let's look for openssl:
|
||||
OPENSSL_BINARY=$(commandex 'openssl')
|
||||
@@ -1556,7 +1574,7 @@ cleanup_pid()
|
||||
fi
|
||||
done
|
||||
elif ps -p $pid >/dev/null 2>&1; then
|
||||
wsrep_log_warning "Unable to kill PID=$pid ($pid_file)"
|
||||
wsrep_log_warning "Unable to kill PID=$pid${pid_file:+ ($pid_file)}"
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
@@ -1775,14 +1793,14 @@ simple_cleanup()
|
||||
create_data()
|
||||
{
|
||||
OLD_PWD="$(pwd)"
|
||||
DATA_DIR="$OLD_PWD"
|
||||
|
||||
if [ -n "$DATA" -a "$DATA" != '.' ]; then
|
||||
[ ! -d "$DATA" ] && mkdir -p "$DATA"
|
||||
cd "$DATA"
|
||||
DATA_DIR="$(pwd)"
|
||||
cd "$OLD_PWD"
|
||||
fi
|
||||
DATA_DIR="$(pwd)"
|
||||
|
||||
cd "$OLD_PWD"
|
||||
}
|
||||
|
||||
create_dirs()
|
||||
@@ -1863,6 +1881,8 @@ create_dirs()
|
||||
cd "$OLD_PWD"
|
||||
[ $simplify -ne 0 -a "$ar_log_dir" = "$DATA_DIR" ] && ar_log_dir=""
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
wait_previous_sst()
|
||||
|
@@ -439,17 +439,30 @@ get_transfer()
|
||||
get_footprint()
|
||||
{
|
||||
cd "$DATA_DIR"
|
||||
local payload_data=$(find $findopt . \
|
||||
-regex '.*undo[0-9]+$\|.*\.ibd$\|.*\.MYI$\|.*\.MYD$\|.*ibdata1$' \
|
||||
-type f -print0 | du --files0-from=- --block-size=1 -c -s | \
|
||||
awk 'END { print $1 }')
|
||||
local payload_data
|
||||
if [ "$OS" = 'Linux' ]; then
|
||||
payload_data=$(find $findopt . \
|
||||
-regex '.*undo[0-9]+$\|.*\.ibd$\|.*\.MYI$\|.*\.MYD$\|.*ibdata1$' \
|
||||
-type f -print0 | du --files0-from=- --bytes -c -s | \
|
||||
awk 'END { print $1 }')
|
||||
else
|
||||
payload_data=$(find $findopt . \
|
||||
-regex '.*undo[0-9]+$|.*\.ibd$|.*\.MYI$\.*\.MYD$|.*ibdata1$' \
|
||||
-type f -print0 | xargs -0 stat -f '%z' | \
|
||||
awk '{ sum += $1 } END { print sum }')
|
||||
fi
|
||||
local payload_undo=0
|
||||
if [ -n "$ib_undo_dir" -a "$ib_undo_dir" != '.' -a \
|
||||
"$ib_undo_dir" != "$DATA_DIR" -a -d "$ib_undo_dir" ]
|
||||
then
|
||||
cd "$ib_undo_dir"
|
||||
payload_undo=$(find . -regex '.*undo[0-9]+$' -type f -print0 | \
|
||||
du --files0-from=- --block-size=1 -c -s | awk 'END { print $1 }')
|
||||
if [ "$OS" = 'Linux' ]; then
|
||||
payload_undo=$(find . -regex '.*undo[0-9]+$' -type f -print0 | \
|
||||
du --files0-from=- --bytes -c -s | awk 'END { print $1 }')
|
||||
else
|
||||
payload_undo=$(find . -regex '.*undo[0-9]+$' -type f -print0 | \
|
||||
xargs -0 stat -f '%z' | awk '{ sum += $1 } END { print sum }')
|
||||
fi
|
||||
fi
|
||||
cd "$OLD_PWD"
|
||||
|
||||
@@ -527,7 +540,8 @@ adjust_progress()
|
||||
fi
|
||||
}
|
||||
|
||||
encgroups='--mysqld|sst|xtrabackup'
|
||||
bkgroups='sst|xtrabackup|mariabackup'
|
||||
encgroups="--mysqld|$bkgroups"
|
||||
|
||||
read_cnf()
|
||||
{
|
||||
@@ -583,26 +597,34 @@ read_cnf()
|
||||
ssl_dhparams=$(parse_cnf "$encgroups" 'ssl-dhparams')
|
||||
fi
|
||||
|
||||
sockopt=$(parse_cnf sst sockopt "")
|
||||
progress=$(parse_cnf sst progress "")
|
||||
sockopt=$(parse_cnf sst sockopt)
|
||||
progress=$(parse_cnf sst progress)
|
||||
ttime=$(parse_cnf sst time 0)
|
||||
cpat='.*\.pem$\|.*galera\.cache$\|.*sst_in_progress$\|.*\.sst$\|.*gvwstate\.dat$\|.*grastate\.dat$\|.*\.err$\|.*\.log$\|.*RPM_UPGRADE_MARKER$\|.*RPM_UPGRADE_HISTORY$'
|
||||
[ "$OS" = 'FreeBSD' ] && cpat=$(echo "$cpat" | sed 's/\\|/|/g')
|
||||
cpat=$(parse_cnf sst cpat "$cpat")
|
||||
scomp=$(parse_cnf sst compressor "")
|
||||
sdecomp=$(parse_cnf sst decompressor "")
|
||||
scomp=$(parse_cnf sst compressor)
|
||||
sdecomp=$(parse_cnf sst decompressor)
|
||||
|
||||
rlimit=$(parse_cnf sst rlimit "")
|
||||
rlimit=$(parse_cnf sst rlimit)
|
||||
uextra=$(parse_cnf sst use-extra 0)
|
||||
speciald=$(parse_cnf sst sst-special-dirs 1)
|
||||
iopts=$(parse_cnf sst inno-backup-opts "")
|
||||
iapts=$(parse_cnf sst inno-apply-opts "")
|
||||
impts=$(parse_cnf sst inno-move-opts "")
|
||||
stimeout=$(parse_cnf sst sst-initial-timeout 300)
|
||||
ssyslog=$(parse_cnf sst sst-syslog 0)
|
||||
ssystag=$(parse_cnf mysqld_safe syslog-tag "${SST_SYSLOG_TAG:-}")
|
||||
speciald=$(parse_cnf sst 'sst-special-dirs' 1)
|
||||
iopts=$(parse_cnf "$bkgroups" 'inno-backup-opts')
|
||||
iapts=$(parse_cnf "$bkgroups" 'inno-apply-opts')
|
||||
impts=$(parse_cnf "$bkgroups" 'inno-move-opts')
|
||||
use_memory=$(parse_cnf "$bkgroups" 'use-memory')
|
||||
if [ -z "$use_memory" ]; then
|
||||
if [ -n "$INNODB_BUFFER_POOL_SIZE" ]; then
|
||||
use_memory="$INNODB_BUFFER_POOL_SIZE"
|
||||
else
|
||||
use_memory=$(parse_cnf '--mysqld' 'innodb-buffer-pool-size')
|
||||
fi
|
||||
fi
|
||||
stimeout=$(parse_cnf sst 'sst-initial-timeout' 300)
|
||||
ssyslog=$(parse_cnf sst 'sst-syslog' 0)
|
||||
ssystag=$(parse_cnf mysqld_safe 'syslog-tag' "${SST_SYSLOG_TAG:-}")
|
||||
ssystag="$ssystag-"
|
||||
sstlogarchive=$(parse_cnf sst sst-log-archive 1)
|
||||
sstlogarchive=$(parse_cnf sst 'sst-log-archive' 1)
|
||||
sstlogarchivedir=""
|
||||
if [ $sstlogarchive -ne 0 ]; then
|
||||
sstlogarchivedir=$(parse_cnf sst sst-log-archive-dir \
|
||||
@@ -676,24 +698,25 @@ cleanup_at_exit()
|
||||
|
||||
[ "$(pwd)" != "$OLD_PWD" ] && cd "$OLD_PWD"
|
||||
|
||||
if [ $estatus -ne 0 ]; then
|
||||
wsrep_log_error "Removing $MAGIC_FILE file due to signal"
|
||||
if [ "$WSREP_SST_OPT_ROLE" = 'donor' -o $estatus -ne 0 ]; then
|
||||
if [ $estatus -ne 0 ]; then
|
||||
wsrep_log_error "Removing $MAGIC_FILE file due to signal"
|
||||
fi
|
||||
[ -f "$MAGIC_FILE" ] && rm -f "$MAGIC_FILE" || :
|
||||
[ -f "$DONOR_MAGIC_FILE" ] && rm -f "$DONOR_MAGIC_FILE" || :
|
||||
[ -f "$DATA/$IST_FILE" ] && rm -f "$DATA/$IST_FILE" || :
|
||||
fi
|
||||
|
||||
if [ "$WSREP_SST_OPT_ROLE" = 'joiner' ]; then
|
||||
if [ -n "$BACKUP_PID" ]; then
|
||||
if ps -p $BACKUP_PID >/dev/null 2>&1; then
|
||||
wsrep_log_error \
|
||||
"mariadb-backup process is still running. Killing..."
|
||||
cleanup_pid $CHECK_PID
|
||||
"SST streaming process is still running. Killing..."
|
||||
cleanup_pid $BACKUP_PID
|
||||
fi
|
||||
fi
|
||||
wsrep_log_info "Removing the sst_in_progress file"
|
||||
wsrep_cleanup_progress_file
|
||||
else
|
||||
[ -f "$DATA/$IST_FILE" ] && rm -f "$DATA/$IST_FILE" || :
|
||||
fi
|
||||
|
||||
if [ -n "$progress" -a -p "$progress" ]; then
|
||||
@@ -1045,6 +1068,9 @@ setup_commands()
|
||||
if [ -n "$INNODB_FORCE_RECOVERY" ]; then
|
||||
recovery=" --innodb-force-recovery=$INNODB_FORCE_RECOVERY"
|
||||
fi
|
||||
if [ -n "$use_memory" ]; then
|
||||
INNOEXTRA="$INNOEXTRA --use-memory=$use_memory"
|
||||
fi
|
||||
INNOAPPLY="$BACKUP_BIN --prepare$disver$recovery${iapts:+ }$iapts$INNOEXTRA --target-dir='$DATA' --datadir='$DATA'$mysqld_args $INNOAPPLY"
|
||||
INNOMOVE="$BACKUP_BIN$WSREP_SST_OPT_CONF --move-back$disver${impts:+ }$impts$INNOEXTRA --galera-info --force-non-empty-directories --target-dir='$DATA' --datadir='${TDATA:-$DATA}' $INNOMOVE"
|
||||
INNOBACKUP="$BACKUP_BIN$WSREP_SST_OPT_CONF --backup$disver${iopts:+ }$iopts$tmpopts$INNOEXTRA --galera-info --stream=$sfmt --target-dir='$itmpdir' --datadir='$DATA'$mysqld_args $INNOBACKUP"
|
||||
|
Reference in New Issue
Block a user