MySQL 8 OCP 188练习题1-10

       这套题库一共188题,争取2个月内更完,部分答案存疑,欢迎留言或者+vx88414341与山与讨论。就山与的考试经验来说,70%的原题是差不多的。

1.Choose the best answer.
Examine these statements and output:
mysql> GRANT PROXY ON accounting@localhost TO ' '@'%' ;
mysql> SELECT USER(), CURRENT_USER(), @@proxy_user;
Which statement is true?
A) The user failed to define a username and the connecting username defaulted to ' '@'%'.
B) The user is authorized as the rsmith@localhost user.
C) The user is authenticated as the anonymous proxy user ' '@'%'.
D) The user is logged in with --user=accounting as an option.
E) The user is authorized as the accounting@localhost user.
答案: E

解析:本题考察PROXY用户知识点。USER()表示当前的连接用户,实际用户是accounting@localhost,CURRENT_USER()的权限是真正当前作用的用户权限。' '@'%'是匿名代理账户,代理账户类似权限集-角色的概念,实际使用不多,具体的可以参考官文proxy用户。

2.Choose two.
Which two actions can obtain information about deadlocks?
A) Run the SHOW ENGINE INNODB MUTEX command from the mysql client.
B) Enable the innodb_status_output_locks global parameter.
C) Enable the innodb_print_all_deadlocks global parameter.
D) Run the SHOW ENGINE INNODB STATUS command from the mysql client.
E) Use the sys.innodb_lock_waits view.
答案: C、D

解析:本题考察获取死锁信息的两种方式,官文链接Innodb-deadlocks。innodb_print_all_deadlocks默认为OFF状态,设置成ON后,InnoDB用户事务中的所有死锁信息将保存到error_log中;否则,只能通过“SHOW ENGINE INNODB STATUS”语句获取最近的一条死锁信息。

A.该语句显示InnoDB 互斥锁和读写锁统计信息

B.显示InnoDB mutex和rw-lock统计信息。

E.查看锁等待信息的表,并且'INNODB_LOCK_WAITS' is deprecated and will be removed in a future release.

3.Choose the best answer.
Examine this statement, which executes successfully:
MySQL 8 OCP 188练习题1-10_第1张图片
You want to improve the performance of this query:
 
SELECT Name
FROM world.city
WHERE Population BETWEEN 1000000 AND 2000000;

Which change enables the query to succeed while accessing fewer rows?

A) ALTER TABLE world.city ADD INDEX (Name) ;
B) ALTER TABLE world.city ADD SPATIAL INDEX (Name) ;
C) ALTER TABLE world.city ADD FULLTEXT INDEX (Name) ;
D) ALTER TABLE world.city ADD FULLTEXT INDEX (Population) ;
E) ALTER TABLE world.city ADD SPATIAL INDEX (Population) ;
F) ALTER TABLE world.city ADD INDEX (Population) ;
答案: F

解析:本题考察SQL优化—索引,利用索引快速访问数据,具体参考官文链接

A、B、C显然错误,D中的FULLTEXT INDEX一般用于文本字符的查找,比如char、varchar和text字段,E中的SPATIAL INDEX(空间索引)适合精确匹配而非范围查找,用于多维数据,MyISAM和InnoDB(5.7)支持使用,强行使用会报错:

mysql> ALTER TABLE city ADD SPATIAL INDEX(Population);
ERROR 1687 (42000): A SPATIAL index may only contain a geometrical type column

答案F,The most common type of index involves a single column, storing copies of the values from that column in a data structure, allowing fast lookups for the rows with the corresponding column values. The B-tree data structure lets the index quickly find a specific value, a set of values, or a range of values, corresponding to operators such as =>BETWEENIN, and so on, in a WHERE clause.

4.Choose two.

User `fwuser`@`localhost` is registered with the MySQL Enterprise Firewall and has been granted
privileges for the SAKILA database.
Examine these commands that you executed and the results:
mysql> SELECT MODE FROM INFORMATION_SCHEMA.MYSQL_FIREWALL_USERS
WHERE USERHOST = 'fwuser@localhost' ;
mysql> SELECT RULE FROM
INFORMATION_SCHEMA.MYSQL_FIREWALL_WHITELIST
WHERE USERHOST = 'fwuser@localhost';
MySQL 8 OCP 188练习题1-10_第2张图片
You then execute this command:
mysql> CALL mysql.sp_set_firewall_mode('fwuser@localhost' , 'RESET') ;
Which two are true?
A) The fwuser@localhost account is removed from the mysql.user table.
B) The information_schema.MYSQL_FIREWALL_WHITELIST table is truncated.
C) The whitelist of the fwuser@localhost account is truncated.
D) The mysql.firewall_users table is truncated.
E) The firewall resets all options to default values.
F) The fwuser@localhost account mode is set to DETECTING.
G) The fwuser@localhost account mode is set to OFF.
答案:CG

