溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mysql數(shù)據(jù)庫有哪些文件

發(fā)布時間:2021-11-10 11:29:12 來源:億速云 閱讀:278 作者:iii 欄目:MySQL數(shù)據(jù)庫

本篇內(nèi)容介紹了“mysql數(shù)據(jù)庫有哪些文件”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

1.1.  pid文件

實例啟動后,將自己唯一進程號記錄到自己pid文件中,保存在數(shù)據(jù)目錄下。

注意:在配置文件my.cnf中必須配置pid-file=/data/mysql/mysql.pid,否則數(shù)據(jù)庫啟動報錯。

查看進程,可看到文件路徑。

[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文件

數(shù)據(jù)庫兩種鏈接方式,網(wǎng)絡(luò)連接和本地連接

mysql.sock文件是服務(wù)器與本地客戶端進行通信的unix套接字文件,默認(rèn)位置/tmp/mysql.sock

1.3.  表結(jié)構(gòu)文件

mysql8.0之前,以.frm結(jié)尾的文件是表結(jié)構(gòu)文件,從8.0開始,frm表的定義文件被消除掉,數(shù)據(jù)都寫到系統(tǒng)表空間,通過利用InnoDB引擎實現(xiàn)表的DDL語句操作原子性。此前版本無法實現(xiàn)表DDL語句操作的原子性,如truncate無法回滾。

問題:書中說mysql的truncate能回滾?查相關(guān)資料,沒說能回滾的。

前面測試創(chuàng)建表的,在目錄下可看到該表文件,

# ls t.*

t.frm  t.ibd

1.4.  InnoDB存儲引擎文件

InnoDB存儲引擎層面主要分兩種日志:redo log 和   undo log

InnoDB多版本通過使用undo和回滾段實現(xiàn)

InnoDB是索引組織表,每行記錄都實現(xiàn)三個隱藏字段:

n  DB_ROW_ID

n  DB_TRX_ID:代表每行記錄的事務(wù)ID

n  DB_ROLL_PTR:代表每行記錄的回滾指針。

InnoDB有一個全局事務(wù)鏈表,每個事務(wù)的開始都會把事務(wù)ID放到鏈表中,DB_ROLL_PTR指針指向undo記錄,構(gòu)造多版本。

redo log用于記錄事務(wù)操作變化,記錄的是數(shù)據(jù)被修改之后的值。

undo日志文件

undo記錄(insert,update,delete),只記錄變更前的舊數(shù)據(jù),默認(rèn)記錄到系統(tǒng)表空間ibdata1,從5.6開始可以使用獨立undo表空間,可以把undo文件部署到單獨的高速存儲上。

undo log的主要參數(shù)

[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回滾段數(shù)量默認(rèn)128個,可將大回滾段拆分成多個小回滾段,每個log segments最多存1024個事務(wù)。

innodb_undo_tablespaces代表undo tablespace的個數(shù),默認(rèn)0個;表空間有undo log文件,默認(rèn)10M。undo tablespace數(shù)量最少2個,以備truncate undo tablespace切換。

innodb_max_undo_size,5.7新增,默認(rèn)1G,達到閾值觸發(fā)truncate undo logs。truncate后的undo logs大小默認(rèn)恢復(fù)為10M??稍诰€刪除無用undo log,但需開啟innodb_undo_log_truncate,默認(rèn)關(guān)閉。

innodb_pure_rseg_truncate_frequency:5.7新增,控制回收undo log的頻率,默認(rèn)128.表示purge undo輪詢128次后,進行一次undo的truncate操作;但undo log空間在回滾段沒有釋放前不會收縮。

“mysql數(shù)據(jù)庫有哪些文件”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI