暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

MySQL 8.0 OCP 1Z0-908 考试题解析指南

697
就在上周五中午,国内的数据库圈沸腾了,因为 Oracle 官方为了庆祝 MySQL 数据库开源 30 周年特意举办了一个免费考试的活动,从四门考试中任选两门免费考试,详情请参见上一篇文章【是真的,MySQL 30 周年庆!MySQL 8.0 OCP 认证限时免费考】,这意味着你不需要参加培训(本来 MySQL 考试也不需要培训记录就可参加)不需要购买考券即可自行报名参加考试,节省了几千块钱,故此白嫖粉就特别多,一度让 OU 官网瘫痪不能访问。

图片
既然每个人都能参加考试了,那么都是抱着白嫖的心态来的,那么我也不能扫了大家的兴,这里准备把去年初考过的题库和解析分享给大家,因包含图片、代码、网址、中英文等,格式上不太友好,建议打开电脑浏览器观看。

1Choosethebestanswer.

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.

AnswerE         

分析: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()的权限是真正当前作用的用户权限。

2Choosetwo.Whichtwoactionscanobtaininformationaboutdeadlocks?

图片

A)RuntheSHOWENGINEINNODBMUTEXcommandfromthemysqlclient.

B)Enabletheinnodb_status_output_locksglobalparameter.          
C)Enabletheinnodb_print_all_deadlocksglobalparameter          
D)RuntheSHOWENGININNODSTATUcommandfromthemysqlclient.

E)Usethesys.innodb_lock_waitsview.   

AnswerC,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会立即检测到这种情况,并自动回滚其中一个事务。如果应用程序没有适当的错误处理逻辑来检测回滚并重试其操作,则可以使用此选项对发生死锁的原因进行故障排除。大量的死锁可能表明需要重构发出DMLSELECT…FOR UPDATE语句用于多个表,以便每个事务以相同的顺序访问表,从而避免死锁条件。      
Whenthisoptionisenabled,informationaboutalldeadlocksinInnoDBusertransactionsisrecordedinthemysqlderrorlog.Otherwise,youseeinformationaboutonlythelastdeadlock,  usingtheSHOWENGINEINNODBSTATUScommand.       

3Choosethebestanswer.          
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);

AnswerF

分析:

mysql>ALTER TABLE city ADDSPATIAL INDEX(Population);           ERROR 1687 (42000): A SPATIAL index may only contain a geometrical type column mysql> ALTER TABLE world.city ADD INDEX(Population); Query OK, 0 rows affected (0.09 sec)
图片

      

4Choosetwo.          
User`fwuser`@`localhost`isregisteredwiththeMySQLEnterpriseFirewallandhasbeengrantedprivilegesfortheSAKILAdatabase.          
Examinethesecommandsthatyouexecutedandtheresults:

mysql>SELECTMODEFROMINFORMATION_SCHEMA.MYSQL_FIREWALL_USERS          
WHEREUSERHOST='fwuser@localhost';

图片         

mysql>SELECRULFROM           
INFORMATION_SCHEMA.MYSQL_FIREWALL_WHITELIST 

WHEREUSERHOS'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模式会导致防火墙删除概要文件的所有规则并将其模式设置OFFRESET时,除了Firewall,同也会该账之前练学的白单全清空,这样次再采用Firewall就需重头始了,除非也不了,则不议这做。https://dev.mysql.com/doc/refman/8.0/en/firewall-usage.html
b指定表是的,但中保了全profil并不是全部被 truncateCALL 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”         

5Choosefour.

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

Whichfourchangesprovidethemostperformanceimprovement,withoutsacrificingdata       

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_doublewrite

innodb_doublewrite变量控制doublewrite缓冲。在大多数情况下,默认情况下启用双写缓冲。

MySQL 8.0.30之前,您可以在启动服务器时将innodb_doublewrite设置为ONOFF,以分别启用或禁用doublewrite缓冲。从MySQL 8.0.30开始,innodb_doublewrite也支持DETECT_AND_RECOVERDETECT_ONLY设置。    

DETECT_AND_RECOVER设置与ON设置相同。使用此设置,将完全启用doublewrite缓冲区,将数据库页面内容写入doublewrite缓冲区,在恢复期间访问该缓冲区以修复不完整的页面写入。

