您好,登錄后才能下訂單哦!
本篇內容介紹了“mysql數據庫有哪些文件”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
實例啟動后,將自己唯一進程號記錄到自己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
數據庫兩種鏈接方式,網絡連接和本地連接
mysql.sock文件是服務器與本地客戶端進行通信的unix套接字文件,默認位置/tmp/mysql.sock
mysql8.0之前,以.frm結尾的文件是表結構文件,從8.0開始,frm表的定義文件被消除掉,數據都寫到系統表空間,通過利用InnoDB引擎實現表的DDL語句操作原子性。此前版本無法實現表DDL語句操作的原子性,如truncate無法回滾。
問題:書中說mysql的truncate能回滾?查相關資料,沒說能回滾的。
前面測試創建表的,在目錄下可看到該表文件,
# ls t.*
t.frm t.ibd
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數據庫有哪些文件”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。