我对Percona工具很陌生。我试图按以下方式使用pt-table-checksum:
pt-table-checksum h=localhost -u root -p xyz--replicate=percona.checksums --create-replicate-table --databases=mysql但要找出错误。
Diffs cannot be detected because no slaves were found
Please read the --recursion-method documentation for information.My.cnf
#password = your_password
port = 3306
socket = /tmp/mysql.sock
default-character-set=utf8
[mysqld]
datadir=/spacedb
socket=/tmp/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
init-connect='SET NAMES utf8'
character-set-server = utf8
max_connections = 300
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysqladmin]
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
default-character-set=utf8
[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
user = multi_admin
password = user
[mysqld1]
socket = /tmp/mysql.sock
port = 3306
pid-file = /var/run/mysqld/mysqld.pid
datadir = /spacedb
language = /usr/share/mysql/english
server-id = 1
log-bin = mysql-bin
binlog_format = mixed
# Expire_logs + MaxBinlogSize
expire_logs_days = 7
max_binlog_size = 100M
sync_binlog = 1
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout=1
init-connect='SET NAMES utf8'
character-set-server = utf8
max_connections = 300
[mysqld2]
socket = /tmp/mysql.sock2
port = 3307
pid-file = /var/run/mysqld/mysqld2.pid
datadir = /repdb
language = /usr/share/mysql/english
server-id = 2
relay-log = mysqld2-relay-bin
innodb_lock_wait_timeout=1
init-connect='SET NAMES utf8'
character-set-server = utf8我必须使用DSN吗?它是如何工作的呢?
发布于 2013-07-05 17:13:11
根据文档 on --recursion-method
发现副本的首选递归方法。可能的方法有:方法使用=========== ==================处理列表显示processlist主机从表显示从主机dsn=DSN DSNs处理列表方法是默认的,因为显示从主机是不可靠的。但是,如果服务器使用非标准端口(而不是3306),主机方法可以更好地工作。该工具通常做正确的事情,并找到所有的副本,但您可以给出一个首选的方法,它将首先使用。主机方法需要用report_host、report_port等配置副本。dsn方法是特殊的:它指定一个表,从中读取其他DSN字符串。指定的DSN必须指定D和t或数据库限定的t。DSN表应该具有以下结构:创建表
dsns(idint(11) NULL AUTO_INCREMENT,parent\_idint(11)默认NULL,dsnvarchar(255) NOT NULL,主键(id) );要使工具仅监视主机10.10.1.16和10.10.1.17的复制滞后和校验和差异,请将值h=10.10.1.16和h=10.10.1.17插入到表中。目前,DSNs是按id排序的,而id和parent_id则被忽略。
如果你愿意的话,你可以为DSN做这个设置,但是你还不需要走那么远。为什么?
默认的--recursion-method是进程列表。这仅仅意味着您没有在端口3307实例上运行START SLAVE;。不能在停止所有从站的母版上使用--recursion-method处理列表。当您在端口3307上运行START SLAVE;时,DB连接应该出现在主程序(3306实例)的处理器列表中(3307实例)。有鉴于此,您应该只需在端口3307上运行START SLAVE;,然后运行pt-table-checksum。
试试看!!
https://dba.stackexchange.com/questions/45779
复制相似问题