环境准备及服务器信息:

PXC5.7(Percona XtraDB Cluster)+HAproxy+Keepalived 集群部署

配置防火墙

firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --add-port=4567/tcp --permanent
firewall-cmd --add-port=4568/tcp --permanent
firewall-cmd --add-port=4444/tcp --permanent
firewall-cmd --reload


安装官方yum源repo配置文件

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

  

安装pxc

yum -y install Percona-XtraDB-Cluster-57
yum install Percona-Server-client-57

  

创建用户和组

groupadd mysql
useradd -g mysql -s /sbin/nologin mysql

  

创建目录并赋权

mkdir /data/mysql/{data,binlog,slow,logs} -p
touch /data/mysql/logs/mysqld.log
chown -R mysql:mysql /data/mysql


修改/etc/my.cnf配置文件

vi /etc/my.cnf
增加[mysqld] ##已知BUG
  1 vi /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
  2 替换为:
  3 [client]
  4 port = 3306
  5 socket = /data/mysql/data/mysql.sock
  6 default-character-set = utf8mb4
  7 
  8 [mysqld]
  9 # basic settings #
 10 user = mysql
 11 port=3306
 12 sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"
 13 autocommit = 1
 14 server-id=163
 15 character_set_server=utf8mb4
 16 init_connect='SET NAMES utf8'
 17 transaction_isolation = READ-COMMITTED
 18 lower_case_table_names = 1
 19 explicit_defaults_for_timestamp = 1
 20 max_allowed_packet = 16777216
 21 event_scheduler = 1
 22 datadir = /data/mysql/data
 23 basedir = /var/lib/mysql
 24 pid-file = /data/mysql/data/mysqld.pid
 25 socket = /data/mysql/data/mysql.sock
 26 default-time_zone = '+8:00'
 27 
 28 # connection #
 29 interactive_timeout = 1800
 30 wait_timeout = 1800
 31 lock_wait_timeout = 1800
 32 skip_name_resolve = 1
 33 max_connections = 5000
 34 max_connect_errors = 1000000
 35 
 36 # table cache performance settings
 37 table_open_cache = 4096
 38 table_definition_cache = 4096
 39 table_open_cache_instances = 128
 40 
 41 # session memory settings #
 42 read_buffer_size = 5M
 43 read_rnd_buffer_size = 10M
 44 sort_buffer_size = 10M
 45 tmp_table_size = 25M
 46 join_buffer_size = 40M
 47 thread_cache_size = 20M
 48 
 49 # log settings #
 50 log_error = /data/mysql/logs/mysqld.log
 51 slow_query_log_file = /data/mysql/slow/slow.log
 52 log-bin= /data/mysql/binlog/mysql-bin
 53 relay_log = mysql-relay-bin
 54 general_log_file= general.log
 55 
 56 slow_query_log = 1
 57 log_queries_not_using_indexes = 1
 58 log_slow_admin_statements = 1
 59 log_slow_slave_statements = 1
 60 log_throttle_queries_not_using_indexes = 10
 61 long_query_time = 1
 62 min_examined_row_limit = 100
 63 binlog-rows-query-log-events = 1
 64 log-bin-trust-function-creators = 1
 65 expire-logs-days = 7
 66 log-slave-updates = 1
 67 
 68 # innodb settings #
 69 innodb_page_size = 16384
 70 innodb_buffer_pool_size = 256M
 71 innodb_buffer_pool_instances = 8
 72 innodb_buffer_pool_load_at_startup = 1
 73 innodb_buffer_pool_dump_at_shutdown = 1
 74 innodb_lru_scan_depth = 4096
 75 innodb_lock_wait_timeout = 5
 76 innodb_io_capacity = 10000
 77 innodb_io_capacity_max = 20000
 78 innodb_flush_method = O_DIRECT
 79 innodb_file_format = Barracuda
 80 innodb_file_format_max = Barracuda
 81 
 82 #undo
 83 innodb_undo_directory = /data/mysql/data
 84 innodb_undo_logs = 128
 85 innodb_undo_tablespaces = 3
 86 
 87 #redo
 88 innodb_log_group_home_dir = /data/mysql/data
 89 innodb_log_file_size = 10M
 90 innodb_log_files_in_group = 2
 91 
 92 innodb_flush_neighbors = 0
 93 innodb_log_buffer_size = 16384
 94 innodb_purge_threads = 4
 95 innodb_large_prefix = 1
 96 innodb_thread_concurrency = 64
 97 innodb_print_all_deadlocks = 1
 98 innodb_strict_mode = 1
 99 innodb_sort_buffer_size = 16384
100 innodb_write_io_threads = 16
101 innodb_read_io_threads = 16 
102 innodb_file_per_table = 1
103 innodb_stats_persistent_sample_pages = 64
104 innodb_autoinc_lock_mode = 2
105 innodb_online_alter_log_max_size=100M
106 innodb_open_files=4096
107 
108 # replication settings #
109 master_info_repository = TABLE
110 relay_log_info_repository = TABLE
111 sync_binlog = 1
112 gtid_mode = on
113 enforce_gtid_consistency = 1
114 log_slave_updates
115 binlog_format = ROW
116 binlog_rows_query_log_events = 1
117 relay_log = relay.log
118 relay_log_recovery = 1
119 slave_skip_errors = ddl_exist_errors
120 slave-rows-search-algorithms = 'INDEX_SCAN,HASH_SCAN'
121 
122 [mysqld-5.6]
123 # metalock performance settings
124 metadata_locks_hash_instances=64
125 
126 [mysqld-5.7]
127 # new innodb settings #
128 loose_innodb_numa_interleave=1
129 innodb_buffer_pool_dump_pct = 40
130 innodb_page_cleaners = 16
131 innodb_undo_log_truncate = 1
132 innodb_max_undo_log_size = 100M #2G
133 innodb_purge_rseg_truncate_frequency = 128
134 # new replication settings #
135 slave-parallel-type = LOGICAL_CLOCK
136 slave-parallel-workers = 16
137 slave_preserve_commit_order=1
138 slave_transaction_retries=128
139 # other change settings #
140 binlog_gtid_simple_recovery=1
141 log_timestamps=system
142 show_compatibility_56=on
143 
144 # Disabling symbolic-links is recommended to prevent assorted security risks
145 symbolic-links=0
View Code

相关文章: