mysql 日志同步 数据不同步_Mysql互为主从问题--日志同步数据不同步

Mysql互为主从问题--日志同步数据不同步

我搭建的是mysql互为主从 复制

两台机器的mysql环境完全相同

第一部分测试:

B为master A为slave的同步测试

在B上创建表lian,并插入数据

mysql> create table lian (a int,b char(10));

mysql> insert into lian (a,b)values(22,'hahah');

mysql> show tables;

+----------------+

| Tables_in_test |

+----------------+

| lian |

+----------------+

mysql> select * from lian;

+------+-------+

| a | b |

+------+-------+

| 22 | hahah |

+------+-------+

查看一下master-B的binlog日志,查看以上操作是否记录了日志:

cat mysql-bin.000002

.?Nh?@stdtestcreate table lian (a int,b char(10))??Nl>@stdtestinsert into lian (a,b)values(22,'hahah')

现在查看slave-A的relay日志,发现日志已经同步了

[root@XKWB5510 var]# cat XKWB5510-relay-bin.000003

.?Nh?@stdtestcreate table lian (a int,b char(10))??Nl>@stdtestinsert into lian (a,b)values(22,'hahah')

再在slave-A上看一下数据库是不是存在lian这个表:

mysql> use test;

Database changed

mysql> show tables;

+----------------+

| Tables_in_test |

+----------------+

| aniya |

|lian |

+----------------+

2 rows in set (0.00 sec)

现在说明数据B A 主 从 同步成功

---------------------------------------------------------------------------

第二部分测试:

A为master B为slave的同步测试

在A上创建表From246,并插入数据

mysql> use test;

mysql> show tables;

+----------------+

| Tables_in_test |

+----------------+

| A246 |

| aniya |

| lian |

+----------------+

3 rows in set (0.00 sec)

mysql> create table From246(Name varchar(255),Sex varchar(255),Age int(10));

mysql> show tables;

+----------------+

| Tables_in_test |

+----------------+

| A246 |

| From246 |

| aniya |

| lian |

+----------------+

4 rows in set (0.00 sec)

mysql> insert into From246 (Name,Sex,Age)values('Zhaoyj','Girl',24);

mysql> select * from From246;

+--------+------+------+

| Name | Sex | Age |

+--------+------+------+

| Zhaoyj | Girl | 24 |

+--------+------+------+

1 row in set (0.00 sec)

查看master-A的binlog日志,证明上述操作成功

[root@XKWB5510 var]# tail -1 mysql-bin.000002

testcreate table From246(Name varchar(255),Sex varchar(255),Age int(10))?N?R@stdtestinsert into From246 (Name,Sex,Age)values('Zhaoyj','Girl',24)

查看master-A的日志状态

[root@XKWB5510 var]# /usr/local/mysql/bin/mysqlbinlog mysql-bin.000003 |tail -15

/*!*/;

# at 702

#110926 14:01:51 server id 1 end_log_pos 838 Querythread_id=5exec_time=0error_code=0

SET TIMESTAMP=1317016911/*!*/;

create table From246(Name varchar(255),Sex varchar(255),Age int(10))

/*!*/;

# at 838

#110926 14:02:05 server id 1 end_log_pos 966 Querythread_id=5exec_time=0error_code=0

SET TIMESTAMP=1317016925/*!*/;

insert into From246 (Name,Sex,Age)values('Zhaoyj','Girl',24)

/*!*/;

DELIMITER ;

# End of log file

ROLLBACK /* added by mysqlbinlog */;

/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

查看relay-B的日志,同步日志成功

testcreate table From246(Name varchar(255),Sex varchar(255),Age int(10))?N?R@stdtestinsert into From246 (Name,Sex,Age)values('Zhaoyj','Girl',24)[root@XKWB5705 var]

查看relay-B日志状态,可以看到日志已经同步

[root@XKWB5705 var]# /usr/local/mysql/bin/mysqlbinlog XKWB5705-relay-bin.000005|tail -13

/usr/local/mysql/bin/mysqlbinlog: Character set '#28' is not a compiled character set and is not specified in the '/usr/local/mysql/share/mysql/charsets/Index.xml' file

