Configuring Nodes for Write-Set Replication¶
After installing Percona XtraDB Cluster on a node, configure it with information about the cluster.
Note
Make sure that the Percona XtraDB Cluster server is not running.
$ sudo service mysql stop
Configuration examples assume there are three Percona XtraDB Cluster nodes:
Node | Host | IP |
---|---|---|
Node 1 | pxc1 | 192.168.70.61 |
Node 2 | pxc2 | 192.168.70.62 |
Node 3 | pxc3 | 192.168.70.63 |
If you are running Debian or Ubuntu, add the following configuration variables to /etc/percona-xtradb-cluster.conf.d/wsrep.cnf on the first node:
[mysqld]
wsrep_provider=/usr/lib/libgalera_smm.so
wsrep_cluster_name=pxc-cluster
wsrep_cluster_address=gcomm://192.168.70.61,192.168.70.62,192.168.70.63
wsrep_node_name=pxc1
wsrep_node_address=192.168.70.61
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=sstuser:passw0rd
pxc_strict_mode=ENFORCING
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
If you are running Red Hat or CentOS, add the following configuration variables to /etc/percona-xtradb-cluster.conf.d/wsrep.cnf on the first node:
[mysqld]
wsrep_provider=/usr/lib64/galera3/libgalera_smm.so
wsrep_cluster_name=pxc-cluster
wsrep_cluster_address=gcomm://192.168.70.61,192.168.70.62,192.168.70.63
wsrep_node_name=pxc1
wsrep_node_address=192.168.70.61
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=sstuser:passw0rd
pxc_strict_mode=ENFORCING
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
Use the same configuration for the second and third nodes,
except the wsrep_node_name
and wsrep_node_address
variables:
- For the second node:
wsrep_node_name=pxc2
wsrep_node_address=192.168.70.62
- For the third node:
wsrep_node_name=pxc3
wsrep_node_address=192.168.70.63
Configuration Reference¶
Specify the path to the Galera library.
Note
The location depends on the distribution:
-
Debian or Ubuntu:
/usr/lib/libgalera_smm.so
-
Red Hat or CentOS:
/usr/lib64/galera3/libgalera_smm.so
Specify the logical name for your cluster. It must be the same for all nodes in your cluster.
Specify the IP addresses of nodes in your cluster. At least one is required for a node to join the cluster, but it is recommended to list addresses of all nodes. This way if the first node in the list is not available, the joining node can use other addresses.
Note
No addresses are required for the initial node in the cluster. However, it is recommended to specify them and properly bootstrap the first node. This will ensure that the node is able to rejoin the cluster if it goes down in the future.
Specify the logical name for each individual node. If this variable is not specified, the host name will be used.
Specify the IP address of this particular node.
By default, Percona XtraDB Cluster uses Percona XtraBackup for State Snapshot Transfer (SST).
Setting wsrep_sst_method=xtrabackup-v2
is highly recommended.
This method requires a user for SST to be set up on the initial node.
Provide SST user credentials with the wsrep_sst_auth
variable.
Specify authentication credentials for SST as <sstuser>:<sst_pass>
.
You must create this user when Bootstrapping the First Node and provide necessary privileges for it:
mysql> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'passw0rd';
mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO
'sstuser'@'localhost';
mysql> FLUSH PRIVILEGES;
For more information, see Privileges for Percona XtraBackup.
PXC Strict Mode is enabled by default and set to ENFORCING
, which blocks the use of experimental and unsupported features in Percona XtraDB Cluster.
Galera supports only row-level replication, so set binlog_format=ROW
.
Galera fully supports only the InnoDB storage engine.
It will not work correctly with MyISAM
or any other non-transactional storage engines.
Set this variable to default_storage_engine=InnoDB
.
Galera supports only interleaved (2
) lock mode for InnoDB.
Setting the traditional (0
) or consecutive (1
) lock mode
can cause replication to fail due to unresolved deadlocks.
Set this variable to innodb_autoinc_lock_mode=2
.
Next Steps¶
After you configure all your nodes, initialize Percona XtraDB Cluster by bootstrapping the first node according to the procedure described in Bootstrapping the First Node.