MySQL 配置InnoDB為只讀操作
配置InnoDB為只讀操作
透過在伺服器啟動時啟用--innodb-read-only配置選項,您現在可以查詢MySQL資料目錄在只讀介質上的InnoDB表。
如何啟用只讀
要為只讀操作準備例項,請確保在將資料檔案儲存到只讀介質之前將所有必要的資訊重新整理到資料檔案。以禁用改變緩衝區的方式執行MySQL(innodb_change_buffering=0)伺服器,並緩慢關閉。
要為整個MySQL例項啟用只讀模式,請在伺服器啟動時指定以下配置選項
.--innodb-read->
.如果例項位於只讀介質(如DVD或CD)上,或者/var目錄不是所有人都可寫的:
--pid-file=path_on_writeable_media和--event-scheduler=disabled
.--innodb_temp_data_file_path。該選項指定InnoDB臨時表空間資料檔案的路徑、檔名和檔案大小。預設設定為ibtmp1:12M;autoextend,在資料目錄下建立ibtmp1臨時表空間資料檔案。為只讀操作準備一個例項,需要將innodb_temp_data_file_path設定為資料目錄之外的位置。該路徑必須相對於資料目錄;例如:
--innodb_temp_data_file_path=../../../tmp/ibtmp1:12M:autoextend
使用場景
這種操作方式適用於以下情況:
.分發一個MySQL應用程式或一組MySQL資料到只讀儲存介質上,如DVD或CD。
.通常在資料倉儲配置中,多個MySQL例項同時查詢相同的資料目錄。您可以使用這種技術來避免過載MySQL例項可能出現的瓶頸,或者您可以為不同的例項使用不同的配置選項來針對特定型別的查詢調優每個例項。
.查詢由於安全或資料完整性原因而處於只讀狀態的資料,如已歸檔的備份資料。
注意:這個特性主要是為了實現分發和部署中的靈活性,而不是基於只讀方面的原始效能。
工作原理
當伺服器透過--innodb-read-only選項以只讀模式執行時,某些InnoDB特性和元件會減少或完全關閉:
.沒有進行更改緩衝,特別是沒有從更改緩衝區進行合併。當你準備例項進行只讀操作時,為了確保更改緩衝區是空的,禁用更改緩衝區(innodb_change_buffering=0),並先做一個緩慢的關閉。
.在啟動時沒有崩潰恢復階段。例項必須在進入只讀狀態之前執行了緩慢關閉。
.因為重做日誌不用於只讀操作,所以在使例項只讀之前,可以將innodb_log_file_size設定為最小的大小(1MB)。
.除I/O讀執行緒外的所有後臺執行緒都被關閉。因此,只讀例項不會遇到任何死鎖。
.關於死鎖、監視器輸出等資訊不會寫入臨時檔案。因此,SHOW ENGINE INNODB STATUS不會產生任何輸出。
.如果MySQL伺服器以--innodb-read-only啟動,但資料目錄仍然在可寫介質上,root使用者仍然可以執行DCL操作,如GRANT和REVOKE。
.對配置選項設定的更改通常會改變寫操作的行為,但在伺服器處於只讀模式時沒有影響。
.用於MVCC處理的隔離級別被強制關閉。所有查詢都讀取記錄的最新版本,因為不可能進行更新和刪除。
.未使用undo日誌。禁用innodb_undo_tablespaces和innodb_undo_directory配置選項的任何設定。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2886307/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MYSQL innodb中的只讀事物以及事物id的分配方式MySql
- MySQL設定資料庫為只讀MySql資料庫
- timesten配置只讀同步
- MySQL InnoDB記憶體配置MySql記憶體
- MySQL 配置InnoDB清理排程MySql
- MySQL InnoDB頁面大小配置MySql
- MySql 建立只讀賬號MySql
- Mysql更換MyISAM儲存引擎為Innodb的操作記錄MySql儲存引擎
- MySQL5.7 InnoDB線上DDL操作MySql
- comboBox設定為只讀(只選)
- MySQL InnoDB日誌檔案配置MySql
- MySQL InnoDB Undo表空間配置MySql
- MySQL 配置InnoDB變更緩衝MySql
- MySQL InnoDB臨時表空間配置MySql
- MySQL 配置InnoDB的併發執行緒MySql執行緒
- 解讀MySQL的InnoDB引擎日誌工作原理MySql
- 2.2.3 關於配置Oracle-Home只讀模式Oracle模式
- MySQL 配置InnoDB的記憶體分配器MySql記憶體
- MySQL 配置InnoDB主執行緒I/O速率MySql執行緒
- 如何選擇配置 MySQL innodb_log_file_sizeMySql
- MySQL update資料時InnoDB內部的操作流程MySql
- (轉)解讀MySQL的InnoDB引擎日誌工作原理MySql
- python 操作 mysql 只看這篇就夠了PythonMySql
- 表單元素設定為只讀狀態
- MySQL 配置InnoDB配置非持久優化器統計資訊引數MySql優化
- 批量修改Mysql資料庫表Innodb為MyISANMySql資料庫
- MySQL 配置後臺InnoDB I/O執行緒數MySql執行緒
- MySQL InnoDB 索引MySql索引
- Mysql技術內幕InnoDB儲存引擎讀書筆記--《二》InnoDB儲存引擎MySql儲存引擎筆記
- MySQL InnoDB系統表空間資料檔案配置MySql
- MySQl 配置InnoDB持久化的優化器統計資訊MySql持久化優化
- MySQL服務端innodb_buffer_pool_size配置引數MySql服務端
- MySQL中MyISAM為什麼比InnoDB查詢快MySql
- word檔案怎樣取消只讀模式 把只讀檔案轉化為可編輯檔案模式
- MySQL 最佳實踐: RDS 只讀例項延遲分析MySql
- InnoDB update操作流程圖流程圖
- MySQL常用操作和主從配置MySql
- MySQL5.1 MyISAM與InnoDB 引擎讀寫效能對比薦MySql