<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > MySQL MyISAM和InNodb備份與恢復(fù)技巧

          MySQL MyISAM和InNodb備份與恢復(fù)技巧

          作者: 時間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

          在注釋中顯示日志的十六進制轉(zhuǎn)儲。該輸出可以幫助復(fù)制過程中的調(diào)試。在 5.1.2中添加了該選項。

          本文引用地址:http://www.ex-cimer.com/article/201609/304118.htm

          · --host=host_name,-h host_name

          獲取給定主機上的服務(wù)器的二進制日志。

          · --local-load=path,-l pat

          為指定目錄中的LOAD DATA INFILE預(yù)處理本地臨時文件。

          · --offset=N,-o N

          跳過前N個條目。

          · --password[=password],-p[password]

          當(dāng)連接服務(wù)器時使用的密碼。如果使用短選項形式(-p),選項和 密碼之間不能有空格。如果在命令行中--password或-p選項后面沒有 密碼值,則提示輸入一個密碼。

          · --port=port_num,-P port_num

          用于連接遠(yuǎn)程服務(wù)器的TCP/IP端口號。

          · --position=N,-j N

          不贊成使用,應(yīng)使用--start-position。

          · --protocol={TCP | SOCKET | PIPE | -position

          使用的連接協(xié)議。

          · --read-from-remote-server,-R

          服務(wù)器讀二進制日志。如果未給出該選項,任何連接參數(shù)選項將被忽略。這些選項是--host、--password、--port、--protocol、--socket和--user。

          · --result-file=name, -r name

          將輸出指向給定的文件。

          · --short-form,-s

          只顯示日志中包含的語句,不顯示其它信息。

          · --socket=path,-S path

          用于連接的套接字文件。

          · --start-datetime=datetime

          從二進制日志中第1個日期時間等于或晚于datetime參量的事件開始讀取。datetime值相對于運行mysqlbinlog的機器上的本地時區(qū)。該值格式應(yīng)符合DATETIME或TIMESTAMP數(shù)據(jù)類型。例如:

          shell> mysqlbinlog --start-datetime=2004-12-25 11:25:56 binlog.000003

          該選項可以幫助點對點。

          · --stop-datetime=datetime

          從二進制日志中第1個日期時間等于或晚于datetime參量的事件起停止讀。關(guān)于datetime值的描述參見--start-datetime選項。該選項可以幫助及時。

          · --start-position=N

          從二進制日志中第1個位置等于N參量時的事件開始讀。

          · --stop-position=N

          從二進制日志中第1個位置等于和大于N參量時的事件起停止讀。

          · --to-last-logs,-t

          在MySQL服務(wù)器中請求的二進制日志的結(jié)尾處不停止,而是繼續(xù)打印直到最后一個二進制日志的結(jié)尾。如果將輸出發(fā)送給同一臺MySQL服務(wù)器,會導(dǎo)致無限循環(huán)。該選項要求--read-from-remote-server。

          · --disable-logs-bin,-D

          禁用二進制日志。如果使用--to-last-logs選項將輸出發(fā)送給同一臺MySQL服務(wù)器,可以避免無限循環(huán)。該選項在崩潰時也很有用,可以避免復(fù)制已經(jīng)記錄的語句。注釋:該選項要求有SUPER權(quán)限。

          · --user=user_name,-u user_name

          連接遠(yuǎn)程服務(wù)器時使用的MySQL用戶名。

          · --version,-V

          顯示版本信息并退出。

          還可以使用--var_name=value選項設(shè)置下面的變量:

          · open_files_limit

          指定要保留的打開的文件描述符的數(shù)量。

          4. InnoDB 表/恢復(fù)策略

          4.1. 使用商業(yè)的在線熱工具

          InnoDB Hotbackup 是一個在線工具,你可以用它來在InnoDB數(shù)據(jù)庫運行之時備份你的InnoDB數(shù)據(jù)庫。InnoDB 熱備份工具 不要求你關(guān)閉數(shù)據(jù)庫,并且它不設(shè)置任何鎖定或干擾你正常的數(shù)據(jù)庫處理。InnoDB 熱備份工具 是非免費(商業(yè)的)附加軟件,它每年的證書費用是每臺MySQL服務(wù)器運行的計算機390歐元。

          具體使用方法可以參考相關(guān)文檔,我也沒有使用過這個工具。

          4.2. 使用mysqldump 熱備份

          Mysqldump提供對InnoDB非物理的在線邏輯熱備份。

          使用方法與備份MyISAM時一樣。

          4.3. 使用select into 熱備份單個/多個表

          可以使用select into備份一個或多個表,用法與MyISAM表相同。

          4.4. 二進制冷備份

          如果你可以關(guān)閉你的MySQL服務(wù)器,你可以生成一個包含InnoDB用來管理它的表的所有文件的二進制備份。使用如下步驟:

          1. 關(guān)閉MySQL服務(wù)器,確信它是無錯誤關(guān)閉。

          2. 復(fù)制你所有數(shù)據(jù)文件(ibdata文件和.ibd文件)到一個安全的地方。

          3. 復(fù)制你所有ib_logfile文件到一個安全的地方。

          4. 復(fù)制my.cnf配置文件或文件到一個安全的地方。

          5. 為你InnoDB表復(fù)制.frm文件到一個安全的地方。

          4.5. InnoDB 表恢復(fù)

          1、 先嘗試使用InnoDB的日志自動恢復(fù)功能,方法是重啟mysql服務(wù)。

          2、 在一些情況下,明顯地數(shù)據(jù)庫損壞是因為操作系統(tǒng)損壞它自己的文件緩存,磁盤上的數(shù)據(jù)可能完好,最好是首先重啟計算機。它可以消除那些顯得是數(shù)據(jù)庫頁損壞的錯誤。

          如果不行,則采用下面的方法進行恢復(fù)。

          3、 如果是mysqldump做的完全備份,先恢復(fù)完全備份,然后再恢復(fù)完全備份后的增量日志備份。

          4、 如果是采用select into備份表的話,則采用load data或mysqlimport恢復(fù)。

          5、 如果是采用二進制冷備份做的完全備份,則先停止mysql服務(wù),覆蓋備份的二進制文件,然后執(zhí)行上次完全備份后的增量日志備份。

          6、 注意:InnoDB二進制文件沒有MyISAM那么好,必須在相同的浮點數(shù)的cpu機器上移植。

          5. MyISAM/InnoDB 備份/恢復(fù)策略

          因為在一個數(shù)據(jù)庫中有可能要同時使用MyISAM和InnoDB兩種引擎,因此統(tǒng)一考慮他們的備份/恢復(fù)策略。

          1、 完整備份采用mysqldump。

          2、 增量備份采用bin-log日志。

          3、 單表備份采用select into。

          4、

          6. 定期維護表

          雖然MySQL提供了多種備份/恢復(fù)手段,但是定期維護表大大可以降低表毀壞的可能性,并且可以提高查詢性能。

          1、對于InnoDB引擎,你可以使用innodb_tablespace_monitor來檢查表空間文件內(nèi)文件空間管理的完整性。

          2、對于MyISAM引擎,可以通過sql語句或myisamchk 工具來維護表 。



          關(guān)鍵詞: MySQL 備份 恢復(fù)

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();