Replicación maestro-esclavo de MySQL (3) -Explicación detallada de los parámetros Change Master

Replicación maestro-esclavo de MySQL (3) -Explicación detallada de los parámetros Change Master

Al realizar la configuración de replicación maestro-esclavo de MySQL, el cambio de maestro se utiliza para configurar y cambiar los parámetros utilizados por el servidor esclavo para conectarse al servidor maestro, de modo que el servidor esclavo pueda leer el binlog del servidor maestro y el registro de retransmisión del servidor esclavo. Al mismo tiempo, actualice la información de master.info y relay-log.info. Antes de ejecutar la instrucción, si el subproceso IO y el subproceso SQL se han iniciado desde el servidor, deben detenerse (ejecute el comando detener esclavo).

1. Descripción general del comando de cambio maestro

El formato del comando cambiar maestro es el siguiente:

CHANGE MASTER TO option [, option] ...  
option:  
   MASTER_BIND = 'interface_name'  
   MASTER_HOST = 'host_name'  
   MASTER_USER = 'user_name'  
   MASTER_PASSWORD = 'password'  
   MASTER_PORT = port_num  
   MASTER_CONNECT_RETRY = interval  
   MASTER_RETRY_COUNT = count  
   MASTER_DELAY = interval  
   MASTER_HEARTBEAT_PERIOD = interval  
   MASTER_LOG_FILE = 'master_log_name'  
   MASTER_LOG_POS = master_log_pos  
   MASTER_AUTO_POSITION = {
   
   01}  
   RELAY_LOG_FILE = 'relay_log_name'  
   RELAY_LOG_POS = relay_log_pos  
   MASTER_SSL = {
   
   01}  
   MASTER_SSL_CA = 'ca_file_name'  
   MASTER_SSL_CAPATH = 'ca_directory_name'  
   MASTER_SSL_CERT = 'cert_file_name'  
   MASTER_SSL_CRL = 'crl_file_name'  
   MASTER_SSL_CRLPATH = 'crl_directory_name'  
   MASTER_SSL_KEY = 'key_file_name'  
   MASTER_SSL_CIPHER = 'cipher_list'  
   MASTER_SSL_VERIFY_SERVER_CERT = {
   
   01}  
   IGNORE_SERVER_IDS = (server_id_list)  
 server_id_list:  
    [server_id [, server_id] ... ]

La información después de ejecutar el comando cambiar maestro se guarda en dos archivos, master.info y relay-log.info.

[root@localhost ~]# ll /var/lib/mysql/*info
-rw-r-----. 1 mysql mysql 126 7月   5 11:52 /var/lib/mysql/master.info
-rw-r-----. 1 mysql mysql  61 7月   5 11:28 /var/lib/mysql/relay-log.info

Vea el contenido del archivo master.info:

[root@localhost ~]# cat /var/lib/mysql/master.info
25
mysql-bin.000014
1818
192.168.1.11
repl
123456
3306
60
0





0
30.000

0
95cfc8eb-2d58-11ea-840b-000c296166d5
86400


0


[root@localhost ~]# 

Vea el contenido del archivo relay-log.info:

[root@localhost ~]# cat /var/lib/mysql/relay-log.info
7
./mysql-relay-log.000002
1539
mysql-bin.000014
1818
0
0
1

[root@localhost ~]# 

El comando cambiar maestro involucra muchos parámetros.Cuando se ejecuta el comando cambiar maestro, si no se especifica un parámetro, el parámetro conserva el valor original o el valor predeterminado. Por lo tanto, si no es necesario cambiar algunos parámetros, se puede omitir el comando change master to.

Por ejemplo, si se cambia la contraseña de usuario utilizada para la replicación, cambiar maestro a solo necesita cambiar la opción MASTER_PASSWORD, el código es el siguiente:

mysql> stop slave;
Query OK, 0 rows affected (0.05 sec)

mysql> change master to master_password='123456';
Query OK, 0 rows affected, 2 warnings (0.02 sec)

mysql> start slave;
Query OK, 0 rows affected (0.01 sec)

2. Descripción detallada de los parámetros comunes del maestro de cambios

1 、 MASTER_HOST 与 MASTER_PORT

MASTER_HOST se usa para establecer el nombre de host (o dirección IP) del servidor maestro; MASTER_PORT se usa para establecer el número de puerto de la instancia de MySQL en el servidor maestro.
Si especifica los parámetros MASTER_HOST y MASTER_PORT, el esclavo pensará que no es el mismo que el especificado anteriormente (incluso si los parámetros MASTER_HOST y MASTER_PORT son los mismos que antes), el nombre y la ubicación del archivo binlog del maestro previamente especificado ya no se aplicarán.

P.ej:

change master to
....
master_host='192.168.1.11',
master_port=3306,
....;

2 、 MASTER_USER 与 MASTER_PASSWORD

