summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2019-03-08 22:00:24 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2019-03-08 22:00:24 +0200
commit89b463ee99c22e69fe4adf686e0d61cd20973c49 (patch)
tree7af291818189bf11af3c9185b62eb182102c79b5 /extra
parent6740b2926bb80bee4b9a560acc8d315f2888e0b8 (diff)
parentab7e2b048d7d0835ae7473873169b7606114348e (diff)
downloadmariadb-git-89b463ee99c22e69fe4adf686e0d61cd20973c49.tar.gz
Merge 10.2 into 10.3
Diffstat (limited to 'extra')
-rw-r--r--extra/mariabackup/backup_mysql.cc15
-rw-r--r--extra/mariabackup/xtrabackup.cc10
2 files changed, 22 insertions, 3 deletions
diff --git a/extra/mariabackup/backup_mysql.cc b/extra/mariabackup/backup_mysql.cc
index c79828b419c..6c04780b64d 100644
--- a/extra/mariabackup/backup_mysql.cc
+++ b/extra/mariabackup/backup_mysql.cc
@@ -56,8 +56,7 @@ this program; if not, write to the Free Software Foundation, Inc.,
#include "encryption_plugin.h"
#include <sstream>
#include <sql_error.h>
-#include <ut0ut.h>
-
+#include "page0zip.h"
char *tool_name;
char tool_args[2048];
@@ -353,6 +352,7 @@ get_mysql_vars(MYSQL *connection)
char *innodb_undo_directory_var = NULL;
char *innodb_page_size_var = NULL;
char *innodb_undo_tablespaces_var = NULL;
+ char *page_zip_level_var = NULL;
char *endptr;
unsigned long server_version = mysql_get_server_version(connection);
@@ -382,6 +382,7 @@ get_mysql_vars(MYSQL *connection)
{"innodb_undo_directory", &innodb_undo_directory_var},
{"innodb_page_size", &innodb_page_size_var},
{"innodb_undo_tablespaces", &innodb_undo_tablespaces_var},
+ {"innodb_compression_level", &page_zip_level_var},
{NULL, NULL}
};
@@ -515,7 +516,13 @@ get_mysql_vars(MYSQL *connection)
}
if (innodb_undo_tablespaces_var) {
- srv_undo_tablespaces = strtoul(innodb_undo_tablespaces_var, &endptr, 10);
+ srv_undo_tablespaces = strtoul(innodb_undo_tablespaces_var,
+ &endptr, 10);
+ ut_ad(*endptr == 0);
+ }
+
+ if (page_zip_level_var != NULL) {
+ page_zip_level = strtoul(page_zip_level_var, &endptr, 10);
ut_ad(*endptr == 0);
}
@@ -1663,6 +1670,7 @@ bool write_backup_config_file()
"innodb_page_size=%lu\n"
"innodb_undo_directory=%s\n"
"innodb_undo_tablespaces=%lu\n"
+ "innodb_compression_level=%u\n"
"%s%s\n"
"%s\n",
innodb_checksum_algorithm_names[srv_checksum_algorithm],
@@ -1672,6 +1680,7 @@ bool write_backup_config_file()
srv_page_size,
srv_undo_dir,
srv_undo_tablespaces,
+ page_zip_level,
innobase_buffer_pool_filename ?
"innodb_buffer_pool_filename=" : "",
innobase_buffer_pool_filename ?
diff --git a/extra/mariabackup/xtrabackup.cc b/extra/mariabackup/xtrabackup.cc
index fb045f1e3d8..41ab48ee53f 100644
--- a/extra/mariabackup/xtrabackup.cc
+++ b/extra/mariabackup/xtrabackup.cc
@@ -830,6 +830,7 @@ enum options_xtrabackup
OPT_XTRA_TABLES_EXCLUDE,
OPT_XTRA_DATABASES_EXCLUDE,
OPT_PROTOCOL,
+ OPT_INNODB_COMPRESSION_LEVEL,
OPT_LOCK_DDL_PER_TABLE,
OPT_ROCKSDB_DATADIR,
OPT_BACKUP_ROCKSDB,
@@ -1358,6 +1359,11 @@ struct my_option xb_server_options[] =
(G_PTR*)&srv_undo_tablespaces, (G_PTR*)&srv_undo_tablespaces,
0, GET_ULONG, REQUIRED_ARG, 0, 0, 126, 0, 1, 0},
+ {"innodb_compression_level", OPT_INNODB_COMPRESSION_LEVEL,
+ "Compression level used for zlib compression.",
+ (G_PTR*)&page_zip_level, (G_PTR*)&page_zip_level,
+ 0, GET_UINT, REQUIRED_ARG, 6, 0, 9, 0, 0, 0},
+
{"defaults_group", OPT_DEFAULTS_GROUP, "defaults group in config file (default \"mysqld\").",
(G_PTR*) &defaults_group, (G_PTR*) &defaults_group,
0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
@@ -1695,6 +1701,10 @@ xb_get_one_option(int optid,
ADD_PRINT_PARAM_OPT(innodb_checksum_algorithm_names[srv_checksum_algorithm]);
break;
+ case OPT_INNODB_COMPRESSION_LEVEL:
+ ADD_PRINT_PARAM_OPT(page_zip_level);
+ break;
+
case OPT_INNODB_BUFFER_POOL_FILENAME:
ADD_PRINT_PARAM_OPT(innobase_buffer_pool_filename);