1. 程式人生 > >linux運維工程師面試常見問題整理1--mysql相關

linux運維工程師面試常見問題整理1--mysql相關

一.mysql 資料庫相關

  1. 主從原理是什麼

    從庫生成兩個執行緒,一個I/O執行緒,一個SQL執行緒;

    i/o執行緒去請求主庫 的binlog,並將得到的binlog日誌寫到relay log(中繼日誌) 檔案中;

    主庫會生成一個 log dump 執行緒,用來給從庫 i/o執行緒傳binlog;

    SQL 執行緒,會讀取relay log檔案中的日誌,並解析成具體操作,來實現主從的操作一致,而最終資料一致;

  2. 主從原理圖解釋
    在這裡插入圖片描述

  3. mysql 用了什麼引擎

    Innodb引擎

    MyIASM引擎

  4. 主從同步異常怎麼解決

    設定MySQL雙一模式,將需要同步的資料儲存到磁碟中。

    innodb_flush_log_at_trx_commit

    如果innodb_flush_log_at_trx_commit設定為0,log buffer將每秒一次地寫入log file中,並且log file的flush(刷到磁碟)操作同時進行.該模式下,在事務提交的時候,不會主動觸發寫入磁碟的操作。

    如果innodb_flush_log_at_trx_commit設定為1,每次事務提交時MySQL都會把log buffer的資料寫入log file,並且flush(刷到磁碟)中去.

    如果innodb_flush_log_at_trx_commit設定為2,每次事務提交時MySQL都會把log buffer的資料寫入log file.但是flush(刷到磁碟)操作並不會同時進行。該模式下,MySQL會每秒執行一次 flush(刷到磁碟)操作。

    sync_binlog

    sync_binlog 的預設值是0,像作業系統刷其他檔案的機制一樣,MySQL不會同步到磁碟中去而是依賴作業系統來重新整理binary log。

    當sync_binlog =N (N>0) ,MySQL 在每寫 N次 二進位制日誌binary log時,會使用fdatasync()函式將它的寫二進位制日誌binary log同步到磁碟中去。

  5. 主從同步,主伺服器宕機怎麼處理

    可用keepalived做主從,主宕機可以切到優先順序高的伺服器,讓優先順序高的伺服器做主。

  6. 資料庫完整備份增量備份命令

    MySQLdump -uroot -ppassword 1601G > backup.bak

    MySQLdump -uroot -ppassword 1601G >> backup.bak

  7. 資料庫備份與還原

    mysqldump命令做備份

    mysql命令做還原

  8. mysql 優化做了哪些

    MySQL核心優化

    MySQL配置引數優化,此優化需要進行壓力測試來進行引數調整

    對SQL語句以及表優化