diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2017-01-31 12:13:29 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2017-02-01 16:12:13 -0500 |
commit | 621ea892a299d2029348db2b56fea1338bd41c48 (patch) | |
tree | b40d9f7ae4cfc59a4cf35ff64efbfc389017a8d0 | |
parent | 875a9f90157f235334cd224d84fecc3d5c3cc814 (diff) |
set innodb_file_per_table to ON for MySQL / Galera
InnoDB uses a single file by default which can grow to be
tens/hundreds of gigabytes, and is not shrinkable even
if data is deleted from the database.
Best practices are that innodb_file_per_table is set to ON
which instead stores each database table in its own file, each of
which is also shrinkable by the InnoDB engine.
Closes-Bug: #1660722
Change-Id: I59ee53f6462a2eeddad72b1d75c77a69322d5de4
-rw-r--r-- | manifests/profile/base/database/mysql.pp | 15 | ||||
-rw-r--r-- | manifests/profile/pacemaker/database/mysql.pp | 1 | ||||
-rw-r--r-- | releasenotes/notes/innodb_file_per_table-f925b3bbf29d44ea.yaml | 20 |
3 files changed, 29 insertions, 7 deletions
diff --git a/manifests/profile/base/database/mysql.pp b/manifests/profile/base/database/mysql.pp index 4ccfabc..d3c3f21 100644 --- a/manifests/profile/base/database/mysql.pp +++ b/manifests/profile/base/database/mysql.pp @@ -119,13 +119,14 @@ class tripleo::profile::base::database::mysql ( # MysqlNetwork and ControllerHostnameResolveNetwork in ServiceNetMap $mysql_server_default = { 'mysqld' => { - 'bind-address' => $bind_address, - 'max_connections' => hiera('mysql_max_connections'), - 'open_files_limit' => '-1', - 'ssl' => $enable_internal_tls, - 'ssl-key' => $tls_keyfile, - 'ssl-cert' => $tls_certfile, - 'ssl-ca' => undef, + 'bind-address' => $bind_address, + 'max_connections' => hiera('mysql_max_connections'), + 'open_files_limit' => '-1', + 'innodb_file_per_table' => 'ON', + 'ssl' => $enable_internal_tls, + 'ssl-key' => $tls_keyfile, + 'ssl-cert' => $tls_certfile, + 'ssl-ca' => undef, } } $mysql_server_options_real = deep_merge($mysql_server_default, $mysql_server_options) diff --git a/manifests/profile/pacemaker/database/mysql.pp b/manifests/profile/pacemaker/database/mysql.pp index 6a83f10..ca9a1a8 100644 --- a/manifests/profile/pacemaker/database/mysql.pp +++ b/manifests/profile/pacemaker/database/mysql.pp @@ -75,6 +75,7 @@ class tripleo::profile::pacemaker::database::mysql ( 'default-storage-engine' => 'innodb', 'innodb_autoinc_lock_mode' => '2', 'innodb_locks_unsafe_for_binlog'=> '1', + 'innodb_file_per_table' => 'ON', 'query_cache_size' => '0', 'query_cache_type' => '0', 'bind-address' => $bind_address, diff --git a/releasenotes/notes/innodb_file_per_table-f925b3bbf29d44ea.yaml b/releasenotes/notes/innodb_file_per_table-f925b3bbf29d44ea.yaml new file mode 100644 index 0000000..e0b7c3c --- /dev/null +++ b/releasenotes/notes/innodb_file_per_table-f925b3bbf29d44ea.yaml @@ -0,0 +1,20 @@ +--- +features: + - Enable innodb_file_per_table for MySQL/MariaDB databases +upgrade: + - | + Newly created MySQL database tables will be stored in their own datafiles, + instead of in a single monolithic ibdata file. + - | + Existing MySQL database tables that are persisted within the monolithic + ibdata file will remain so unless the database is migrated as well. + - | + Migration of all current database tables out of the monolithic ibdata + file is possible by dumping and restoring the whole database to a new data + directory, however when using Galera the entire cluster must be shut + down and upgraded at once. + - | + Migration of individual tables to datafiles is possible using the + MySQL command "ALTER TABLE <databasename>.<tablename> ENGINE=InnoDB;", + however this will not shrink the ibdata file and also is not safe to run + on a running Galera cluster for large tables. |