首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法检测到pt表校验和差,因为没有找到从站(1)。

无法检测到pt表校验和差,因为没有找到从站(1)。
EN

Database Administration用户
提问于 2013-07-05 15:14:01
回答 1查看 3.1K关注 0票数 2

我对Percona工具很陌生。我试图按以下方式使用pt-table-checksum

代码语言:javascript
复制
pt-table-checksum h=localhost -u root -p xyz--replicate=percona.checksums --create-replicate-table --databases=mysql

但要找出错误。

代码语言:javascript
复制
Diffs cannot be detected because no slaves were found

Please read the --recursion-method documentation for information.

My.cnf

代码语言:javascript
复制
#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吗?它是如何工作的呢?

EN

回答 1

Database Administration用户

发布于 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 ( id int(11) NULL AUTO_INCREMENT,parent\_id int(11)默认NULL,dsn varchar(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

试试看!!

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/45779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档