解析:本题考察的是MySQL Firewall(SQL防火墙)的PROTECTING模式,该模式下可以自动判断SQL是否规范,是则通过,否则拒绝该语句,并返回错误信息。首先,题目中给出fwuser@localhost这个账户目前被注册到 Firewall中,并且Firewall状态是PROTECTING保护模式。 其次,题目中给出fwuser@localhost这个账户目前所在的group 已经有1个whitelist,它里面有一些训练得到的sql。 最后,题目执行了1个存储过程,CALL mysql.sp_set_firewall _group_mode('fwgrp', 'RESET'); 问会发生什么?结合上面讲到的firewall状态切换的命令, RESET会清空对应group的whitelist,并将这个group的模式设 置为OFF。

具体的可以参考官文:Firewall-usage。

When a profile is assigned any of the preceding mode values, the firewall stores the mode in the profile. Firewall mode-setting operations also permit a mode value of RESET , but this value is not stored: setting a profile to RESET mode causes the firewall to delete all rules for the profile and set its mode to OFF .
账户防火墙官方介绍链接:MySQL Enterprise Firewall
      MySQL 企业防火墙通过提供针对数据库特定攻击的实时保护来防范网络 安全威胁。任何具有用户提供的输入(例如登录和个人信息字段)的应用程 序都存在风险。数据库攻击不仅仅来自应用程序,数据泄露可能有多种来源 ,包括 SQL 病毒攻击或员工滥用。成功的攻击可以迅速窃取数百万包含个 人信息、信用卡、财务、医疗保健或其他有价值数据的客户记录。
     MySQL 企业防火墙通过监视、警报和阻止未经授权的数据库活动来保护 数据,而无需对应用程序进行任何更改。它提供了多种操作模式来帮助管理员阻止、检测 和响应恶意数据库攻击。
  • 允许(Allow- 执行SQL语句并更新白名单。
  • 阻止(Block- 阻止执行与白名单不匹配的SQL语句。
  • 检测(Detect- 防火墙像在保护模式下一样匹配语句,但是在不拒绝 访问的情况下将不匹配的语句写入错误日志。
账户防火墙工作模式
  • OFF禁用该账户的防火墙。
  • ETECTING此模式检测但不阻止入侵将可疑(不匹配)语句写入错误日志,但不拒绝访问。
  • PROTECTING通过将传入SQL户白名单进行匹配,只接受匹配的语句并拒绝不匹配的语句
  • RECORDING训练模式,记录该账户可接受的白名单防火墙记录每个语句的规范化摘要形式,以了 解配置文件可接受的语句模式。每个模式都是一个规则,规则的联合是配置文件白名单。
  • RESET清除帐户白名单并将账户模式设置为OFF

5. Choose four.

A newly deployed replication master database has a 10/90 read to write ratio.
The complete dataset is currently 28G but will never fluctuate beyond +-10%.
The database storage system consists of two locally attached PCI- E Enterprise grade disks
(mounted as /data1 and /data2)
The server is dedicated to this MySQL Instance.
System memory capacity is 64G.
The my.cnf file contents are displayed here:
[mysqld]
datadir=/data1/
innodb_buffer_pool_size=28G
innodb_log_file_size=150M
Which four changes provide the most performance improvement, without sacrificing data
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
答案:B C E H

解析:新部署的复制主库读写比例是90:10,目前完整的数据集是28G,波动幅度不超过+-10%,数据库存储系统由两个本地连接的PCI-E企业级磁盘(装载为/data1和/data2)组成。服务器专用于此MySQL实例,系统内存容量为64G。问:在不牺牲数据完整性的基础上最大化性能的四个选项是什么。

A.innodb_doublewrite变量控制是否启用双写缓冲区。在大多数情况下,它默认启用。要禁用双写 缓冲区,请设置 innodb_doublewrite为 0 或使用 --skip-innodb-doublewrite. 如果更关心性 能而不是数据完整性,考虑禁用双写缓冲区。

D.undo表空间文件路径,用于未提交事务的rollback。

F.用于日志刷新方式配置

  • innodb_flush_log_at_trx_commit=0,表示每隔一秒把log buffer刷到文件系统中(os buffer)去,并且调用文件系统的“flush”操作将缓存刷新到磁盘上去。也就是说一秒之前的日志都保存在日志缓冲区,也就是内存上,如果机器宕掉,可能丢失1秒的事务数据。
  • innodb_flush_log_at_trx_commit=1,表示在每次事务提交的时候,都把log buffer刷到文件系统中(os buffer)去,并且调用文件系统的“flush”操作将缓存刷新到磁盘上去。这样的话,数据库对IO的要求就非常高了,如果底层的硬件提供的IOPS比较差,那么MySQL数据库的并发很快就会由于硬件IO的问题而无法提升。
  • innodb_flush_log_at_trx_commit=2,表示在每次事务提交的时候会把log buffer刷到文件系统中去,但并不会立即刷写到磁盘。如果只是MySQL数据库挂掉了,由于文件系统没有问题,那么对应的事务数据并没有丢失。只有在数据库所在的主机操作系统损坏或者突然掉电的情况下,数据库的事务数据可能丢失1秒之类的事务数据。这样的好处,减少了事务数据丢失的概率,而对底层硬件的IO要求也没有那么高(log buffer写到文件系统中,一般只是从log buffer的内存转移的文件系统的内存缓存中,对底层IO没有压力)。

G. sync_binlog控制 MySQL 服务器将二进制日志同步到磁盘的频率。

  • sync_binlog=0:禁用 MySQL 服务器将二进制日志同步到磁盘。相反,MySQL 服务器依赖操作系统不时将二进制日志刷新到磁盘,就像它对任何其他文件所做的那样。此设置提供了最佳性能,但如果发生电源故障或操作系统崩溃,服务器可能已提交尚未同步到二进制日志的事务。
  • sync_binlog=1:在提交事务之前启用二进制日志到磁盘的同步。这是最安全的设置,但由于磁盘写入次数增加,可能会对性能产生负面影响。在电源故障或操作系统崩溃的情况下,二进制日志中丢失的事务仅处于准备状态。这允许自动恢复例程回滚事务,从而保证不会从二进制日志中丢失事务。
  • sync_binlog=N, 其中是 0 或 1 以外的值:在收集到二进制日志提交组N后,将二进制日志同步到磁盘 。N在电源故障或操作系统崩溃的情况下,服务器可能已经提交了尚未刷新到二进制日志的事务。由于磁盘写入次数增加,此设置可能会对性能产生负面影响。较高的值会提高性能,但会增加数据丢失的风险。

    InnoDB为了在与事务一起使用 的复制设置中获得最大可能的持久性和一致性,请使用以下设置:sync_binlog=1 innodb_flush_log_at_trx_commit=1

6. Choose the best answer.

You are having performance issues with MySQL instances. Those servers are monitored with
MySQL Enterprise Monitor.
Using Query Analyzer, where do you begin to look for problem queries?
A) Sort the "Exec" column and check for SQL queries with low Query Response Time index
(QRTi) values.
B) Look for queries with low total latency times in the Latency section in the times series graph.
C) Sort the "Exec" column and check for SQL queries with high Query Response Time index
(QRTi) values.
D) Look for queries with big prolonged spikes in row activity/access graph in the times series
graph.
答案:A

