Saltstack Official Galera Formula
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

190 lines
5.3KB

  1. # All files in this package is subject to the GPL v2 license
  2. # More information is in the COPYING file in the top directory of this package.
  3. # Copyright (C) 2011 severalnines.com
  4. {%- if pillar.galera.master is defined %}
  5. {%- from "galera/map.jinja" import master with context %}
  6. {%- set service = master %}
  7. {%- endif %}
  8. {%- if pillar.galera.slave is defined %}
  9. {%- from "galera/map.jinja" import slave with context %}
  10. {%- set service = slave %}
  11. {%- endif %}
  12. [MYSQLD]
  13. user=mysql
  14. basedir=/usr/
  15. datadir=/var/lib/mysql
  16. socket={{ service.socket }}
  17. pid_file=mysqld.pid
  18. port=3306
  19. log_error={{ service.log_file }}
  20. log_warnings=2
  21. #log_output=FILE
  22. ### INNODB OPTIONS
  23. innodb_buffer_pool_size=9211M
  24. innodb_flush_log_at_trx_commit=2
  25. innodb_file_per_table=1
  26. innodb_data_file_path = ibdata1:100M:autoextend
  27. ## You may want to tune the below depending on number of cores and disk sub
  28. innodb_read_io_threads=4
  29. innodb_write_io_threads=4
  30. innodb_io_capacity=200
  31. innodb_doublewrite=1
  32. innodb_log_file_size=1024M
  33. innodb_log_buffer_size=96M
  34. innodb_buffer_pool_instances=8
  35. innodb_log_files_in_group=2
  36. innodb_thread_concurrency=64
  37. #innodb_file_format=barracuda
  38. innodb_flush_method = O_DIRECT
  39. innodb_autoinc_lock_mode=2
  40. ## avoid statistics update when doing e.g show tables
  41. innodb_stats_on_metadata=0
  42. default_storage_engine=innodb
  43. bind-address={{ service.bind.address }}
  44. # CHARACTER SET
  45. #collation_server = utf8_unicode_ci
  46. #init_connect='SET NAMES utf8'
  47. character_set_server = utf8
  48. # REPLICATION SPECIFIC
  49. #server_id must be unique across all mysql servers participating in replication.
  50. #server_id=SERVERID
  51. binlog_format=ROW
  52. #log_slave_updates=1
  53. #log_bin=binlog
  54. #relay_log=relay-bin
  55. #expire_logs_days=7
  56. #gtid_mode=ON
  57. #enforce_gtid_consistency=1
  58. # OTHER THINGS, BUFFERS ETC
  59. key_buffer_size = 24M
  60. tmp_table_size = 64M
  61. max_heap_table_size = 64M
  62. max_allowed_packet = 512M
  63. #sort_buffer_size = 256K
  64. #read_buffer_size = 256K
  65. #read_rnd_buffer_size = 512K
  66. #myisam_sort_buffer_size = 8M
  67. skip_name_resolve
  68. memlock=0
  69. sysdate_is_now=1
  70. max_connections={{ service.get('max_connections', 20000) }}
  71. thread_cache_size=512
  72. query_cache_type = 0
  73. query_cache_size = 0
  74. table_open_cache=1024
  75. lower_case_table_names=0
  76. # 5.6 backwards compatibility
  77. #explicit_defaults_for_timestamp=1
  78. ##
  79. ## WSREP options
  80. ##
  81. # Full path to wsrep provider library or 'none'
  82. wsrep_provider={{ service.wsrep_provider }}
  83. wsrep_node_address={{ service.bind.address }}
  84. # Provider specific configuration options
  85. wsrep_provider_options="gcache.size=8192M"
  86. # Logical cluster name. Should be the same for all nodes.
  87. wsrep_cluster_name="my_wsrep_cluster"
  88. # Group communication system handle
  89. #wsrep_cluster_address=gcomm://10.0.0.3:4567,10.0.0.4:4567,10.0.0.2:4567
  90. wsrep_cluster_address=gcomm://{% for member in service.members %}{{ member.host}}{% if not loop.last %},{% endif %}{% endfor %}
  91. # Human_readable node name (non-unique). Hostname by default.
  92. wsrep_node_name={{ service.bind.address }}
  93. # Address for incoming client connections. Autodetect by default.
  94. #wsrep_node_incoming_address=
  95. # How many threads will process writesets from other nodes
  96. wsrep_slave_threads=8
  97. # DBUG options for wsrep provider
  98. #wsrep_dbug_option
  99. # Generate fake primary keys for non-PK tables (required for multi-master
  100. # and parallel applying operation)
  101. wsrep_certify_nonPK=1
  102. # Location of the directory with data files. Needed for non-mysqldump
  103. # state snapshot transfers. Defaults to mysql_real_data_home.
  104. #wsrep_data_home_dir=
  105. # Maximum number of rows in write set
  106. wsrep_max_ws_rows=131072
  107. # Maximum size of write set
  108. wsrep_max_ws_size=1073741824
  109. # to enable debug level logging, set this to 1
  110. wsrep_debug=0
  111. # convert locking sessions into transactions
  112. wsrep_convert_LOCK_to_trx=0
  113. # how many times to retry deadlocked autocommits
  114. wsrep_retry_autocommit=1
  115. # change auto_increment_increment and auto_increment_offset automatically
  116. wsrep_auto_increment_control=1
  117. # replicate myisam
  118. wsrep_replicate_myisam=1
  119. # retry autoinc insert, which failed for duplicate key error
  120. wsrep_drupal_282555_workaround=0
  121. # enable "strictly synchronous" semantics for read operations
  122. wsrep_causal_reads=0
  123. # Command to call when node status or cluster membership changes.
  124. # Will be passed all or some of the following options:
  125. # --status - new status of this node
  126. # --uuid - UUID of the cluster
  127. # --primary - whether the component is primary or not ("yes"/"no")
  128. # --members - comma-separated list of members
  129. # --index - index of this node in the list
  130. #wsrep_notify_cmd=
  131. ##
  132. ## WSREP State Transfer options
  133. ##
  134. # State Snapshot Transfer method
  135. # ClusterControl currently DOES NOT support wsrep_sst_method=mysqldump
  136. wsrep_sst_method=xtrabackup
  137. # Address on THIS node to receive SST at. DON'T SET IT TO DONOR ADDRESS!!!
  138. # (SST method dependent. Defaults to the first IP of the first interface)
  139. #wsrep_sst_receive_address=
  140. # SST authentication string. This will be used to send SST to joining nodes.
  141. # Depends on SST method. For mysqldump method it is root:<root password>
  142. wsrep_sst_auth={{ service.admin.user }}:{{ service.admin.password }}
  143. # Desired SST donor name.
  144. #wsrep_sst_donor=
  145. # Protocol version to use
  146. # wsrep_protocol_version=
  147. [MYSQL]
  148. socket={{ service.socket }}
  149. #default_character_set=utf8
  150. [client]
  151. socket={{ service.socket }}
  152. default_character_set=utf8
  153. [mysqldump]
  154. max_allowed_packet = 512M
  155. socket={{ service.socket }}
  156. default_character_set=utf8
  157. [MYSQLD_SAFE]
  158. pid_file=mysqld.pid
  159. log_error={{ service.log_file }}
  160. basedir=/usr/
  161. datadir=/var/lib/mysql