Conéctese al nombre de usuario y la contraseña correspondientes a la cuenta de replicación del host maestro. Las cuatro opciones MASTER_HOST, MASTER_PORT, MASTER_USER y MASTER_PASSWORD proporcionan la información de cómo conectar el servidor esclavo al host maestro.

P.ej:

change master to
....
master_host='192.168.1.11',
master_port=3306,
master_user='repl',
master_password='123456',
....;

3 、 MASTER_LOG_FILE 与 MASTER_LOG_POS

Las dos opciones MASTER_LOG_FILE y MASTER_LOG_POS determinan las coordenadas de posición del hilo IO del esclavo que se leerán del maestro cuando comience a ejecutarse la próxima vez.
Las dos opciones RELAY_LOG_FILE y RELAY_LOG_POS determinan las coordenadas de posición del hilo SQL del esclavo que se leerán del registro del relé cuando comience a ejecutarse la próxima vez.
Si se especifica MASTER_LOG_FILE o MASTER_LOG_POS, no se pueden especificar RELAY_LOG_FILE o RELAY_LOG_POS, ni MASTER_AUTO_POSITION = 1.

P.ej:

change master to
....
master_host='192.168.1.11',
master_port=3306,
master_user='repl',
master_password='123456',
master_log_file='mysql-bin.000012',
master_log_pos=559,
....;

4 、 MASTER_AUTO_POSITION

Este parámetro se introdujo en la versión 5.6.5 de mysql.Si se usa MASTER_AUTO_POSITION = 1 cuando se ejecuta change master to, el servidor esclavo usará el protocolo de replicación basado en GTID cuando se conecte al servidor maestro.
Cuando utilice la replicación basada en GTID (MASTER_AUTO_POSITION = 1), primero habilite gtid_mode (establezca gtid-mode = ON en my.cnf).
Si desea restaurar a un protocolo de replicación basado en archivos después de usar GTID, debe especificar MASTER_AUTO_POSITION = 0 y MASTER_LOG_FILE y MASTER_LOG_POSITION al ejecutar el cambio de maestro a.

5 、 MASTER_CONNECT_RETRY

Establezca el tiempo de espera de tiempo de espera al volver a conectarse al maestro, el valor predeterminado es 60 segundos.

change master to
....
master_host='192.168.1.11',
master_port=3306,
master_user='repl',
master_password='123456',
master_log_file='mysql-bin.000012',
master_log_pos=559,
master_connect_retry=120,
....;

6 、 MASTER_RETRY_COUNT

Limite el número de reconexiones y actualice la columna Master_Retry_Count en la salida de mostrar estado del esclavo. El valor predeterminado es 24 * 3600 = 86400. MASTER_RETRY_COUNT = 0 significa tiempos de reconexión ilimitados.

P.ej:

change master to
....
master_host='192.168.1.11',
master_port=3306,
master_user='repl',
master_password='123456',
master_log_file='mysql-bin.000012',
master_log_pos=559,
master_connect_retry=120,
master_retry_count=0,
....;

7 、 MASTER_DELAY

El valor predeterminado de MASTER_DELAY es 0, y el rango de valores es de 0 a 2 ^ 31–1, lo que indica que el esclavo está al menos por detrás del tiempo de replicación del maestro. El evento del maestro no se ejecuta directamente, pero al menos hasta que el maestro ejecuta el evento después del intervalo de tiempo especificado por MASTER_DELAY.

P.ej:

change master to
....
master_host='192.168.1.11',
master_port=3306,
master_user='repl',
master_password='123456',
master_log_file='mysql-bin.000012',
master_log_pos=559,
master_connect_retry=120,
master_retry_count=0,
master_delay=86400,  --slave 延迟 24 小时
....;

8 、 MASTER_BIND

En la replicación esclava, se utiliza cuando el servidor esclavo tiene varias direcciones IP para determinar qué IP utilizar para conectarse al maestro.

change master to
....
master_host='192.168.1.11',
master_bin='192.168.12',
master_port=3306,
master_user='repl',
master_password='123456',
master_log_file='mysql-bin.000012',
master_log_pos=559,
master_connect_retry=120,
master_retry_count=0,
master_delay=86400,  --slave 延迟 24 小时
....;

9 、 IGNORE_SERVER_IDS = (lista_id_servidor)

server_id_list: [server_id [, server_id]…], seguido de 0 o más ID de servidor separados por comas, utilizado principalmente para replicación multimaestro o replicación en anillo, el servidor en el medio de la cadena de replicación es anormal, puede omitir La instancia de MySQL en cuestión.

mysql> CHANGE MASTER TO MASTER_HOST=xxx IGNORE_SERVER_IDS= [server_id [, server_id] ... ]

Para borrar la lista de hosts ignorados, use el siguiente comando:

mysql> CHANGE MASTER TO IGNORE_SERVER_IDS = ();

Supongo que te gusta

Origin blog.csdn.net/weixin_44377973/article/details/107137550
Recomendado
Clasificación