成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

DBA應用技巧:如何升級InnoDB Plugin

數據庫 MySQL
本文中,我們將向讀者詳細介紹如何升級動態InnoDB Plugin和升級靜態編譯的InnoDB Plugin,以及如何轉換由1.0.2以前版本創建的壓縮表。

本文中,我們將向讀者詳細介紹如何升級動態InnoDB Plugin和升級靜態編譯的InnoDB Plugin,以及如何轉換由1.0.2以前版本創建的壓縮表。

一、概述

得益于MySQL的插件式存儲引擎體系結構,InnoDB Plugin的升級變得非常簡單,只需關閉MySQL,替換與平臺有關的可執行文件,然后重啟服務器即可。如果您希望升級并使用現有的數據庫,那么必須關閉MySQL,否則的話,新的插件在合并緩存的插入數據或者清空已刪記錄的時候就會出錯。如果您的數據庫中沒有任何壓縮表,在慢關機后,使用最新的InnoDB Plugin處理起數據庫來就不會遇到問題了。

然而,如果您的數據庫中含有壓縮表的話,則不適合使用InnoDB Plugin 1.0.8。因為1.0.2版本的InnoDB Plugin引入了一個不兼容的特性,所以一些壓縮表可能需要重建,具體轉換步驟見后文。

當然,我們可以使用mysqldump或其他的方法來重建我們的數據庫。如果我們的數據庫較小,或者各個表之間存在許多引用約束的話,那么這是一種較好的方法。

需要注意的是,如果使用InnoDB Plugin 1.0.8訪問您的數據庫的話,就不要再試圖用1.0.2之前的插件來訪問它們了。

二、升級動態InnoDB Plugin

在關閉包含InnoDB Plugin的MySQL服務器之前,我們必須啟用慢關閉功能,設置如下所示:

  1. SET GLOBAL innodb_fast_shutdown=0; 

在MySQL服務器在其中尋找插件的目錄內,將舊InnoDB Plugin (ha_innodb_plugin.so或ha_innodb_plugin.dll)的可執行文件重新命名,以便在需要的時候可以恢復它們。過后,我們也可以刪除這些文件。插件所在的目錄是由系統變量plugin_dir指定的。默認的位置通常是在basedir指定的目錄的lib/plugin子目錄中。

首先,我們需要根據自己的服務器平臺、操作系統和MySQL版本來下載合適的程序包。然后利用相應的工具進行解壓縮,在Linux和Unix系統下通常使用tar,在Windows系統中通常使用WinZip等工具軟件。將文件ha_innodb_plugin.so或ha_innodb_plugin.dll復制至MySQL服務器在其中尋找插件的目錄下。

啟動MySQL服務器。如果需要的話,可以按照后文介紹的方法來轉換壓縮表。

三、升級靜態編譯的InnoDB Plugin

就像動態安裝InnoDB Plugin一樣,我們需要慢關閉MySQL服務器。如果您的MySQL是從源代碼編譯過來并用源代碼樹中的InnoDB Plugin替換了MySQL內建的InnoDB的話,那么實際上您就會得到一個特殊版本的包含InnoDB Plugin的mysqld可執行文件。

如果您想升級到一個動態鏈接的InnoDB Plugin,則需要先卸載靜態編譯的InnoDB Plugin,然后再安裝作為共享庫發行的預編譯InnoDB Plugin。

如果您想從一個靜態編譯的InnoDB Plugin版本升級到另一個靜態編譯的InnoDB Plugin版本的話,則必須先重新構建一個mysqld可執行文件,關閉服務器,然后替換mysqld可執行文件,再啟動服務器。

不管怎樣,如果數據庫含有壓縮表的話,務必按照后文介紹的方法轉換壓縮表。

四、轉換由1.0.2以前版本創建的壓縮表

InnoDB Plugin的1.0.2版本引入了一個不兼容的壓縮表格式。這意味著,InnoDB Plugin早期版本創建的一些壓縮表,必須使用更大的KEY_BLOCK_SIZE重新構建之后才能夠繼續使用。

升級到InnoDB Plugin 1.0.2或更高版本的時候,如果必須保持現有的數據庫的話,則需要慢關閉正在運行早先版本InnoDB Plugin的MySQL。之后,確定出哪些壓縮表需要轉換,繼而使用新版本的InnoDB Plugin升級這些表。具體操作如下所示。

下面介紹如何處理由1.0.0版本或1.0.1版本的InnoDB Plugin所創建的壓縮表。由于新版本中引入了一個不兼容的特性,所以新InnoDB Plugin從壓縮表清除已刪記錄或者合并緩沖的插入記錄時,會遇到問題。然而,也不是所有的壓縮表都需要重新構建。這里我們將為讀者介紹如何識別和處理這些需要重建的壓縮表。