解析:本题考察MySQL Enterprise Monitor监控的使用,参考官文QRTI。题意MySQL实例存在性能问题,这些服务器由MySQL Enterprise Monitor监控,使用查询分析 器,如何定位存在问题的查询?

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

B)在时间序列图的延迟部分中查找总延迟时间较低的查询。

C)对“Exec”列进行排序,并检查具有高查询响应时间索引(QRTi)值的SQL查询。

D)在时间序列图中的行活动/访问图中查找具有长时间峰值的查询。

MySQL 查询分析器能够监控在 MySQL 服务器上执行的 SQL 语句,并显示每个查询的详细信息、执行 次数和执行时间。 QRTi 代表“查询响应时间索引”,它是每个查询的“服务质量”度量,值分别为“最佳”( 100 毫秒)、“可接受”( 4 * 最佳 -- 100ms 400ms )和“不可接受”(超出可接受范围—大于 400 毫秒)。

7.Choose the best answer.

You want to log only the changes made to the database objects and data on the MySQL system.

Which log will do this by default?
A) slow query log
B) binary log
C) error log
D) general query log
E) audit log
答案:B

解析:本题考察MySQL数据库日志。题意只记录数据库更改信息应该用哪种日志?官方链接server-logs。

A)记录执行时间超过long_query_time的查询

B)记录更改数据的语句(也用于复制)

C)记录启动、运行或停止mysqld时遇到的问题

D)记录已建立的客户端连接和从客户端收到的语句

E)审计日志,记录数据库访问活动,对数据库操作进行细粒度审计的合规性管理,对数据库受 到的风险行为进行告警,对攻击行为进行阻断,它通过对用户访问数据库行为的记录、分析和 汇报,用来帮助用户事后生成合规报告、事故追根溯源,同时加强内外部数据库网络行为记录 ,提高数据资产安全。

各日志作用如下:

  • slow query log--记录慢查询。
  • binary log--记录数据库binlog,其中的数据库的写操作SQL。
  • error log--记录mysql启动、关闭、运行过程中的信息i输出。
  • general query log--记录mysql所有的操作sql,包括读写。
  • audit log--记录mysql的审计日志。

