共計 2230 個字符,預計需要花費 6 分鐘才能閱讀完成。
本篇內容介紹了“mysql 數據庫有哪些文件”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
1.1.
pid 文件
實例啟動后,將自己唯一進程號記錄到自己 pid 文件中,保存在數據目錄下。
注意:在配置文件 my.cnf 中必須配置 pid-file=/data/mysql/mysql.pid,否則數據庫啟動報錯。
查看進程,可看到文件路徑。
[root@localhost mysql]# ps -ef |grep mysql
root 20196 1 0 14:15 pts/1 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe –datadir=/data/mysql –pid-file=/data/mysql/mysql.pid
mysql 21556 20196 0 14:15 pts/1 00:00:06 /usr/local/mysql/bin/mysqld –basedir=/usr/local/mysql –datadir=/data/mysql –plugin-dir=/usr/local/mysql/lib/plugin –user=mysql –log-error=/data/mysql/error.log –open-files-limit=65535
–pid-file=/data/mysql/mysql.pid
–socket=/tmp/mysql.sock –port=3306
1.2.
Socket 文件
數據庫兩種鏈接方式,網絡連接和本地連接
mysql.sock 文件是服務器與本地客戶端進行通信的 unix 套接字文件,默認位置 /tmp/mysql.sock
1.3.
表結構文件
mysql8.0 之前,以.frm 結尾的文件是表結構文件,從 8.0 開始,frm 表的定義文件被消除掉,數據都寫到系統表空間,通過利用 InnoDB 引擎實現表的 DDL 語句操作原子性。此前版本無法實現表 DDL 語句操作的原子性,如 truncate 無法回滾。
問題:書中說 mysql 的 truncate 能回滾?查相關資料,沒說能回滾的。
前面測試創建表的,在目錄下可看到該表文件,
# ls t.*
t.frm t.ibd
1.4.
InnoDB 存儲引擎文件
InnoDB 存儲引擎層面主要分兩種日志:redo log 和 undo log
InnoDB 多版本通過使用 undo 和回滾段實現
InnoDB 是索引組織表,每行記錄都實現三個隱藏字段:
n
DB_ROW_ID
n
DB_TRX_ID:代表每行記錄的事務 ID
n
DB_ROLL_PTR:代表每行記錄的回滾指針。
InnoDB 有一個全局事務鏈表,每個事務的開始都會把事務 ID 放到鏈表中,DB_ROLL_PTR 指針指向 undo 記錄,構造多版本。
redo log 用于記錄事務操作變化,記錄的是數據被修改之后的值。
undo 日志文件
undo 記錄(insert,update,delete),只記錄變更前的舊數據,默認記錄到系統表空間 ibdata1,從 5.6 開始可以使用獨立 undo 表空間,可以把 undo 文件部署到單獨的高速存儲上。
undo log 的主要參數
[mysql] show variables like %undo%
+————————–+————+
| Variable_name | Value |
+————————–+————+
| innodb_max_undo_log_size | 1073741824 |
| innodb_undo_directory | ./ |
| innodb_undo_log_truncate | OFF |
| innodb_undo_logs | 128 |
| innodb_undo_tablespaces | 0 |
+————————–+————+
innodb_undo_directory:undo 文件的存儲目錄;
innodb_undo_logs:undo 回滾段數量默認 128 個, 可將大回滾段拆分成多個小回滾段,每個 log segments 最多存 1024 個事務。
innodb_undo_tablespaces 代表 undo tablespace 的個數,默認 0 個;表空間有 undo log 文件,默認 10M。undo tablespace 數量最少 2 個,以備 truncate undo tablespace 切換。
innodb_max_undo_size,5.7 新增,默認 1G,達到閾值觸發 truncate undo logs。truncate 后的 undo logs 大小默認恢復為 10M。可在線刪除無用 undo log,但需開啟 innodb_undo_log_truncate,默認關閉。
innodb_pure_rseg_truncate_frequency:5.7 新增,控制回收 undo log 的頻率,默認 128. 表示 purge undo 輪詢 128 次后,進行一次 undo 的 truncate 操作;但 undo log 空間在回滾段沒有釋放前不會收縮。
“mysql 數據庫有哪些文件”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!