使用DETECT_ONLY设置,只将元数据写入doublewrite缓冲区。数据库页内容不写入到doublewrite缓冲区,并且恢复不使用doublewrite缓冲区来修复不完整的页写。这个轻量级设置仅用于检测不完整的页面写。

MySQL 8.0.30以后支持动态修改innodb_doublewrite设置,使doublewrite缓冲区在ON, DETECT_AND_RECOVERDETECT_ONLY之间。MySQL不支持在启用doublewrite bufferOFF的设置之间进行动态更改,反之亦然。   

如果双写缓冲区位于支持原子写的Fusion-io设备上,则自动关闭双写缓冲区,使用Fusion-io原子写方式写数据文件。但是,要注意innodb_doublewrite设置是全局的。禁用双写缓冲区后,所有数据文件(包括不在Fusion-io硬件上的数据文件)都将禁用双写缓冲区。该特性仅在Fusion-io硬件上支持,且仅在Linux操作系统的Fusion-io NVMFS上启用。为了充分利用这个特性,建议将innodb_flush_method设置为O_DIRECT

          

6Choosethebestanswer.          
YouarehavingperformanceissueswithMySQLinstances.ThoseserversaremonitoredwithMySQLEnterpriseMonitor.          
UsingQueryAnalyzer,wheredoyoubegintolookforproblemqueries?

使用查询分析器,从哪里开始查找问题查询?

A)Sortthe"Exec"columnandcheckforSQLquerieswitlowQuerResponsTimindex (QRTi)values. “Exec”列进行排序,并检查具有低查询响应时间索引的SQL查询(QRTi)值。

B)LookforquerieswithlowtotallatencytimesintheLatencysectioninthetimesseriesgraph.C)Sortthe"Exec"columnandcheckforSQLquerieswithhighQueryResponseTimeindex(QRTi)values.          
D)Lookforquerieswithbigprolongedspikesinrowactivity/accessgraphinthetimesseriesgraph.

Answser          
https://dev.mysql.com/doc/mysql-monitor/8.0/en/mem-features-qrti.html      

QRTi代表 Query Response Time index  查询响应时间索引。它是对每个查询的服务质量度量,并使用Apdex公式进行计算:Wikipedia上的Apdex

7Choosethebestanswer.          
YouwanttologonlythechangesmadetothedatabaseobjectsanddataontheMySQLsystem.Whichlogwilldothisbydefault?     

A)slowquerylog

B)binarylog

C)errorlog

D)generalquerylog

E)auditlog  

           AnswserB  

8Choosetwo.

Identifytwowaystosignificantlyimprovedatasecurity.

确定两种显著提高数据安全性的方法          
A)Configuremysqldtorunasthesystemadminaccount,suchasroot.          
B)Useaprivatenetworkbehindafirewall.

C)Configuremysqldtouseonlynetworkeddisks.          
D)ConfigureMySQLtohaveonlyoneadministrativeaccount.          
E)Configuremysqldtouseonlylocaldisksorattacheddisksandtohaveitownaccountinthehostsystem.

mysqld配置为只使用本地磁盘或附加磁盘,并在主机系统中拥有自己的帐户。

Answer:BE
分析:网络隔最好,D的问题administrator这个权限太大了,应该有多个

administrativeaccount,每个只有部分权限。     

 

9Choosetwo.          
WhichtwostatementsaretrueaboutMySQLEnterpriseBackup?    

A)Itcreateslogicalbackups.          

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.35MySQL 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

10Choosethebestanswer.

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. 

 E)Nodeic2becomesthenewprimaryandisignoreduntilanybacklogoftransactionsis          completed

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默认值

RORW事务在执行之前都不等待前面的事务被应用。这是添加此变量之前组复制的行为。RW事务不等待其他成员应用事务。这意味着事务可以先于其他成员外部化到一个成员上。这还意味着,在发生主故障转移的情况下,在应用之前的主事务之前,新的主服务器可以接受新的RORW事务。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之路】,一起学习新知识!
——————————————————————————
公众号: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 年公众号历史文章合集

图片

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论