8.Choose two.

Identify two ways to significantly improve data security.
A) Configure mysqld to run as the system admin account, such as root.
B) Use a private network behind a firewall.
C) Configure mysqld to use only networked disks.
D) Configure MySQL to have only one administrative account.
E) Configure mysqld to use only local disks or attached disks and to have its own account in the
host system.
答案:B E(有争议)

解析:本题考察数据安全问题,官方相关链接链接1、链接2。

题意:显著提高数据安全性的两个办法。
A )将 mysqld 配置为作为系统管理员帐户运行,例如 root
B )使用基于防火墙的专用网络。
C )将 mysqld 配置为仅使用网络磁盘。
D )将 MySQL 配置为只有一个管理帐户。
E )将 mysqld 配置为仅使用本地磁盘或连接的磁盘,并在主机系统中拥有自己的帐户。
另解析 (该解析来自网友)
选项 A ,配置 mysqld 以系统管理员账户运行,比如 root 。错误。 mysqld 应该避免使用 root 账户启动。
选项 B ,使用一个隐藏在 firewall 后的私有网络。正确。 mysql 不应该对公网暴露。
选项 C ,配置 mysqld 只使用网络硬盘。错误。
选项 D ,配置 mysql 只有一个管理员账户。正确。对账户进行严格控制。
选项 E ,配置 mysqld 只使用本地磁盘或者附加磁盘并且让它自己的账户在系统中存在。错误。
选项BD正确。
9.Choose two.
Which two statements are true about MySQL Enterprise Backup?
A) It creates logical backups.
B) It supports backing up only table structures.
C) It can perform hot or warm backups.
D) It supports backup of a remote MySQL system.
E) It supports restoring to a remote MySQL system.
F) It supports the creation of incremental backups.
答案:CF

题意:关于MySQL企业备份,哪两种说法是正确的?

A)它创建逻辑备份

B)它只支持备份表结构

C)它可以执行热备份或热备份

D)它支持远程MySQL系统的备份

E)它支持恢复到远程MySQL系统

F)它支持创建增量

解析:本题考察MySQL备份的知识,官文链接MySQL Enterprise Backup。MySQL Enterprise Backup类似Oracle的Rman备份,支持“热”(在线)备份、增量和差异备份 、选择性备份和恢复、支持直接云存储备份、备份加密和压缩等,不支持远程备份、恢复。

10.Choose the best answer.

Examine these commands, which execute successfully on the ic1 host:
mysqlsh> dba.createCluster( 'cluster1' , {memberWeight:35})
mysqlsh> var mycluster = dba.getCluster ()
mysqlsh> mycluster.addInstance ( 'ic@ic2' , {memberWeight:25})
mysqlsh> mycluster.addInstance( 'ic@ic3' , {memberWeight:50})
Now examine this configuration setting, which is the same on all nodes:
group_replication_consistency =BEFORE_ON_PRIMARY_FAILOVER
Which statement is true if primary node ic1 fails?
A) Node ic2 becomes the new primary and existing transactions are considered stale and rolled
back.
B) Node ic3 becomes the new primary and existing transactions are considered stale and rolled
back.
C) Node ic3 becomes the new primary and is ignored until any backlog of transactions is
completed.
D) Only two nodes remain so the election process is uncertain and must be done manually.
E) Node ic2 becomes the new primary and is ignored until any backlog of transactions is
completed.
答案:C

题意:ic1主机上成功执行了如下4条命令,并且各节点的group_replication_consistency= BEFORE_on_PRIMARY_FAILOVER,那么假设ic1节点宕掉,下面选项哪个是对的。

A)节点ic2成为新的主节点,现有事务被视为过时并回滚。

B)节点ic3成为新的主节点,现有事务被视为过时并回滚。

C)节点ic3成为新的主节点,在任何积压的事务完成之前将被忽略。

D)只剩下两个节点,因此选举过程不确定,必须手动完成。

E)节点ic2成为新的主节点,在任何积压事务完成之前将被忽略。

解析:本题考察MySQL集群配置的相关知识。理解权重和group_replication_consistency参数值含义,参考官文innodb-cluster。题中4条命令是关于创建集群并添加节点的,第1条命令创建名为cluster1的集群,初始化ic1为第一个 节点,也就是主节点,切换权重35,第2条命令获取当前已创建的集群,第3条命令添加ic2为第二节点 ,切换权重25,添加ic3为第三个节点,切换权重50。切换权重越大切换排序越优先。group_ replication_consistency=BEFORE_on_PRIMARY_FAILOVER表明要完成旧主库积压的未完成的事务才会开 始新事务的执行。

你可能感兴趣的:(MySQL,8,OCP,MySQL,MySQL,数据库,OCP,MySQL8)