纵有疾风起
人生不言弃

mysql之mariadb多主复制

mariadb multi-source replication(mariadb多主复制),在mariadb-10.0里面加入了多主复制功能.

修改过的语法:

针对每个复制线程会有一个对应的connection_name,而connection_name是default_master_connection变量的值,如果你要操作对应的复制线程,需要将这个变量设置为对应的复制线程的名字。

connection_name的值是长度小于64的任何字符串,并且对大小写不敏感。你需要尽量让连接名固定,因为它会被作为文件名的一部分。

以下是新增加的一些语法:

关注点主要在connection_name,也就是在以前的语法上增加了connection_name,如果没加connection_name,那么默认的就是空(”).

  1. CHANGE MASTER [‘connection_name’] … 
  2. FLUSH RELAY LOGS [‘connection_name’
  3. MASTER_POS_WAIT(….,[‘connection_name’]) 
  4. RESET SLAVE [‘connection_name’
  5. SHOW RELAYLOG [‘connection_name’] EVENTS 
  6. SHOW SLAVE [‘connection_name’] STATUS 
  7. SHOW ALL SLAVES STATUS 
  8. START SLAVE [‘connection_name’…]] 
  9. START ALL SLAVES … 
  10. STOP SLAVE [‘connection_name’] … 
  11. STOP ALL SLAVES … 

原来的老式的连接是一个空字符串 ”,如果你不想用的话可以不用这个连接,你可以使用change master创建一个新的master 连接,你可以使用reset slave ‘connect_name’ ALL;完全的删除一个连接.

多源复制的变量

新复制变量 @@default_master_connection 指定了如果你不指定一个连接的话那个链接将会被命令和变量使用。

默认这个值是 ” (默认连接名)。下面的复制变量是针对局部的连接的(换句话说,他们显示了 @@default_master_connection 的值)。

我们正致力于将重要的对于连接局部化。

类型  名称  描述

变量 Max_relay_log_size  relay log的最大值. 如果是0的话,那么在启动的时候就会被设置成 max_binlog_size 的大小

状态 Slave_heartbeat_period  多久从master请求一个心跳包 (以秒计算).

状态 Slave_received_heartbeats  我们从master收到了多少个心跳包.

状态 Slave_running 显示slave是否正在运行,YESS表示 sql 和 IO 线程是活动的,No表示其中任意一个没在运行中,””表示 @@default_master_connection 不存在.

变量 Sql_slave_skip_counter  复制日志要忽略多少个条目,主要用在日志中有错误的情况下.

你可以用 SESSION 或者是 GLOBAL 访问以上所有的变量.

注意,和MySQL形成对比的是,所有的变量总是显示正确的有效的值.

例如:

  1. set @@default_master_connection=”; 
  2. show status like ‘Slave_running’; 
  3. set @@default_master_connection=’other_connection’; 
  4. show status like ‘Slave_running’; 

如果 @@default_master_connection 包含一个不存在的名称,你将收到一个警告,所有其他的master相关的变量都是全局的,并且影响 “” 连接或者是所有的连接,例如,Slave_retried_transactions 现在显示所有的slave的重试事务次数.

新添加的状态变量:

名称  描述

Com_start_all_slaves 执行 START ALL SLAVES 命令的次数.

Com_start_slave  执行 START SLAVE 命令的次数.取代了 Com_slave_start.

Com_stop_slave  执行 STOP SLAVE 命令的次数.取代了 Com_slave_stop.

Com_stop_all_slaves  执行 STOP ALL SLAVES 命令的次数/

SHOW ALL SLAVES STATUS 有以下的新的列:

名称  描述

Connection_name  master的连接名。 这是第一个变量

Slave_SQL_State  SQL 线程的状态

Retried_transactions 这个连接重试事务的次数。

Max_relay_log_size  这个连接的最大的relay日志的大小。

Executed_log_entries slave已经指向了多少个日志条目。

Slave_received_heartbeats 从master获得了多少个心跳。

Slave_heartbeat_period 多久从master请求一个心跳包(以秒计算)。

未经允许不得转载:起风网 » mysql之mariadb多主复制
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录