#110926 14:01:51 server id 1 end_log_pos 838 Querythread_id=5exec_time=0error_code=0

SET TIMESTAMP=1317016911/*!*/;

create table From246(Name varchar(255),Sex varchar(255),Age int(10))

/*!*/;

# at 853

#110926 14:02:05 server id 1 end_log_pos 966 Querythread_id=5exec_time=0error_code=0

SET TIMESTAMP=1317016925/*!*/;

insert into From246 (Name,Sex,Age)values('Zhaoyj','Girl',24)

/*!*/;

DELIMITER ;

# End of log file

ROLLBACK /* added by mysqlbinlog */;

/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

但是数据却没有插入到relay-B的数据库

mysql> show tables;

+----------------+

| Tables_in_test |

+----------------+

| lian |

+----------------+

1 row in set (0.00 sec)

当我删除master-A上的表时,relay-B日志也同步了

[root@XKWB5705 var]# tail -4 XKWB5705-relay-bin.000005

??NS?@stdtestdrop table A246??NT@stdtestdrop table aniya??NSd@stdtestdrop table lian??NV?@stdtestdrop table From246

这是什么奇怪问题 ??

------------------------------------------------------------------------------

问题排查:

首先在Master-A上用

show processlist; 查看下进程是否Sleep太多。发现很正常

show master status; 也正常

再跑到Slave上查看 show slave status; 也正常

当我手动从A导入B数据时,发现一个问题:

mysql> load table From246 from master;

ERROR 1115 (42000): Unknown character set: 'gbk'

怀疑:难道是因为字符串的问题导致AB主从复制失败 ?

通过show character set 命令查看到

master-A有gbk字符集而slave-B没有

mysql> show character set;

+----------+-----------------------------+---------------------+--------+

| Charset | Description | Default collation | Maxlen |

+----------+-----------------------------+---------------------+--------+

| dec8 | DEC West European | dec8_swedish_ci | 1 |

| cp850 | DOS West European | cp850_general_ci | 1 |

| hp8 | HP West European | hp8_english_ci | 1 |

| koi8r | KOI8-R Relcom Russian | koi8r_general_ci | 1 |

| latin1 | cp1252 West European | latin1_swedish_ci | 1 |

| latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 |

| swe7 | 7bit Swedish | swe7_swedish_ci | 1 |

| ascii | US ASCII | ascii_general_ci | 1 |

| hebrew | ISO 8859-8 Hebrew | hebrew_general_ci | 1 |

| koi8u | KOI8-U Ukrainian | koi8u_general_ci | 1 |

| greek | ISO 8859-7 Greek | greek_general_ci | 1 |

| cp1250 | Windows Central European | cp1250_general_ci | 1 |

| gbk | GBK Simplified Chinese | gbk_chinese_ci | 2 |

| latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | 1 |

| armscii8 | ARMSCII-8 Armenian | armscii8_general_ci | 1 |

| utf8 | UTF-8 Unicode | utf8_general_ci | 3 |

| cp866 | DOS Russian | cp866_general_ci | 1 |

| keybcs2 | DOS Kamenicky Czech-Slovak | keybcs2_general_ci | 1 |

| macce | Mac Central European | macce_general_ci | 1 |

| macroman | Mac West European | macroman_general_ci | 1 |

| cp852 | DOS Central European | cp852_general_ci | 1 |

| latin7 | ISO 8859-13 Baltic | latin7_general_ci | 1 |

| cp1251 | Windows Cyrillic | cp1251_general_ci | 1 |

| cp1256 | Windows Arabic | cp1256_general_ci | 1 |

| cp1257 | Windows Baltic | cp1257_general_ci | 1 |

| binary | Binary pseudo charset | binary | 1 |

| geostd8 | GEOSTD8 Georgian | geostd8_general_ci | 1 |

+----------+-----------------------------+---------------------+--------+

27 rows in set (0.00 sec)

那现在应该是在启动mysql的时候统一他们的字符集

master-A: [root@XKWB5510 var]# /usr/local/mysql/bin/mysqld_safe --default-character-set=latin1 &

