
1、Choosethebestanswer.
Examinethesestatementsandoutput:
mysql>GRANTPROXYONaccounting@localhostTO''@'%';mysql>SELECTUSER(),CURRENT_USER(),@@proxy_user;

Whichstatementistrue?
A)Theuserfailedtodefineausernameandtheconnectingusernamedefaultedto''@'%'.
B)Theuserisauthorizedasthersmith@localhostuser.
C)Theuserisauthenticatedastheanonymousproxyuser''@'%'.
D)Theuserisloggedinwith--user=accountingasanoption.
E)Theuserisauthorizedastheaccounting@localhostuser.
Answer:E
分析:proxy用户创建构成
--createproxyaccount
CREATEUSER'employee_proxy'@'%'identifiedby'123456';
--createproxiedaccountandgrantitsprivileges;
CREATEUSER'employee'@'localhost' identifiedby'123456';
GRANTALLON*.*TO'employee'@'localhost';
--granttoproxyaccountthe
GRANTPROXYON'employee'@'localhost'TO'employee_proxy'@'%';
https://dev.mysql.com/doc/refman/8.0/en/proxy-users.html
CURRENT_USER()的权限是真正当前作用的用户权限。
2、Choosetwo.Whichtwoactionscanobtaininformationaboutdeadlocks?

A)RuntheSHOWENGINEINNODBMUTEXcommandfromthemysqlclient.
B)Enabletheinnodb_status_output_locksglobalparameter.
C)Enabletheinnodb_print_all_deadlocksglobalparameter.
D)RuntheSHOWENGINE INNODB STATUS commandfromthemysqlclient.
E)Usethesys.innodb_lock_waitsview.
Answer:C,D
innodb_print_all_deadlocks:https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_print_all_deadlocks
当启用该选项时,InnoDB用户事务中的所有死锁信息都会记录在mysqld错误日志中。否则,使用SHOW ENGINE INNODB STATUS命令,只能看到最近一次死锁的信息。偶尔的InnoDB死锁并不一定是一个问题,因为InnoDB会立即检测到这种情况,并自动回滚其中一个事务。如果应用程序没有适当的错误处理逻辑来检测回滚并重试其操作,则可以使用此选项对发生死锁的原因进行故障排除。大量的死锁可能表明需要重构发出DML或SELECT…FOR UPDATE语句用于多个表,以便每个事务以相同的顺序访问表,从而避免死锁条件。
Whenthisoptionisenabled,informationaboutalldeadlocksinInnoDBusertransactionsisrecordedinthemysqlderrorlog.Otherwise,youseeinformationaboutonlythelastdeadlock, usingtheSHOWENGINEINNODBSTATUScommand.
3、Choosethebestanswer.
Examinethisstatement,whichexecutessuccessfully:
CREATE TABLE world.city(ID int NOT NULL AUTO INCREMENT,Name char(35) NOT NULL DEFAULT ' ',CountryCode char(3) NOT NULL DEFAULT ' ',District char(20) NOT NULL DEFAULT ' ',Population int NOT NULL DEFAULT '0',PRIMARY KEY (ID),REY CountryCode(CountryCode))ENGINE=InnoDB;
Youwanttoimprovetheperformanceofthisquery:
SELECT NameFROM world.cityWHERE Population BETWEEN 1000000 AND 2000000;
Whichchangeenablesthequerytosucceedwhileaccessingfewerrows?
A)ALTERTABLEworld.cityADDINDEX(Name);
B)ALTERTABLEworld.cityADDSPATIALINDEX(Name);
C)ALTERTABLEworld.cityADDFULLTEXTINDEX(Name);
D)ALTERTABLEworld.cityADDFULLTEXTINDEX(Population);E)ALTERTABLEworld.cityADDSPATIALINDEX(Population);
F)ALTERTABLEworld.cityADDINDEX(Population);
Answer:F
分析:
mysql>ALTER TABLE city ADDSPATIAL INDEX(Population);ERROR 1687 (42000): A SPATIAL index may only contain a geometrical type columnmysql> ALTER TABLE world.city ADD INDEX(Population);Query OK, 0 rows affected (0.09 sec)
![]() |
4、Choosetwo.
User`fwuser`@`localhost`isregisteredwiththeMySQLEnterpriseFirewallandhasbeengrantedprivilegesfortheSAKILAdatabase.
Examinethesecommandsthatyouexecutedandtheresults:
mysql>SELECTMODEFROMINFORMATION_SCHEMA.MYSQL_FIREWALL_USERS
WHEREUSERHOST='fwuser@localhost';
mysql>SELECT RULE FROM
INFORMATION_SCHEMA.MYSQL_FIREWALL_WHITELIST
WHEREUSERHOST = 'fwuser@localhost';
Youthenexecutethiscommand:
mysql>CALLmysql.sp_set_firewall_mode('fwuser@localhost','RESET');
Whichtwoaretrue?
A)Thefwuser@localhostaccountisremovedfromthemysql.usertable.
B)Theinformation_schema.MYSQL_FIREWALL_WHITELISTtableistruncated.
C)Thewhitelistofthefwuser@localhostaccountistruncated.
D)Themysql.firewall_userstableistruncated.
E)Thefirewallresetsalloptionstodefaultvalues.
F)Thefwuser@localhostaccountmodeissettoDETECTING.
G)Thefwuser@localhostaccountmodeissettoOFF.
Answer C G
Whenaprofileisassignedanyoftheprecedingmodevalues,thefirewallstoresthemodeintheprofile.Firewallmode-settingoperationsalsopermitamodevalueofRESET,butthisvalueisnotstored:settingaprofiletoRESETmodecausesthefirewalltodeleteallrulesfortheprofileandsetitsmodetoOFF.
RESET概要文件设置为RESET模式会导致防火墙删除概要文件的所有规则并将其模式设置为OFF。设置为RESET时,除了关闭Firewall保护,同时也会将该账号之前训练学习的白名单全部清空,这样下次再想采用Firewall保护就需要重头开始了,除非再也不用了,否则不建议这么做。https://dev.mysql.com/doc/refman/8.0/en/firewall-usage.html
b选项指定的表是对的,但其中保存了全部的profile 并不是全部被 truncate。CALL mysql.sp_set_firewall_mode(user, 'RESET');
The reset operation causes the firewall to delete all rules for the profile and set its mode to OFF. 重置操作将导致防火墙删除该配置文件的所有规则,并将其模式设置为“OFF”。
5、Choosefour.
Anewlydeployedreplicationmasterdatabasehasa10/90readtowriteratio.
Thecompletedatasetiscurrently28Gbutwillneverfluctuatebeyond+-10%.
ThedatabasestoragesystemconsistsoftwolocallyattachedPCI-EEnterprisegradedisks
(mountedas/data1and/data2)
TheserverisdedicatedtothisMySQLInstance.
新部署的复制主数据库的读写比率为10/90。
完整的数据集目前是28G,但永远不会波动超过+-10%。
数据库存储系统由两个本地连接的PCI- E企业级磁盘组成
(挂载为/data1和/data2)
服务器专用于这个MySQL实例。
Systemmemorycapacityis64G.
Themy.cnffilecontentsaredisplayedhere:
[mysqld]
datadir=/data1/
innodb_buffer_pool_size=28G
innodb_log_file_size=150M
integrity? 哪四个更改在不牺牲数据完整性的情况下提供了最大的性能改进?
A)innodb-doublewrite=off
B)innodb_log_group_home_dir=/data2/
C)innodb_log_file_size=1G
D)innodb_undo_directory=/dev/shm
E)log-bin=/data2/
F)innodb_flush_log_at_trx_commit=0
G)sync_binlog=0
H)innodb_buffer_pool_size=32G
I)disable-log-bin
Answer:BCEH
分析:不牺牲数据完整性的情况下提供了最大的性能改进
https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_undo_directory
InnoDB创建undo表空间的路径。通常用于将撤销表空间放在不同的存储设备上。
没有默认值(它是NULL)。如果变量innodb_undo_directory未定义,则在data目录下创建undo表空间。
MySQL实例初始化时创建的默认undo表空间(innodb_undo_001和innodb_undo_002)总是驻留在由innodb_undo_directory变量定义的目录中。
如果没有指定不同的路径,使用CREATE Undo TABLESPACE语法创建的Undo表空间将在innodb_undo_directory变量定义的目录中创建。
--innodb-doublewrite=value (≥ 8.0.30)
--innodb-doublewrite[={OFF|ON}] (≤ 8.0.29)

