Oracle数据库数据恢复、性能优化来问问AskMaclean - ParnassusData诗檀软件旗下网站

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

205

积分

14

好友

29

主题
发表于 2016-6-25 13:32:18 | 查看: 856| 回复: 1
本帖最后由 biotwang 于 2016-6-25 13:35 编辑

【dbdao.com MySQL OCP认证专题】- MySQL 5.6 - OCP 考题讲解

1.

A simple master-to-slave replication is currently being used. The following information is extracted from the SHOW SLAVE STATUS output:
  1. Last_SQL_Error: Error 'Duplicate entry '8' for key 'PRIMARY'' on query. Default database: 'mydb'.
  2. Query: 'insert into mytable VALUES ('8', 'George')'
  3. Skip_Counter: 0
  4. Retrieved_Gtid_Set: 38f32e23480a7-32a1-c323f78067fd37821: 1-8
  5. Auto_Position: 1
复制代码
You execute a "SHOW CREATE TABLE mytable" on the slave:
  1. CREATE TABLE 'mytable' (
  2. 'ID' int(11) NOT NULL DEFAULT '0',
  3. 'name' char(10) DEFAULT NULL,
  4. PRIMARY KEY ('ID')
  5. )
复制代码
The table mytable on the slave contains the following:
db_mysql_item_id647_wm_7a9dad4594a04a5ceb91b5c23d679a1ec786bfb7.jpg

You have issued a STOP SLAVE command. One or more statements are required before you can
issue a START SLAVE command to resolve the duplicate key error.
Which statement should be used?
A)
SET GLOBAL SQL_SKIP_SLAVE_COUNTER=1
B)
SET GTID_NEXT="CONSISTENCY";
BEGIN; COMMIT;
SET GTID_NEXT=" AUTOMATIC’;
C)
SET GLOBAL enforce_gtid_consistency=ON
D)
SET GTID_EXECUTED="38f32e23480a7-32a1-c323f78067fd37821 : 9";
E)
SET GTID_NEXT="38f32e23480a7-32a1-c323f78067fd37821 : 9";
BEGIN; COMMIT;
SET GTID_NEXT="AUTOMATIC";

--------------------------------------------------------------------
答案:E

分析:
此题中使用的Replication是通过GTID实现的,因此
A错,因此GLOBAL SQL_SKIP_SLAVE_COUNTER=1对使用GTID进行的Replication无效
C错,因为GLOBAL enforce_gtid_consistency=ON是实现的前提。
由于GTID_NEXT的有效值为:
AUTOMATIC / ANONYMOUS / <UUID>:<NUMBER>
因此 B错。
由于Retrieved_Gtid_Set: 38f32e23480a7-32a1-c323f78067fd37821: 1-8
因此已经收到主库事务1-8,因此报错是从第9个事务重复记录导致的,很有可能slave上的第8行被人为录入了,导致同步问题。
D错,因为GTID_EXECUTED表示已经执行完成的事务。

为了临时绕过这个问题,使用注入空事务(BEGIN; COMMIT; ) 代替完成第9个事务.
完成后GTID_EXECUTED才会变为"38f32e23480a7-32a1-c323f78067fd37821 : 9"
这时候重新SET GTID_NEXT="AUTOMATIC"; 重启slave后,开始从第10个事务开始同步。
发表于 2016-6-25 13:37:19
MySQL 认证题目虽然每年都会有变化,我们不可能都涵盖到。但是只要大家认真查阅对应题目相关的官方文档内容,并吃透题目后的知识体系。相信一定能安全通过考试 :)

回复 显示全部楼层 道具 举报

您需要登录后才可以回帖 登录 | 注册

扫码加入微信Oracle小密圈


QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化来问问AskMaclean - ParnassusData诗檀软件旗下网站

GMT+8, 2018-4-21 12:12 , Processed in 0.075770 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569