我们的奴隶,只用于备份,是不同步的。它在关键的限制下崩溃了。
我想找到一种不让主人离线就重新复制奴隶的方法,我知道我可以这样做,但我相信这是不可能的。
我有“高性能MySQL”在我的前面,它指向我的方向,特别是mk表同步。
在我的生活中,我无法让mk表同步工作。
我在奴隶身上是这样运行的:
root@machine:~# mk-table-sync --sync-to-master --dry-run 127.0.0.1
# Syncing h=127.0.0.1
# DELETE REPLACE INSERT UPDATE ALGORITHM EXIT DATABASE.TABLE
# 0 0 0 0 Chunk 0 database.case_study_product
# 0 0 0 0 Chunk 0 database.case_study_region
# 0 0 0 0 Chunk 0 database.case_study_sector
# 0 0 0 0 Chunk 0 database.contact
# 0 0 0 0 Chunk 0 database.contact_issue
# 0 0 0 0 Chunk 0 database.feedback
# 0 0 0 0 Chunk 0 database.feedback_rating
# 0 0 0 0 Chunk 0 database.feedback_usefulness
# 0 0 0 0 Chunk 0 database.help
# 0 0 0 0 Chunk 0 database.help_issue
# 0 0 0 0 Chunk 0 database.search_weight
# 0 0 0 0 Chunk 0 database.contented_content
# 0 0 0 0 Nibble 0 database.contented_content_index
# 0 0 0 0 Chunk 0 database.contented_content_log我知道一个事实,contented_content和contented_content_index是不同步的。但从我所知道的输出看来,maatkit认为一切都很好。
以下是从状态的输出:
mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.0.40.12
Master_User: rep1
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000023
Read_Master_Log_Pos: 25832973
Relay_Log_File: mysql-relay-bin.000002
Relay_Log_Pos: 19098703
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1452任何帮助,pointers...ask获得更多的info..etc
发布于 2009-11-17 12:34:08
在我的虚拟环境中进行了大量的绞尽脑汁和游戏之后,我就成功地将我的奴隶同步到了主人那里。
1)在主数据库(mydb)中,我要创建下表:
CREATE TABLE checksum (
db char(64) NOT NULL,
tbl char(64) NOT NULL,
chunk int NOT NULL,
boundaries char(100) NOT NULL,
this_crc char(40) NOT NULL,
this_cnt int NOT NULL,
master_crc char(40) NULL,
master_cnt int NULL,
ts timestamp NOT NULL,
PRIMARY KEY (db, tbl, chunk)
);2)在主服务器上运行以下命令:
mk-table-checksum -d mydb --replicate mydb.checksum 127.0.0.13)在奴隶上运行以下命令:
mk-table-sync -d mydb --replicate mydb.checksum --sync-to-master --no-foreign-key-checks --execute 127.0.0.1当我尝试在运行同步命令之前在从服务器上运行校验和复制命令时,没有做任何事情。
在我的示例中连接并工作的从服务器也禁用了外键检查,因为我们使用的是INNODB,并且在运行同步时会遇到外键约束问题。
发布于 2009-11-13 15:57:59
如果您安装了从服务器,可能会有所帮助:
mysql> STOP SLAVE;
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
mysql> START SLAVE;发布于 2009-11-13 18:50:38
在完成追赶之后,奴隶的数据将是不同的。运行mk表-校验和-首先在主服务器上复制,然后在从服务器上运行mk表同步-复制(在文档中有一个例子)。
我不清楚你对你的奴隶的状态有什么了解它只是告诉您它将检查哪些表以及使用什么同步算法。
https://serverfault.com/questions/84433
复制相似问题