aboutsummaryrefslogtreecommitdiff
path: root/ansible/roles/mariadb/templates/galera.cnf.j2
blob: e61ba9f6a4a20698b262f66a78a688b02bbb125a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
{%- set wsrep_driver = '/usr/lib/galera/libgalera_smm.so' if kolla_base_distro in ['debian', 'ubuntu'] else '/usr/lib64/galera/libgalera_smm.so' %}

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
basedir=/usr
bind-address={{ api_interface_address }}
port={{ mariadb_port }}
{% if database_enable_tls_backend | bool %}
ssl_ca=/etc/mariadb/certs/root.crt
ssl_cert=/etc/mariadb/certs/mariadb-cert.pem
ssl_key=/etc/mariadb/certs/mariadb-key.pem
{% endif %}
log_error=/var/log/kolla/mariadb/mariadb.log

log_bin=mysql-bin
binlog_format=ROW
expire_logs_days=14
default-storage-engine=innodb
innodb_autoinc_lock_mode=2

collation-server = utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

datadir=/var/lib/mysql/

wsrep_cluster_address=gcomm://{% if (groups[mariadb_shard_group] | length) > 1 %}{% for host in groups[mariadb_shard_group] %}{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ mariadb_wsrep_port }}{% if not loop.last %},{% endif %}{% endfor %}{% endif %}

wsrep_provider_options={% if primary_host_on_recovery is defined and primary_host_on_recovery %}pc.bootstrap=yes;{% endif %}gmcast.listen_addr=tcp://{{ api_interface_address | put_address_in_context('url') }}:{{ mariadb_wsrep_port }};ist.recv_addr={{ api_interface_address | put_address_in_context('url') }}:{{ mariadb_ist_port }};{% for option in mariadb_wsrep_extra_provider_options %}{{ option }}{% if not loop.last %};{% endif %}{% endfor %}

wsrep_node_address={{ api_interface_address | put_address_in_context('url') }}:{{ mariadb_wsrep_port }}

wsrep_sst_receive_address={{ api_interface_address | put_address_in_context('url') }}:{{ mariadb_sst_port }}

wsrep_provider={{ wsrep_driver }}
wsrep_cluster_name="{{ database_cluster_name }}"
wsrep_node_name={{ ansible_facts.hostname }}
wsrep_sst_method={{ mariadb_wsrep_sst_method }}
wsrep_sst_auth={{ database_user }}:{{ database_password }}
wsrep_slave_threads=4
wsrep_on = ON

max_connections=10000

key_buffer_size = '64M'
max_heap_table_size = '64M'
tmp_table_size = '64M'
{% set dynamic_pool_size_mb = (hostvars[inventory_hostname].ansible_facts.memtotal_mb * 0.4) | round | int %}
{% if dynamic_pool_size_mb < 8192 %}
innodb_buffer_pool_size = '{{ dynamic_pool_size_mb }}M'
{% else %}
innodb_buffer_pool_size = '8192M'
{% endif %}
{# NOTE(mnasiadka): These options are recommended in #}
{# https://mariadb.com/docs/galera-cluster/galera-management/configuration/configuring-mariadb-galera-cluster#performance-related-options #}
innodb_flush_log_at_trx_commit = 0
innodb_autoinc_lock_mode = 2

[server]
pid-file=/var/lib/mysql/mariadb.pid

[sst]
{% if mariadb_wsrep_sst_method == 'mariabackup' and api_address_family == 'ipv6' %}
# NOTE(yoctozepto): for IPv6 we need to tweak sockopt for socat (mariabackup sst backend)
# see: https://mariadb.com/kb/en/library/xtrabackup-v2-sst-method/#performing-ssts-with-ipv6-addresses
# and: https://jira.mariadb.org/browse/MDEV-18797
# this can be removed when MDEV-18797 is resolved
sockopt=",pf=ip6"
{% endif %}