mariadb multi-source replication(mariadb多主复制),在mariadb-10.0里面加入了多主复制功能.
修改过的语法:
针对每个复制线程会有一个对应的connection_name,而connection_name是default_master_connection变量的值,如果你要操作对应的复制线程,需要将这个变量设置为对应的复制线程的名字。
connection_name的值是长度小于64的任何字符串,并且对大小写不敏感。你需要尽量让连接名固定,因为它会被作为文件名的一部分。
以下是新增加的一些语法:
关注点主要在connection_name,也就是在以前的语法上增加了connection_name,如果没加connection_name,那么默认的就是空(”).
- CHANGE MASTER ['connection_name'] …
- FLUSH RELAY LOGS ['connection_name']
- MASTER_POS_WAIT(….,['connection_name'])
- RESET SLAVE ['connection_name']
- SHOW RELAYLOG ['connection_name'] EVENTS
- SHOW SLAVE ['connection_name'] STATUS
- SHOW ALL SLAVES STATUS
- START SLAVE ['connection_name'...]]
- START ALL SLAVES …
- STOP SLAVE ['connection_name'] …
- 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形成对比的是,所有的变量总是显示正确的有效的值.
例如:
- set @@default_master_connection=”;
- show status like ‘Slave_running’;
- set @@default_master_connection=’other_connection’;
- 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请求一个心跳包(以秒计算)。
还没有人抢沙发呢~