https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_doublewriteinnodb_doublewrite变量控制doublewrite缓冲。在大多数情况下,默认情况下启用双写缓冲。
在MySQL 8.0.30之前,您可以在启动服务器时将innodb_doublewrite设置为ON或OFF,以分别启用或禁用doublewrite缓冲。从MySQL 8.0.30开始,innodb_doublewrite也支持DETECT_AND_RECOVER和DETECT_ONLY设置。
DETECT_AND_RECOVER设置与ON设置相同。使用此设置,将完全启用doublewrite缓冲区,将数据库页面内容写入doublewrite缓冲区,在恢复期间访问该缓冲区以修复不完整的页面写入。
使用DETECT_ONLY设置,只将元数据写入doublewrite缓冲区。数据库页内容不写入到doublewrite缓冲区,并且恢复不使用doublewrite缓冲区来修复不完整的页写。这个轻量级设置仅用于检测不完整的页面写。
MySQL 8.0.30以后支持动态修改innodb_doublewrite设置,使doublewrite缓冲区在ON, DETECT_AND_RECOVER和DETECT_ONLY之间。MySQL不支持在启用doublewrite buffer和OFF的设置之间进行动态更改,反之亦然。
如果双写缓冲区位于支持原子写的Fusion-io设备上,则自动关闭双写缓冲区,使用Fusion-io原子写方式写数据文件。但是,要注意innodb_doublewrite设置是全局的。禁用双写缓冲区后,所有数据文件(包括不在Fusion-io硬件上的数据文件)都将禁用双写缓冲区。该特性仅在Fusion-io硬件上支持,且仅在Linux操作系统的Fusion-io NVMFS上启用。为了充分利用这个特性,建议将innodb_flush_method设置为O_DIRECT。
6、Choosethebestanswer.
YouarehavingperformanceissueswithMySQLinstances.ThoseserversaremonitoredwithMySQLEnterpriseMonitor.
UsingQueryAnalyzer,wheredoyoubegintolookforproblemqueries?
使用查询分析器,从哪里开始查找问题查询?
A)Sortthe"Exec"columnandcheckforSQLquerieswith lowQuery Response Time index (QRTi)values. 对“Exec”列进行排序,并检查具有低查询响应时间索引的SQL查询(QRTi)值。
B)LookforquerieswithlowtotallatencytimesintheLatencysectioninthetimesseriesgraph.C)Sortthe"Exec"columnandcheckforSQLquerieswithhighQueryResponseTimeindex(QRTi)values.
D)Lookforquerieswithbigprolongedspikesinrowactivity/accessgraphinthetimesseriesgraph.
Answser:A
https://dev.mysql.com/doc/mysql-monitor/8.0/en/mem-features-qrti.html
QRTi代表 Query Response Time index “查询响应时间索引”。它是对每个查询的“服务质量”度量,并使用Apdex公式进行计算:Wikipedia上的Apdex。
7、Choosethebestanswer.
YouwanttologonlythechangesmadetothedatabaseobjectsanddataontheMySQLsystem.Whichlogwilldothisbydefault?
A)slowquerylog
B)binarylog
C)errorlog
D)generalquerylog
E)auditlog
Answser:B
8、Choosetwo.
Identifytwowaystosignificantlyimprovedatasecurity.
确定两种显著提高数据安全性的方法
A)Configuremysqldtorunasthesystemadminaccount,suchasroot.
B)Useaprivatenetworkbehindafirewall.
C)Configuremysqldtouseonlynetworkeddisks.
D)ConfigureMySQLtohaveonlyoneadministrativeaccount.
E)Configuremysqldtouseonlylocaldisksorattacheddisksandtohaveits ownaccountinthehostsystem.
将mysqld配置为只使用本地磁盘或附加磁盘,并在主机系统中拥有自己的帐户。
Answer:BE
分析:网络隔最好,D的问题是administrator这个权限太大了,应该有多个
administrativeaccount,每个只有部分权限。
9、Choosetwo.
WhichtwostatementsaretrueaboutMySQLEnterpriseBackup?
B)Itsupportsbackinguponlytablestructures.
C)Itcanperformhotorwarmbackups. 热备份
D)ItsupportsbackupofaremoteMySQLsystem.
E)ItsupportsrestoringtoaremoteMySQLsystem.
F)Itsupportsthecreationofincrementalbackups. 增量备份
https://dev.mysql.com/doc/mysql-enterprise-backup/8.0/en/MySQL Enterprise Backup 8.0.35是MySQL 8.0.35的备份工具。mysqlbackup它是一个多平台、高性能的工具,提供丰富的功能,如“热”(在线)备份、增量和差异备份、选择性备份和恢复、支持直接云存储备份、备份加密和压缩,以及许多其他有价值的功能。虽然针对InnoDB表进行了优化,但MySQL企业备份能够备份和恢复由MySQL支持的任何存储引擎创建的各种表。它的读写进程的并行性(在独立的多线程中执行)及其块级并行性(不同的线程可以在单个文件中读取、处理或写入不同的块)允许以极快的速度完成备份和恢复过程,并且与使用mysqldump等工具进行逻辑备份相比,通常具有显著的性能提升。https://dev.mysql.com/doc/mysql-enterprise-backup/8.0/en/meb-performance-space-overview.html
Answer:CF
10、Choosethebestanswer.
Examinethesecommands,whichexecutesuccessfullyontheic1host:
mysqlsh>dba.createCluster('cluster1',{memberWeight:35})
mysqlsh>varmycluster=dba.getCluster()
mysqlsh>mycluster.addInstance('ic@ic2',{memberWeight:25})
mysqlsh>mycluster.addInstance('ic@ic3',{memberWeight:50})
Nowexaminethisconfigurationsetting,whichisthesameonallnodes:
group_replication_consistency=BEFORE_ON_PRIMARY_FAILOVER
Whichstatementistrueifprimarynodeic1fails?
A)Nodeic2becomesthenewprimaryandexistingtransactionsareconsideredstaleandrolledback.
B)Nodeic3becomesthenewprimaryandexistingtransactionsareconsideredstaleandrolledback.
C)Nodeic3becomesthenewprimaryandisignoreduntilanybacklogoftransactionsis completed. 节点ic3成为新的主节点,并被忽略,直到所有积压的事务完成
D)Onlytwonodesremainsotheelectionprocessisuncertainandmustbedonemanually.
https://dev.mysql.com/doc/refman/8.0/en/group-replication-system-variables.html#sysvar_group_replication_consistency
该系统变量的值可以在“组复制”运行时更改。group_replication_consistency是一个服务器系统变量,而不是特定于Group Replication插件的变量,因此更改不需要重新启动Group Replication即可生效。修改system变量的session值立即生效,修改global值对修改后启动的新会话生效。修改这个系统变量的全局设置需要GROUP_REPLICATION_ADMIN权限。
Group_replication_consistency控制组提供的事务一致性保证。您可以配置全局一致性或每个事务的一致性。Group_replication_consistency还配置单个主组中新当选的主使用的fencing机制。对于只读(RO)和读写(RW)事务都必须考虑变量的影响。下面的列表显示了这个变量的可能值,按照增加事务一致性保证的顺序:
group-replication-consistency =BEFORE_ON_PRIMARY_FAILOVER
新的RO或RW事务与新选出的正在从旧的primary应用积压的primary进行保存(不应用),直到任何积压被应用。这确保了在发生主故障转移时,无论有意还是无意,客户机总是可以看到主服务器上的最新值。这保证了一致性,但意味着客户端必须能够在应用积压的情况下处理延迟。通常这种延迟应该是最小的,但确实取决于积压的大小。
group-replication-consistency = EVENTUAL默认值
RO和RW事务在执行之前都不等待前面的事务被应用。这是添加此变量之前组复制的行为。RW事务不等待其他成员应用事务。这意味着事务可以先于其他成员外部化到一个成员上。这还意味着,在发生主故障转移的情况下,在应用之前的主事务之前,新的主服务器可以接受新的RO和RW事务。RO事务可能导致过时的值,RW事务可能由于冲突导致回滚。
group-replication-consistency = BEFORE
RW事务在应用之前等待所有前面的事务完成。RO事务在执行之前等待所有前面的事务完成。这确保该事务仅通过影响事务的延迟来读取最新的值。通过确保只在RO事务上使用同步,这减少了每个RW事务上的同步开销。这个一致性级别还包括BEFORE_ON_PRIMARY_FAILOVER提供的一致性保证。
group-replication-consistency = AFTER
RW事务等待,直到其更改已应用于所有其他成员。该值对RO事务没有影响。此模式确保在本地成员上提交事务时,任何后续事务都会读取任何组成员上的写入值或最近的值。对于主要用于RO操作的组使用此模式,以确保应用的RW事务在提交后被应用到任何地方。您的应用程序可以使用它来确保后续的读取获取最新的数据,其中包括最新的写入。通过确保只在RW事务上使用同步,这减少了每个RO事务上的同步开销。这个一致性级别还包括BEFORE_ON_PRIMARY_FAILOVER提供的一致性保证。
group-replication-consistency =BEFORE_AND_AFTER
RW事务等待1)在应用之前所有前面的事务完成,2)直到它的更改应用到其他成员上。RO事务在执行之前等待所有前面的事务完成。这个一致性级别还包括BEFORE_ON_PRIMARY_FAILOVER提供的一致性保证
Answer:C
英文考试题不算特别多,但一篇文章肯定也写不完,由于篇幅问题,就先选前 10 道题,还没看的可以看看上面题和我个人总结的详细解析,如有问题和需求欢迎一起交流讨论。另外上周五我们也新开了几个 MySQL OCP 考试互助群,由于异常火爆,没法自动加入了,感兴趣的可以添加我个人微信,拉你进群一起交流。

最后说一下这篇文章要是阅读量还可以,伙伴们还有这方面的需求,可以多多点 赞、转 发支持一下,晚上可以视频号分享一下考试备考经验、注意事项以及从零到一如何注册考试、预约考试和考试后查看证书等事项。欢迎关注我的视频号一起来聊聊。

——————————————————————————
公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
ITPUB:https://blog.itpub.net/69968215
腾讯云:https://cloud.tencent.co/developer/user/5645107
——————————————————————————

2024 年公众号 JiekeXu DBA之路历史文章合集
2023 年公众号 JiekeXu DBA之路历史文章合集
2022 年公众号 JiekeXu DBA之路历史文章合集
2021 年公众号历史文章合集






