首页 > 其他 > 详细

主从复制语法

时间:2020-07-30 09:49:20      阅读:90      评论:0      收藏:0      [点我收藏+]
CHANGE MASTER TO option [, option] ... [ channel_option ]

option: {
    MASTER_BIND = interface_name
  | MASTER_HOST = host_name
  | MASTER_USER = user_name
  | MASTER_PASSWORD = password
  | MASTER_PORT = port_num
  | PRIVILEGE_CHECKS_USER = {account | NULL}
  | REQUIRE_ROW_FORMAT = {0|1}
  | REQUIRE_TABLE_PRIMARY_KEY_CHECK = {STREAM | ON | OFF}
  | MASTER_CONNECT_RETRY = interval
  | MASTER_RETRY_COUNT = count
  | MASTER_DELAY = interval
  | MASTER_HEARTBEAT_PERIOD = interval
  | MASTER_LOG_FILE = source_log_name
  | MASTER_LOG_POS = source_log_pos
  | MASTER_AUTO_POSITION = {0|1}
  | RELAY_LOG_FILE = relay_log_name
  | RELAY_LOG_POS = relay_log_pos
  | MASTER_COMPRESSION_ALGORITHMS = value
  | MASTER_ZSTD_COMPRESSION_LEVEL = level
  | MASTER_SSL = {0|1}
  | 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 = {0|1}
  | MASTER_TLS_VERSION = protocol_list
  | MASTER_TLS_CIPHERSUITES = ciphersuite_list
  | MASTER_PUBLIC_KEY_PATH = key_file_name
  | GET_MASTER_PUBLIC_KEY = {0|1}
  | IGNORE_SERVER_IDS = (server_id_list)
}

channel_option:
    FOR CHANNEL channel

server_id_list:
    [server_id [, server_id] ... ]

假如使用binlog+position的方式:

change master to  MASTER_HOST = ‘host_name‘  ,MASTER_USER = ‘user_name‘ , MASTER_PASSWORD = ‘password‘  MASTER_PORT = port_num , MASTER_LOG_FILE = ‘source_log_name‘ ,MASTER_LOG_POS = source_log_pos

对应的主机名,用户,密码,端口号,二进制日志文件名,二进制日志位置。这些有了就OK了。

GTID模式

change master to  MASTER_HOST = ‘host_name‘  ,MASTER_USER = ‘user_name‘ , MASTER_PASSWORD = ‘password‘  MASTER_PORT = port_num ,MASTER_AUTO_POSITION = {0|1}

 

假如开启了GTID模式(变量gtid_mode=on),这是就可以用GTID去替代binlog和pos了,GTID是全局事务ID,GTID=server_uuid:transaction_id.

其中server_uuid是在数据库启动过程中自动生成的,每台机器的server——uuid不一样,保存在数据目录的auto.cnf文件中。transaction_id就是事务提交时服务器分配的一个不会重复的序列号。

如果用mysqldump备份数据,那在备份后的数据中会记录一行set @@global.GTID_PURGED=***;如果是用xtrabackup备份,备份后的文件中会直接记录需要跳过的GTID。

mysql5.7版本之后新增了一张表gitd_executed,该表会记录已经执行的GTID的信息。这个时候就不用像5.6版本中必须开始log_slave_updates参数了,此参数是开启从库复制的二进制log.

binlog不可能永久停留在服务器上,需要进行定期清理(如通过expire_logs_days),否则迟早它会把磁盘空间用完。gtid_purged用于记录已经被清除了的binlog事务集合,它是gtid_executed的子集。只有gtid_executed为空时才能手动设置该变量,此时会同时更新gtid_executed为和gtid_purged相同的值。gtid_executed为空意味着要么之前没有启动过基于GTID的复制,要么执行过reset master。执行reset master时同样也会把gtid_purged置空,即始终保持gtid_purged是gtid_executed的子集。

 

 

 

 

主从复制语法

原文:https://www.cnblogs.com/wonchaofan/p/13401678.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!