slave-B : [root@XKWB5705 var]# /usr/local/mysql/bin/mysqld_safe --default-character-set=latin1 &

再次在B上从A导入数据:

mysql> show tables;

Empty set (0.00 sec)

mysql> load table From246 from master;

Query OK, 0 rows affected (0.01 sec)

mysql> show tables;

+----------------+

| Tables_in_test |

+----------------+

| From246 |

+----------------+

1 row in set (0.00 sec)

现在字符集的问题解决了

---------------------------------------------------------------

现在手动启动一下“将日志应用于数据库”的线程:SLAVE start SQL_THREAD

和“把master段的日志写到本地”的线程:SLAVE start IO_THREAD

发现同步数据还是失败,那说明不是线程的问题

如果发现 Seconds_Behind_Master 为 (null)

解决:

stop slave;

set global sql_slave_skip_counter =1 ;

start slave;

之后Slave会和Master去同步 主要看Seconds_Behind_Master是否为0,直到为0时就已经同步了。。

-----------------------------------

slave B机器上master.info信息,与master A上的信息是否是同步的

mater A:

mysql> show master status\G;

*************************** 1. row ***************************

File: mysql-bin.000004

Position: 808

Binlog_Do_DB: test

Binlog_Ignore_DB: mysql

1 row in set (0.00 sec)

slave B:

[root@XKWB5705 var]# cat master.info

15

mysql-bin.000004

808

211.100.97.246

repl2

123456

3306

60

0

从以上可以看到是同步的

到目前为止我都没发现到底是什么问题导致“日志同步数据不同步” 很是纳闷

向高手们请教!!!!

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2011-09-26 17:40

浏览 316

评论

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574403.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UVALive 4764 dp

DES: 这是一个新的游戏。给你一套牌、编号从1到100000.正常来说。你手中的牌和这次翻的牌是一样的,就会加一分。但是。如果是999的话。加三分。所以问你最大的分是多少。 貌似是简单的DP吧。(DP菜鸟...再简单我也不会...T_T...)于是...我看懂…

mysql数据库事务命令_MySql学习18----数据库事务---命令使用(02)

本篇讲述数据库中非常重要的事务概念和如何使用MySQL命令行窗口来进行数据库的事务操作。下一篇会讲述如何使用JDBC进行数据库的事务操作。事务是指数据库中的一组逻辑操作,这个操作的特点就是在该组逻辑中,所有的操作要么全部成功,要么全部失…

iOS 高效 Mac 配置

https://testerhome.com/topics/3045 https://support.apple.com/zh-cn/HT201236转载于:https://www.cnblogs.com/mobilefeng/p/4701469.html

壁式框架内力计算_剪力墙结构设计计算要点和实例

剪力墙计算第5章剪力墙结构设计本章主要内容:5.1概述结构布置剪力墙的分类剪力墙的分析方法5.2整体剪力墙和整体小开口剪力墙的计算整体剪力墙的计算整体小开口剪力墙的计算5.3联肢剪力墙的计算双肢剪力墙的计算多肢墙的计算5.4壁式框架的计算计算简图内力计算位移的…

Linux删除文件夹命令

Linux删除文件夹命令 linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可。直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字 删除目录、文…

concat合并的数组会有顺序么_javascript concat 数组与数组或数组与字符串的合并

concat 方法将传入的数组或非数组值与原数组合并,组成一个新的数组并返回.concat()基本语法:array.concat(value1, value2, ..., valueN)concat()参数说明:参数名参数说明array原数组value1, value2, ..., valueN需要与原数组合并的数组或非数组值.conca…

C#调用mciSendString播放音频文件

