程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysqlhotcopy命令詳解

mysqlhotcopy命令詳解

編輯:MySQL綜合教程

mysqlhotcopy命令詳解   前言 mysqldump 是采用SQL級別的備份機制,它將數據表導成 SQL 腳本文件,數據庫大時,占用系統資源較多,支持常用的MyISAM,innodb   mysqlhotcopy只是簡單的緩存寫入和文件復制的過程,占用資源和備份速度比mysqldump快很多很多。特別適合大的數據庫,但需要注意的是:mysqlhotcopy只支持MyISAM 引擎   使用mysqlhotcopy需要安裝perl支持,因為mysqlhotcopy是prel語言寫的。   所以使用前先安裝一下啊以下三個perl包   [plain]  yum install -y perl perl-DBI perl-DBD-MySQL   安裝好了之後呢,如果你正常安裝mysql的話,無論是通過yum,apt-get 還是源碼安裝,那麼就可以直接使用 mysqlhotcopy了   mysqlhotcopy原理 mysqlhotcopy是一個Perl腳本,最初由Tim Bunce編寫並提供。它使用LOCK TABLES、FLUSH TABLES和cp或scp來快速備份數據庫。它是備份數據庫或單個表的最快的途徑,但它只能運行在數據庫目錄所在的機器上。mysqlhotcopy只用於備份MyISAM。它運行在Unix和NetWare中。   實際操作 這裡我個人有個習慣,就是在熱備的時候,刷新一下binlog日志,mysqlhotcopy有個--flushlog參數支持這一功能。   所以先看一下,數據庫裡面有哪些binlog日志,如下:     查看一下binlog日志此刻的使用到那個具體的binlog文件中,還有處於什麼位置,可以通過如下命令:     此時,知道了這些,就可以開始熱備了   $mysqlhotcopy -u user -p password --flushlog djangodb /tmp   #注意-u user -p password 之間都要有空格,否則mysqlhotcopy識別不了,這裡和mysql,mysqldump命令還是有區別的   djangodb 是指庫名   /tmp 是指要備份的目錄位置,這裡備份後,會在/tmp下產生一個djangodb的目錄,裡面有相關的數據文件,如下圖:     這裡還需要注意的是,你得有select,reload(為了flush tables),lock tables權限。   好了,備份之後,可以再看一下binlog日志,此刻多了一個binlog日志。     binlog日志裡面的position位置也改變了。     這裡--flushlog,主要是為了備份和回復的角度考慮的。   一般這樣使用就足夠了,如果有特別需求,可以看一下啊man mysqlhotcopy的具體參數介紹

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved