#使用mysqldump備份所有庫
? ?mysqldump –opt –master-data –single-transaction –u root –ppassword –all –database > all.sql
? ?參數(shù)說明:–opt 好像是默認(rèn)選項(xiàng),不加也可以,主要作用是防止庫太大,不加的話會把結(jié)果先放進(jìn)內(nèi)存,這樣會出問題
?–master-data 這個(gè)主要是在結(jié)果上顯示導(dǎo)出的位置(二進(jìn)制日志的pos)
?–single-transaction 這個(gè)是相對于innodb引擎起作用的,類似于flush table with read lock吧;
#使用mysqldump備份一個(gè)庫
? mysqldump –u root –ppassword databasename > databasename.sql
#使用mysqldump備份一個(gè)表(即導(dǎo)出一個(gè)表數(shù)據(jù))
?mysqldump –u root –ppassword –databases databasename –tables tablename > tablename.sql
#使用mysqldump壓縮備份
? ?mysqldump –u root –ppassword databasename | gzip > databasename.sql.gz
#mysqldump的恢復(fù)
? ?gunzip ? ?mysql –u root –ppassword databasename 也可以登陸進(jìn)mysql,然后運(yùn)行source /tmp/databasename.sql
#使用mysqlhotcopy備份庫
? mysqlhotcopy –uroot –p=password databasename ?/bakup/備份目錄
#使用mysqlhotcopy備份某一個(gè)表
? mysqlhotcopy –u root –p=password databasename./tablename/ ?/backup/備份目錄
#使用mysqlhotcopy備份庫并增加備份記錄
? mysqlhotcopy –u root –p=password –checkpoint=hotcopy.checkpoint databasename ?/bakup/備份記錄
? 參數(shù)說明:將每次執(zhí)行備份的記錄保存在hotcopy庫-checkpoint表中,需要事先創(chuàng)建好庫和表
如:create databases hotcopy;?
? ? use hotcopy;
? ? create table checkpoint (time_stamp timestamp not null,src varchar(32),dest varchar(32),msg varcher(255));
#恢復(fù)hotcopy備份的庫
直接將數(shù)據(jù)庫目錄拷貝至數(shù)據(jù)庫的數(shù)據(jù)目錄即可,注意目錄的權(quán)限。
#mysqldump和mysqlhotcopy的區(qū)別和個(gè)人理解
? ? mysqlhotcopy只適用于myisam引擎的表;
? ? 使用mysqlhotcopy必須要安裝perl-dbi、perl-dbd-mysql模塊
? ? 二者執(zhí)行時(shí)都會自動鎖表
? ? 恢復(fù)時(shí)mysqlhotcopy的備份文件需要拷至目標(biāo)目錄覆蓋,mysqldump需要把備份文件導(dǎo)入到原庫
#基于二進(jìn)制日志的恢復(fù)
? mysqlbinlog mysql-bin.xxxxx | mysql –u root –ppassword // 恢復(fù)整個(gè)mysql-bin.xxxx二進(jìn)志文件
? mysqlbinlog –start-datatime=”2014-02-28 10:00:00” –stop-datatime=”2014-02-28 12:00:00” mysql-bin.xxxx | mysql –u root –ppassword //恢復(fù)mysql-bin.xxxx中從10點(diǎn)到12點(diǎn)的部分操作
?mysqlbinlog –start-position=’3000’ –stop-position=’5000’ mysql-bin.xxxx | mysql –u root –ppassword ?//恢復(fù)mysql-bin.xxxx 中位置從3000-5000的部分??梢允褂胢ysqlbinlog工具將二進(jìn)制日志導(dǎo)出后,找到位置。 如:mysqlbinlog /var/mysql-bin.xxxx >/tmp/binlogxxxx.txt
以上就是MYSQL學(xué)習(xí)總結(jié)(四):MYSQL的恢復(fù)和備份的內(nèi)容,更多相關(guān)內(nèi)容請關(guān)注PHP中文網(wǎng)(www.php.cn)!