mysql學習9:第四章:資料庫檔案--檔案
例項啟動後,將自己唯一程式號記錄到自己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空間在回滾段沒有釋放前不會收縮。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29519108/viewspace-2218906/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql學習8:第四章:資料庫檔案--日誌檔案MySql資料庫
- mysql學習7:第四章:資料庫檔案--引數檔案和型別MySql資料庫型別
- MySQL8.0.18資料庫新增資料檔案MySql資料庫
- 第四章:COMTRADE 資料檔案
- Mysql資料庫配置檔案(my.ini)分析MySql資料庫
- 織夢資料庫配置檔案-DedeCMS織夢資料庫檔案在哪裡資料庫
- python——將excel檔案寫入mysql資料庫中PythonExcelMySql資料庫
- Mysql資料庫使用Navicat Mysql匯入sql檔案報錯MySql資料庫
- 帝國CMS資料庫配置檔案是哪個檔案?資料庫
- Python學習之路9-檔案和異常Python
- oracle資料庫的配置檔案Oracle資料庫
- MySQL資料庫中常見的日誌檔案彙總!MySql資料庫
- 織夢CMS(dedecms)的資料庫連線檔案_織夢連線資料庫檔案資料庫
- 網站檔案修改資料庫,安全高效地修改網站資料庫中的檔案資訊網站資料庫
- 帝國CMS系統資料庫配置檔案是哪個檔案?資料庫
- 織夢CMS資料庫配置檔案資料庫
- 織夢php資料庫配置檔案PHP資料庫
- 2.5.10.3 指定資料庫時區檔案資料庫
- oracle uncatalog資料庫備份檔案Oracle資料庫
- Sqlserver資料庫使用 .bak 檔案還原資料庫SQLServer資料庫
- 檔案IO的學習
- 基於Docker部署Oracle、MySQL等資料庫的資料檔案持久化DockerOracleMySql資料庫持久化
- Python科研武器庫 - 檔案/路徑操作 - 判斷檔案或資料夾Python
- SQL Server資料庫還原過程記錄,bak檔案+mdf檔案SQLServer資料庫
- 9. 檔案操作
- 檔案與資料
- locate標頭檔案和庫檔案
- 織夢資料庫配置檔案修改資料庫配置方法資料庫
- 教你自動恢復MySQL資料庫的日誌檔案(binlog)MySql資料庫
- 【資料庫資料恢復】EXT3檔案系統下MYSQL資料庫恢復案例資料庫資料恢復MySql
- MySQL配置檔案MySql
- mysql 配置檔案MySql
- 網站連線資料庫配置檔案網站資料庫
- 使用openpyxl庫讀取Excel檔案資料Excel
- oracle dg庫資料檔案空間不足Oracle
- 2.5.10.2 關於資料庫時區檔案資料庫
- git的gitignore檔案排除資料夾和檔案Git
- Oracle資料檔案和臨時檔案的管理Oracle