mciSendString函数是一个WinAPI,主要用来向MCI(Media Control Interface)设备发送字符串命令。 一、函数的声明如下: private static extern long mciSendString(string command, //MCI命令字符串string returnString, //存放…

mysql 存json中文乱码怎么设置_json接口插入数据库中文乱码

现象:1. 数据库中文乱码控制台显示中文乱码加载的日志2016-08-28 16:00:42,894 org.nutz.dao.impl.DaoSupport$1.invoke(DaoSupport.java:174) DEBUG - JDBC URL --> jdbc:mysql://139.129.118.219:13306/CloudServer2016-08-28 16:00:42,989 org.nutz.dao.impl.…

[转]进程间通信 - ipcrm

ipcrm 命令删除一个或更多的消息队列、信号量集或者共享内存标识。 简介 ipcrm [ -M key | -m id | -Q key | -q id | -S key | -s id ] ... 错误的用法 ipcrm {shm|msg|sem} id... 1.使用说明 ipcrm -M shmkey 移除用shmkey创建的共享内存段 ipcrm -m shmid 移除用shmid标…

python批量修改文件名为excel中指定名称_在Python脚本的帮助下,使用excelsh中的名称映射重命名文件夹中的文件名...

在一个文件夹中有许多CSV文件我想重命名。有一个excel工作表,其中包含要重命名为文件夹的文件名。在文件夹中的文件名为测试数据?30四月.csv在测试数据?20四月.csv在测试数据18四月.csv等等而excel工作表包含的名称为0.25-测试数据4月30日0.9…

sequelize连接mysql_Sequelize没有连接mysql

文件config / config.json{"development": {"username": "root","password": null,"database": "example","host": "example.sqlite","dialect": "sqlite"},"stage…

java开发微信公众平台备忘

简单记录下前段时间开发的电子书的 公众平台的一些备忘及开发心得经验等 eclipse的一些技巧: 1.ctrlshifto 自动添加必要import空间及移除无用import 项目备忘说明 1.struts配置 :resources->struts.xml 经验心得: 1.struts在前台显示后台属性:${属性名称}&#…

java初级程序员_为什么现在JAVA初级程序员要求这么高?

为什么现在JAVA初级程序员要求这么高?举个例子,在90年代,我们吃的是什么?有像现在每天没肉吃就吃不下饭的时候吗?那在90年代我们的编程技术又是什么样的?是不是垃圾的再垃圾不过了?那时候是不是…

html5晋级之路-css背景

css背景: css允许应用纯色作为背景,也允许使用图片来创建相当复杂的效果。 background-attachment 背景图像书否固定或随页面的其余部分滚动 background-color 设置元素的背景颜色 background-image 把…

java word在线预览_java 生成word文档并且在线预览的问题

富文本?用iText或者PD4ML直接转换为pdf[code"java"]String outputFile "D:/Test/demo_3.pdf";OutputStream os new FileOutputStream(outputFile);ITextRenderer renderer new ITextRenderer();ITextFontResolver fontResolver renderer.ge…

java中引用

谈论Java肯定离不开其中的垃圾回收机制,无论是通过引用计数算法判断对象的引用数量,还是通过根搜索算法判断对象的引用链是否可达,判断对象是否存活都与“引用”有关。 在JDK1.2之前,Java中引用的定义很传统:如果refer…

SQL SERVER 2014 各个版本支持的功能

转自:https://technet.microsoft.com/library/cc645993 转换箱规模限制 功能名称EnterpriseBusiness IntelligenceStandardWebExpress with Advanced ServicesExpress with ToolsExpress单个实例使用的最大计算能力(SQL Server 数据库引擎)1操…

关于src和background

今天想修改imageview的src里的图片时,发现居然没有setSrcResource方法,但是setBackGroundResource肯定不行啊。 后来找了好几遍,其实与src对应的就是 setImageResource方法。以后别忘记了哦。转载于:https://www.cnblogs.com/heartstong/p/47…

java 线程只执行一次_java – 如何确保方法只执行一次并且只从一个线程执行?...

ShayHaned的解决方案使用锁定.您可以通过AtomicBoolean使其更高效,如:AtomicBoolean wasRun new AtomicBoolean(false);CountDownLatch initCompleteLatch new CountDownLatch(1);public void initialize() {if (!wasRun.getAndSet(true)) {List metadata getMet…

Android无法生成R文件的终极解决办法

R文件如果在clean项目(Project—>Clean)和 Fix Project Properties(如下图): 如果在第一步无法解决的的时候,那可能原因就是资源文件调用的错误,比如资源文件命名不规范,多余的资…