題目61
Choose the best answer.
Examine this command, which executes successfully:
mysqlbackup --defaults-file=/backups/server-my.cnf --backup-dir=/backups/full copy-back
Which statement is true about the copy-back process?
○ A) It restores files from the data directory to their original MySQL server locations.
○ B) It restores files from the backup directory to their original MySQL server locations.
○ C) The copy-back process is used to overwrite a new backup over an existing backup.
○ D) The copy-back process makes inconsistent backups.
翻譯
選擇最佳答案。
查看這條成功執行的命令:
mysqlbackup --defaults-file=/backups/server-my.cnf --backup-dir=/backups/full copy-back
關于 copy-back
過程,以下哪項陳述是正確的?
○ A) 它將文件從數據目錄恢復到其原始MySQL服務器位置。
○ B) 它將文件從備份目錄恢復到其原始MySQL服務器位置。
○ C) copy-back
過程用于用新備份覆蓋現有備份。
○ D) copy-back
過程會生成不一致的備份。
解析和答案
- 選項A:
copy-back
是從備份目錄恢復,不是從數據目錄,A錯誤。 - 選項B:
mysqlbackup
的copy-back
操作就是將備份目錄(--backup-dir
指定 )中的文件恢復到MySQL服務器的原始位置,B正確。 - 選項C:
copy-back
是恢復備份到原位置,不是覆蓋現有備份,C錯誤。 - 選項D:
copy-back
是恢復已有的備份,只要備份本身是一致的,恢復過程不會產生不一致備份,D錯誤。
所以答案是B。
知識點總結
- MySQL備份恢復工具(mysqlbackup):理解
mysqlbackup
工具中copy-back
操作的作用和原理,掌握其是從指定的備份目錄(--backup-dir
)將備份文件恢復到MySQL服務器的原始數據存儲位置,用于數據庫恢復場景。明確該操作在備份恢復流程中的角色,能夠正確使用該工具進行數據庫備份和恢復,保障數據的可恢復性和一致性。 - 數據庫備份與恢復流程:深入了解數據庫備份恢復的基本流程,包括備份的生成、存儲,以及恢復時如何將備份數據還原到原始位置。掌握不同備份恢復工具(如
mysqlbackup
)的操作細節,能夠根據實際需求(如數據丟失、故障恢復 )選擇正確的恢復操作,確保數據庫的正常運行和數據完整性。
題目62
Choose three.
Which three statements are true about MySQL replication?
□ A) Each slave must have its own MySQL user for replication.
□ B) A replication user must have the SELECT privilege for all tables that need to be replicated.
□ C) Each instance in a replication topology must have a unique server ID.
□ D) Any instance can have multiple slaves, but it can have only one master.
□ E) Binary logs contain only transactions originating from a single MySQL instance.
□ F) Replication can use only TCP/IP connections.
□ G) Binary logging must be enabled on the master in order to replicate to other instances.
翻譯
選擇三項。
關于 MySQL 復制,以下哪三個陳述是正確的?
□ A) 每個從庫必須有自己的 MySQL 復制用戶。
□ B) 復制用戶必須對所有需要復制的表具有 SELECT 權限。
□ C) 復制拓撲中的每個實例必須有唯一的服務器 ID。
□ D) 任何實例可以有多個從庫,但只能有一個主庫。
□ E) 二進制日志僅包含來自單個 MySQL 實例的事務。
□ F) 復制只能使用 TCP/IP 連接。
□ G) 為了復制到其他實例,必須在主庫上啟用二進制日志記錄。
解析和答案
- 選項A:多個從庫可以共用一個復制用戶(只要權限等設置正確 ),不是每個從庫必須有獨立用戶,A錯誤。
- 選項B:復制用戶需要的是
REPLICATION SLAVE
等權限,不是SELECT
權限,B錯誤。 - 選項C:在 MySQL 復制拓撲中,每個實例(主、從 )必須配置唯一的
server_id
,否則復制無法正常進行,C正確。 - 選項D:在多源復制等場景中,一個從庫可以有多個主庫,所以說“只能有一個主庫”錯誤,D錯誤。
- 選項E:二進制日志會記錄主庫上的事務,這些事務可能是自身產生的,也可能是從其他主庫復制過來的(如級聯復制場景 ),E錯誤。
- 選項F:MySQL 復制默認使用 TCP/IP 連接,也支持其他連接方式(如套接字等,不過常規是 TCP/IP ),從常規復制配置看,可認為復制主要使用 TCP/IP 連接,F正確。
- 選項G:主庫要進行復制,必須啟用二進制日志(
log-bin
),這樣才能將事務記錄到二進制日志中供從庫復制,G正確。
所以答案是C、F、G。
知識點總結
- MySQL復制基礎:掌握 MySQL 復制的基本概念和配置要求,包括
server_id
的唯一性、主庫二進制日志啟用的必要性、復制用戶權限設置等。明確復制拓撲中各實例的角色和配置要點,保障復制功能的正常搭建和運行。 - 復制原理與組件:理解二進制日志在復制中的核心作用(記錄事務供從庫同步 ),以及復制連接方式(如 TCP/IP )等。深入了解復制用戶權限、多源復制等進階知識,能夠根據實際需求(如構建復雜復制拓撲 )進行正確配置和優化,提升復制的穩定性和效率。
題目63
Choose the best answer.
Examine this SQL statement:
UPDATE world.city
SET Population = Population * 1.1
WHERE CountryCode IN (SELECT Code FROM world.countryWHERE Continent = 'Asia')
Which set of privileges will allow Tom to execute this SQL statement?
○ A) GRANT UPDATE ON world
.* TO tom
@%
;
GRANT ALL PRIVILEGES ON world
.country
TO tom
@%
;
○ B) GRANT UPDATE ON world
.city
TO tom
@%
;
GRANT SELECT ON world
.* TO tom
@%
;
○ C) GRANT UPDATE ON world
.city
TO tom
@%
;
GRANT SELECT ON world
.country
TO tom
@%
;
○ D) GRANT ALL PRIVILEGES ON world
.city
TO tom
@%
;
GRANT SELECT (‘code’) ON world
.country
TO tom
@%
;
翻譯
選擇最佳答案。
查看以下 SQL 語句:
UPDATE world.city
SET Population = Population * 1.1
WHERE CountryCode IN (SELECT Code FROM world.countryWHERE Continent = 'Asia')
哪一組權限能讓 Tom 執行這條 SQL 語句?
○ A) GRANT UPDATE ON world
.* TO tom
@%
;
GRANT ALL PRIVILEGES ON world
.country
TO tom
@%
;
○ B) GRANT UPDATE ON world
.city
TO tom
@%
;
GRANT SELECT ON world
.* TO tom
@%
;
○ C) GRANT UPDATE ON world
.city
TO tom
@%
;
GRANT SELECT ON world
.country
TO tom
@%
;
○ D) GRANT ALL PRIVILEGES ON world
.city
TO tom
@%
;
GRANT SELECT (‘code’) ON world
.country
TO tom
@%
;
解析和答案
- 選項A:
GRANT UPDATE ON world.*
雖能讓tom
有city
表更新權限,但GRANT ALL PRIVILEGES ON world.country
權限過大,且實際只需country
表的SELECT
權限,A錯誤。 - 選項B:
GRANT SELECT ON world.*
包含了不必要的其他表權限,實際只需country
表的SELECT
權限,B錯誤。 - 選項C:
city
表需要UPDATE
權限來執行UPDATE
操作,country
表需要SELECT
權限來執行子查詢,C正確。 - 選項D:
GRANT SELECT ('code')
語法錯誤,且即使語法正確,也不需要這么精確的列權限(子查詢需要查詢Code
列,正常SELECT
權限即可 ),D錯誤。
所以答案是C。
知識點總結
- MySQL權限管理:掌握 MySQL 中不同操作所需的權限,
UPDATE
操作需要對應表的UPDATE
權限,SELECT
子查詢需要對應表的SELECT
權限。在授權時,應遵循最小權限原則,只授予執行操作必需的權限,避免過度授權帶來的安全風險。 - 復雜查詢權限分析:對于包含多表操作(如關聯更新、子查詢 )的 SQL 語句,要分析每個表所需的權限。明確主操作表和關聯查詢表的權限需求,準確授予用戶相應權限,保障查詢正常執行的同時,維護數據庫的權限安全。
題目64
Choose two.
Examine this command and output:
mysql> SELECT * FROM data_locks LIMIT 1\G
*************************** 1. row ***************************ENGINE: INNODBENGINE_LOCK_ID: 1200:146
ENGINE_TRANSACTION_ID: 1200THREAD_ID: 45EVENT_ID: 11OBJECT_SCHEMA: mydbOBJECT_NAME: mytable1PARTITION_NAME: NULLSUBPARTITION_NAME: NULLINDEX_NAME: NULL
OBJECT_INSTANCE_BEGIN: 118793337250203LOCK_TYPE: RECORDLOCK_MODE: XLOCK_STATUS: GRANTEDLOCK_DATA: 1922,1922
Which two statements are true?
□ A) The lock is an exclusive lock.
□ B) The lock is a shared lock.
□ C) The lock is a row-level lock.
□ D) The lock is an intentional lock.
□ E) The lock is at the metadata object level.
□ F) The lock is at the table object level.
翻譯
選擇兩項。
查看以下命令和輸出:
mysql> SELECT * FROM data_locks LIMIT 1\G
*************************** 1. row ***************************ENGINE: INNODBENGINE_LOCK_ID: 1200:146
ENGINE_TRANSACTION_ID: 1200THREAD_ID: 45EVENT_ID: 11OBJECT_SCHEMA: mydbOBJECT_NAME: mytable1PARTITION_NAME: NULLSUBPARTITION_NAME: NULLINDEX_NAME: NULL
OBJECT_INSTANCE_BEGIN: 118793337250203LOCK_TYPE: RECORDLOCK_MODE: XLOCK_STATUS: GRANTEDLOCK_DATA: 1922,1922
以下哪兩個陳述是正確的?
□ A) 該鎖是排他鎖。
□ B) 該鎖是共享鎖。
□ C) 該鎖是行級鎖。
□ D) 該鎖是意向鎖。
□ E) 該鎖在元數據對象級別。
□ F) 該鎖在表對象級別。
解析和答案
- 選項A:
LOCK_MODE: X
表示排他鎖(eXclusive lock ),A正確。 - 選項B:不是共享鎖(共享鎖是
S
模式 ),B錯誤。 - 選項C:
LOCK_TYPE: RECORD
表示行級鎖(記錄鎖 ),C正確。 - 選項D:意向鎖(Intent Lock )有專門的類型標識(如
IX
、IS
等 ),這里不是意向鎖,D錯誤。 - 選項E:元數據鎖是針對表結構等的鎖,這里是行級記錄鎖,E錯誤。
- 選項F:表級鎖的
LOCK_TYPE
會是TABLE
等,這里是RECORD
行級鎖,F錯誤。
所以答案是A、C。
知識點總結
- InnoDB 鎖類型識別:掌握從
data_locks
視圖中識別鎖類型的方法,通過LOCK_MODE
判斷是排他鎖(X
)還是共享鎖(S
),通過LOCK_TYPE
判斷是行級鎖(RECORD
)、表級鎖(TABLE
)還是意向鎖(如IX
)等。理解不同鎖類型的含義和作用,有助于分析數據庫并發訪問中的鎖競爭和阻塞問題,優化查詢性能和并發處理。 - 數據庫鎖機制分析:深入了解 InnoDB 的鎖機制,行級鎖用于精細控制記錄的訪問,排他鎖會阻止其他事務的寫操作和部分讀操作。在實際運維中,通過查詢
data_locks
等視圖分析鎖的狀態,能夠定位因鎖競爭導致的性能瓶頸,采取調整事務隔離級別、優化索引和查詢語句等措施,提升數據庫的并發處理能力。