如果現有的數據庫包含有之前版本InnoDB Plugin所創建的表的話,必須使用慢關閉使用舊的InnoDB Plugin的MySQL服務器。即,在關閉InnoDB Plugin舊實例之前,需要設置SET GLOBAL innodb_fast_shutdown=0。

在啟動升級了InnoDB Plugin的MySQL服務器之后,必須檢查壓縮表是否已經轉換。首先,啟用InnoDB的strict模式進行更為細致的錯誤檢查:SET SESSION innodb_strict_mode = 1。然后,為每一個壓縮表生成一個對應的新表。我們可以通過以下步驟完成:

1. 列出壓縮表:

  1. SELECT table_schema, table_name  
  2. FROM information_schema.tables  
  3. WHERE engine=’innodb’ AND row_format=’COMPRESSED’; 

2. 對于每個表,顯示其表的定義:SHOW CREATE TABLE table_schema.table_name\G

3. 使用不同的表名執行CREATE TABLE語句。

4. 如果表創建成功,刪除新建的表,繼續處理下一個壓縮表。

5. 如果表創建失敗,則嘗試用更大的KEY_BLOCK_SIZE,直到成功為止。然后刪除新創的表,使用剛才成功執行CREATE TABLE的KEY_BLOCK_SIZE對原始表執行ALTER TABLE。

如果某些特殊的表不允許增加KEY_BLOCK_SIZE,則可以用較短的列索引長度來重建表。這是因為用于索引的列前綴會占用B樹結點中的大量空間。較短的前綴減少了索引的精選,但是索引記錄會更短,以便它們適于頁面大小。較短的前綴還意味著更多的索引項適于B樹結點,從而提高了效率。

如果各個表之間存在引用約束的話,上述過程將會更加復雜,所以更好的選擇是聯合使用舊的InnoDB Plugin和mysqldump,然后用InnoDB Plugin 1.0.2把數據載入新的數據庫中。

五、小結

本文中,我們向讀者詳細介紹了如何升級動態InnoDB Plugin和升級靜態編譯的InnoDB Plugin,以及如何轉換由1.0.2以前版本創建的壓縮表。

【編輯推薦】

  1. MySQL數據庫集群進行正確配置步驟
  2. 十個節省時間的MySQL命令
  3. DBA必備:MySQL數據庫常用操作和技巧
  4. MySQL日志操作教程:DBA們管理的利器
  5. MySQL觸發器如何正確使用

 

責任編輯:艾婧 來源: ITPUB
相關推薦

2017-05-24 08:49:35

Oracle數據庫Abrar Syed

2010-03-18 13:10:59

MySQL

2023-03-09 15:10:49

應用開發鴻蒙

2011-05-10 17:38:35

DBA面試

2017-04-28 11:02:58

glance鏡像技巧

2010-12-27 17:04:07

應用程序版本升級

2014-01-22 10:35:58

應用寶開放平臺

2011-02-25 15:31:19

MySQL數據庫DBA

2024-11-12 10:22:52

2011-05-27 13:47:30

DBA

2012-06-06 09:34:43

ASO技巧為應用撰寫描述

2010-01-27 17:45:15

Android應用技巧

2009-12-15 10:23:23

Ruby應用技巧

2012-07-12 16:42:01

Windows 7

2020-07-31 13:55:57

MySQL數據庫DBA

2009-02-23 10:31:36

2019-05-08 14:02:52

MySQL索引查詢優化數據庫

2024-03-08 09:46:53

2012-06-06 09:30:10

ASO技巧為應用取名字

2020-05-27 10:35:16

SQLDBA 索引
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本不卡一区 | 99国内精品久久久久久久 | 精品久久久久国产 | 超碰日本 | 一区二区在线 | 成人精品免费视频 | 激情视频网站 | 久草新在线 | 婷婷福利视频导航 | 欧美极品一区二区 | 狠狠综合久久av一区二区老牛 | 国产美女免费视频 | 日韩av免费在线观看 | 亚洲人成在线观看 | 国产激情网 | 高清一区二区 | 成人欧美日韩一区二区三区 | 成人综合视频在线观看 | 欧美精品一二三 | 日韩精品1区2区 | 一区二区三区四区日韩 | 国产精品国产馆在线真实露脸 | 精精国产xxxx视频在线野外 | 一级欧美| 九九九视频精品 | 在线看亚洲 | 中文字幕在线二区 | 日韩欧美视频在线 | 青青草av在线播放 | 欧美1区2区 | 亚洲精品福利在线 | 久久伊人精品 | 欧美激情国产日韩精品一区18 | 欧美三级电影在线播放 | 91精品国产91久久久久青草 | 澳门永久av免费网站 | 成人精品啪啪欧美成 | 国产视频一区在线观看 | 国产高清视频 | 精品国产伦一区二区三区观看体验 | 成人国产精品色哟哟 |