❶ 嫻呰皥MySQL鏁版嵁搴撳囦喚鐨勫嚑縐嶆柟娉
mysql甯歌佺殑澶囦喚鏂瑰紡鏈:mysqlmp銆乵ysqlhot銆丅ACKUP TABLE 銆丼ELECT
INTOOUTFILE錛屽張鎴栬呭囦喚浜岃繘鍒舵棩蹇楋紙binlog錛夛紝榪樺彲浠ユ槸鐩存帴鎷瘋礉鏁版嵁鏂囦歡鍜岀浉鍏崇殑閰嶇疆鏂囦歡銆侻yISAM琛ㄦ槸淇濆瓨鎴愭枃浠剁殑褰㈠紡錛屽洜姝ょ浉瀵規瘮杈冨規槗澶囦喚錛屼笂闈㈡彁鍒扮殑鍑犵嶆柟娉曢兘鍙浠ヤ嬌鐢ㄣ侷nnodb 鎵鏈夌殑琛ㄩ兘淇濆瓨鍦ㄥ悓涓涓鏁版嵁鏂囦歡 ibdata1涓錛堜篃鍙鑳芥槸澶氫釜鏂囦歡錛屾垨鑰呮槸鐙絝嬬殑琛ㄧ┖闂存枃浠訛級錛岀浉瀵規潵璇存瘮杈冧笉濂藉囦喚錛屽厤璐圭殑鏂規堝彲浠ユ槸鎷瘋礉鏁版嵁鏂囦歡銆佸囦喚
binlog錛屾垨鑰呯敤mysqlmp銆
1.mysqlmp澶囦喚
mysqlmp 鏄閲囩敤SQL綰у埆鐨勫囦喚鏈哄埗錛屽畠灝嗘暟鎹琛ㄥ兼垚 SQL 鑴氭湰鏂囦歡錛屽湪涓嶅悓鐨 MySQL 鐗堟湰涔嬮棿鍗囩駭鏃剁浉瀵規瘮杈冨悎閫傦紝榪欎篃鏄鏈甯哥敤鐨勫囦喚鏂規硶銆
紺轟緥:mysqlmp -uroot -p database table > /home/jobs/back.sql
mysqlmp涔熷彲鍋氬為噺澶囦喚,mysqlmp鐩稿叧鍙傛暟緗戜笂杈冨,灝變笉鍦ㄦや竴涓璧樿堪浜
2.mysqlhot澶囦喚銆愬傛灉鏄浼佷笟鐗堢殑mysql鍙浠ョ敤mysqlbackup褰撶劧鏄瑕佹敹璐圭殑銆
mysqlhot 鏄涓涓 PERL 紼嬪簭銆傚畠浣跨敤 LOCK TABLES銆丗LUSH
TABLES 鍜 cp 鎴 scp
鏉ュ揩閫熷囦喚鏁版嵁搴撱傚畠鏄澶囦喚鏁版嵁搴撴垨鍗曚釜琛ㄧ殑鏈蹇鐨勯斿緞錛屼絾瀹冨彧鑳借繍琛屽湪鏁版嵁搴撴枃浠訛紙鍖呮嫭鏁版嵁琛ㄥ畾涔夋枃浠躲佹暟鎹鏂囦歡銆佺儲寮曟枃浠訛級鎵鍦ㄧ殑鏈哄櫒涓娿
mysqlhot 鍙鑳界敤浜庡囦喚 MyISAM錛屽苟涓斿彧鑳借繍琛屽湪 綾籙nix 鍜 NetWare 緋葷粺涓娿
mysqlhot 鏀鎸佷竴嬈℃ф嫹璐濆氫釜鏁版嵁搴擄紝鍚屾椂榪樻敮鎸佹e垯琛ㄨ揪銆
紺轟緥錛 root#/usr/local/mysql/bin/mysqlhot -h=localhost -u=root
-p=123456 database /tmp (鎶婃暟鎹搴撶洰褰 database 鎷瘋礉鍒 /tmp
涓)root#/usr/local/mysql/bin/mysqlhot -h=localhost -u=root -p=123456
db_name_1 ... db_name_n /tmproot#/usr/local/mysql/bin/mysqlhot
-h=localhost -u=root -p=123456 db_name./regex/
/tmp鏇磋︾粏鐨勪嬌鐢ㄦ柟娉曡鋒煡鐪嬫墜鍐岋紝鎴栬呰皟鐢ㄤ笅闈㈢殑鍛戒護鏉ユ煡鐪 mysqlhot 鐨勫府鍔╋細
perldoc /usr/local/mysql/bin/mysqlhot娉ㄦ剰錛屾兂瑕佷嬌鐢 mysqlhot錛屽繀欏昏佹湁
SELECT銆丷ELOAD(瑕佹墽琛 FLUSH TABLES) 鏉冮檺錛屽苟涓旇繕蹇呴』瑕佽兘澶熸湁璇誨彇 datadir/db_name 鐩褰曠殑鏉冮檺銆
榪樺師mysqlhot 澶囦喚鍑烘潵鐨勬槸鏁翠釜鏁版嵁搴撶洰褰曪紝浣跨敤鏃跺彲浠ョ洿鎺ユ嫹璐濆埌 mysqld
鎸囧畾鐨 datadir (鍦ㄨ繖閲屾槸 /usr/local/mysql/data/)鐩褰曚笅鍗沖彲錛屽悓鏃惰佹敞鎰忔潈闄愮殑闂棰橈紝濡備笅渚嬶細 root#cp
-rf db_name /usr/local/mysql/data/root#chown -R nobody:nobody
/usr/local/mysql/data/ (灝 db_name 鐩褰曠殑灞炰富鏀規垚 mysqld 榪愯岀敤鎴)
3.SQL 璇娉曞囦喚
3.1 澶囦喚BACKUP TABLE 璇娉曞叾瀹炲拰 mysqlhot
鐨勫伐浣滃師鐞嗗樊涓嶅氾紝閮芥槸閿佽〃錛岀劧鍚庢嫹璐濇暟鎹鏂囦歡銆傚畠鑳藉疄鐜板湪綰垮囦喚錛屼絾鏄鏁堟灉涓嶇悊鎯籌紝鍥犳や笉鎺ㄨ崘浣跨敤銆傚畠鍙鎷瘋礉琛ㄧ粨鏋勬枃浠跺拰鏁版嵁鏂囦歡錛屼笉鍚屾椂鎷瘋礉緔㈠紩鏂
浠訛紝鍥犳ゆ仮澶嶆椂姣旇緝鎱銆備緥瀛愶細 BACK TABLE tbl_name TO 鈥/tmp/db_name/鈥;娉ㄦ剰錛屽繀欏昏佹湁 FILE
鏉冮檺鎵嶈兘鎵ц屾湰SQL錛屽苟涓旂洰褰 /tmp/db_name/ 蹇呴』鑳借 mysqld 鐢ㄦ埛鍙鍐欙紝瀵煎嚭鐨勬枃浠朵笉鑳借嗙洊宸茬粡瀛樺湪鐨勬枃浠訛紝浠ラ伩鍏嶅畨鍏ㄩ棶棰樸
鎮㈠嶇敤 BACKUP TABLE 鏂規硶澶囦喚鍑烘潵鐨勬枃浠訛紝鍙浠ヨ繍琛 RESTORE TABLE 璇鍙ユ潵鎮㈠嶆暟鎹琛ㄣ備緥瀛愶細 RESTORE TABLE FROM 鈥/tmp/db_name/鈥;鏉冮檺瑕佹眰綾似涓婇潰鎵榪般
3.2 SELECT INTO OUTFILE 鍒欐槸鎶婃暟鎹瀵煎嚭鏉ユ垚涓烘櫘閫氱殑鏂囨湰鏂囦歡錛屽彲浠ヨ嚜瀹氫箟瀛楁甸棿闅旂殑鏂瑰紡錛屾柟渚垮勭悊榪欎簺鏁版嵁銆備緥瀛愶細
SELECT INTO OUTFILE 鈥/tmp/db_name/tbl_name.txt鈥 FROM tbl_name;娉ㄦ剰錛屽繀欏昏佹湁
FILE 鏉冮檺鎵嶈兘鎵ц屾湰SQL錛屽苟涓旀枃浠 /tmp/db_name/tbl_name.txt 蹇呴』鑳借 mysqld
鐢ㄦ埛鍙鍐欙紝瀵煎嚭鐨勬枃浠朵笉鑳借嗙洊宸茬粡瀛樺湪鐨勬枃浠訛紝浠ラ伩鍏嶅畨鍏ㄩ棶棰樸
鐢 SELECT INTO OUTFILE 鏂規硶澶囦喚鍑烘潵鐨勬枃浠訛紝鍙浠ヨ繍琛 LOAD DATA INFILE 璇鍙ユ潵鎮㈠嶆暟鎹琛ㄣ備緥瀛愶細 LOAD
DATA INFILE 鈥/tmp/db_name/tbl_name.txt鈥 INTO TABLE
tbl_name;鏉冮檺瑕佹眰綾似涓婇潰鎵榪般傚掑叆鏁版嵁涔嬪墠錛屾暟鎹琛ㄨ佸凡緇忓瓨鍦ㄦ墠琛屻傚傛灉鎷呭績鏁版嵁浼氬彂鐢熼噸澶嶏紝鍙浠ュ炲姞 REPLACE
鍏抽敭瀛楁潵鏇挎崲宸叉湁璁板綍鎴栬呯敤 IGNORE 鍏抽敭瀛楁潵蹇界暐浠栦滑銆
4.鍚鐢ㄤ簩榪涘埗鏃ュ織(binlog)
閲囩敤 binlog 鐨勬柟娉曠浉瀵規潵璇存洿鐏墊椿錛岀渷蹇冪渷鍔涳紝鑰屼笖榪樺彲浠ユ敮鎸佸為噺澶囦喚銆
鍚鐢 binlog 鏃跺繀欏昏侀噸鍚 mysqld銆傞栧厛錛屽叧闂 mysqld錛屾墦寮 my.cnf錛屽姞鍏ヤ互涓嬪嚑琛岋細
server-id = 1
log-bin = binlog
log-bin-index = binlog.index
鐒跺悗鍚鍔 mysqld 灝卞彲浠ヤ簡銆傝繍琛岃繃紼嬩腑浼氫駭鐢 binlog.000001 浠ュ強 binlog.index錛屽墠闈㈢殑鏂囦歡鏄 mysqld
璁板綍鎵鏈夊規暟鎹鐨勬洿鏂版搷浣滐紝鍚庨潰鐨勬枃浠跺垯鏄鎵鏈 binlog 鐨勭儲寮曪紝閮戒笉鑳借交鏄撳垹闄ゃ傚叧浜 binlog 鐨勪俊鎮璇鋒煡鐪嬫墜鍐屻
闇瑕佸囦喚鏃訛紝鍙浠ュ厛鎵ц屼竴涓 SQL 璇鍙ワ紝璁 mysqld 緇堟㈠瑰綋鍓 binlog
鐨勫啓鍏ワ紝灝卞彲浠ユ妸鏂囦歡鐩存帴澶囦喚錛岃繖鏍風殑璇濆氨鑳借揪鍒板為噺澶囦喚鐨勭洰鐨勪簡錛 FLUSH LOGS;濡傛灉鏄澶囦喚澶嶅埗緋葷粺涓鐨勪粠鏈嶅姟鍣錛岃繕搴旇ュ囦喚
master.info 鍜 relay-log.info 鏂囦歡銆
澶囦喚鍑烘潵鐨 binlog 鏂囦歡鍙浠ョ敤 MySQL 鎻愪緵鐨勫伐鍏 mysqlbinlog 鏉ユ煡鐪嬶紝濡傦細
/usr/local/mysql/bin/mysqlbinlog /tmp/binlog.000001璇ュ伐鍏峰厑璁鎬綘鏄劇ず鎸囧畾鐨勬暟鎹搴撲笅鐨勬墍鏈
SQL 璇鍙ワ紝騫朵笖榪樺彲浠ラ檺瀹氭椂闂磋寖鍥達紝鐩稿綋鐨勬柟渚匡紝璇︾粏鐨勮鋒煡鐪嬫墜鍐屻
鎮㈠嶆椂錛屽彲浠ラ噰鐢ㄧ被似浠ヤ笅璇鍙ユ潵鍋氬埌錛 /usr/local/mysql/bin/mysqlbinlog /tmp/binlog.000001
| mysql -uyejr -pyejr db_name鎶 mysqlbinlog 杈撳嚭鐨 SQL 璇鍙ョ洿鎺ヤ綔涓鴻緭鍏ユ潵鎵ц屽畠銆
濡傛灉浣犳湁絀洪棽鐨勬満鍣錛屼笉濡ㄩ噰鐢ㄨ繖縐嶆柟寮忔潵澶囦喚銆傜敱浜庝綔涓 slave 鐨勬満鍣ㄦц兘瑕佹眰鐩稿逛笉鏄閭d箞楂橈紝鍥犳ゆ垚鏈浣庯紝鐢ㄤ綆鎴愭湰灝辮兘瀹炵幇澧為噺澶囦喚鑰屼笖榪樿兘鍒嗘媴涓閮ㄥ垎鏁版嵁鏌ヨ㈠帇鍔涳紝浣曚箰鑰屼笉涓哄憿錛
鍏蜂綋鏂規堬細
涓銆佷富浠庡悓姝
鍙浠ュ弬鑰僪ttp://kerry.blog.51cto.com/172631/110206
浜屻佸為噺澶囦喚錛
姣忓ぉ涓鍗12鐐瑰拰鏅氫笂12鐐瑰仛涓嬈″叏澶囷紝姣忛殧涓灝忔椂澶囦喚binlog,涔熷氨鏄澧為噺澶囦喚錛屽叿浣撴搷浣滃備笅錛
Linux涓嬪紑鍚痓inlog
/etc/my.cnf涓鐨刴ysqld閮ㄥ垎鍔犲叆:
[mysqld]
log-bin=../logs/mysql-bin
max-binlog-size=50M
windows涓嬪紑鍚痓inlog
%mysql%/my.ini涓鐨刴ysqld閮ㄥ垎鍔犲叆:
[mysqld]
log-bin =../logs/mysql-bin
max-binlog-size=50M
瀹屾暣澶囦喚鑴氭湰 錛堜粎鎻愪緵閮ㄥ垎浣滃弬鑰冿級
濡傛灉鏁版嵁搴撴暟鎹閲忔瘮杈冨ぇ錛屽彲浠ヤ竴澶╁叏澶囦竴嬈, 鍐嶆瘡闅斾竴灝忔椂澧為噺澶囦喚涓嬈★紱
#!/bin/sh
# mysql data backup script #
# use mysqlmp --help,get more detail.
BakDir=/backup/mysql
LogFile=/backup/mysql/mysqlbak.log
DATE=`date +%Y%m%d`
echo " " >> $LogFile
echo " " >> $LogFile
echo "-------------------------------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile
cd $BakDir
DumpFile=$DATE.sql
GZDumpFile=$DATE.sql.tgz
mysqlmp --quick --all-databases --flush-logs
--delete-master-logs --lock-all-tables
> $DumpFile
echo "Dump Done" >> $LogFile
tar czvf $GZDumpFile $DumpFile >> $LogFile 2>&1
echo "[$GZDumpFile]Backup Success!" >> $LogFile
rm -f $DumpFile
#delete previous daily backup files:閲囩敤澧為噺澶囦喚鐨勬枃浠,濡傛灉瀹屾暣澶囦喚鍚,鍒欏垹闄ゅ為噺澶囦喚鐨勬枃浠.
cd $BakDir/daily
rm -f *
cd $BakDir
echo "Backup Done!"
echo "please Check $BakDir Directory!"
echo " it to your local disk or ftp to somewhere !!!"
ls -al $BakDir
涓婇潰鐨勮剼鏈鎶妋ysql澶囦喚鍒版湰鍦扮殑/backup/mysql鐩褰,澧為噺澶囦喚鐨勬枃浠舵斁鍦/backup/mysql/daily鐩褰曚笅.
澧為噺澶囦喚
澧為噺澶囦喚鐨勬暟鎹閲忔瘮杈冨皬,浣嗘槸瑕佸湪瀹屾暣澶囦喚鐨勫熀紜涓婃搷浣
澧為噺澶囦喚浣跨敤bin log,鑴氭湰濡備笅:
#!/bin/sh
# mysql binlog backup script
/usr/bin/mysqladmin flush-logs
DATADIR=/var/lib/mysql
BAKDIR=/backup/mysql/daily
###濡傛灉浣犲仛浜嗙壒孌婅劇疆,璇蜂慨鏀規ゅ勬垨鑰呬慨鏀瑰簲鐢ㄦゅ彉閲忕殑琛:緙虹渷鍙栨満鍣ㄥ悕,mysql緙虹渷涔熸槸鍙栨満鍣ㄥ悕
HOSTNAME=`uname -n`
cd $DATADIR
FILELIST=`cat $HOSTNAME-bin.index`
##璁$畻琛屾暟,涔熷氨鏄鏂囦歡鏁
COUNTER=0
for file in $FILELIST
do
COUNTER=`expr $COUNTER + 1 `
done
NextNum=0
for file in $FILELIST
do
base=`basename $file`
NextNum=`expr $NextNum + 1`
if [ $NextNum -eq $COUNTER ]
then
echo "skip lastest"
else
dest=$BAKDIR/$base
if(test -e $dest)
then
echo "skip exist $base"
else
echo "ing $base"
cp $base $BAKDIR
fi
fi
done
echo "backup mysql binlog ok"
澧為噺澶囦喚鑴氭湰鏄澶囦喚鍓峟lush-logs,mysql浼氳嚜鍔ㄦ妸鍐呭瓨涓鐨勬棩蹇楁斁鍒版枃浠墮噷,鐒跺悗鐢熸垚涓涓鏂扮殑鏃ュ織鏂囦歡,鎵浠ユ垜浠鍙闇瑕佸囦喚鍓嶉潰鐨勫嚑涓鍗沖彲,涔熷氨鏄涓嶅囦喚鏈鍚庝竴涓.
鍥犱負浠庝笂嬈″囦喚鍒版湰嬈″囦喚涔熷彲鑳戒細鏈夊氫釜鏃ュ織鏂囦歡鐢熸垚,鎵浠ヨ佹嫻嬫枃浠,濡傛灉宸茬粡澶囦喚榪,灝變笉鐢ㄥ囦喚浜.
鏁版嵁榪樺師錛
鍏堣繕鍘熸渶榪戠殑瀹屽叏澶囦喚鏁版嵁錛
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
鍐嶈繕鍘焍inlog 錛
./mysqlbinlog --start-date="2016-04-10 17:30:05" --stop-date="2016-04-10 17:41:28" /usr/local/mysql/data/mysql-bin.000002 |mysql -u root -p123456
5.鎷瘋礉鏂囦歡
鐩存帴澶囦喚鏁版嵁鏂囦歡鐩歌緝鍓嶅嚑縐嶆柟娉曪紝澶囦喚鏁版嵁鏂囦歡鏈涓虹洿鎺ャ佸揩閫熴佹柟渚匡紝緙虹偣鏄鍩烘湰涓婁笉鑳藉疄鐜板為噺澶囦喚銆
涓轟簡淇濊瘉鏁版嵁鐨勪竴鑷存э紝闇瑕佸湪闈犺儗鏂囦歡鍓嶏紝鎵ц屼互涓 SQL 璇鍙ワ細 FLUSH TABLES WITH READ
LOCK;涔熷氨鏄鎶婂唴瀛樹腑鐨勬暟鎹閮藉埛鏂板埌紓佺洏涓錛屽悓鏃墮攣瀹氭暟鎹琛錛屼互淇濊瘉鎷瘋礉榪囩▼涓涓嶄細鏈夋柊鐨勬暟鎹鍐欏叆銆傝繖縐嶆柟娉曞囦喚鍑烘潵鐨勬暟鎹鎮㈠嶄篃寰堢畝鍗曪紝鐩存帴鎷瘋礉鍥
鍘熸潵鐨勬暟鎹搴撶洰褰曚笅鍗沖彲銆
娉ㄦ剰錛屽逛簬 Innodb 綾誨瀷琛ㄦ潵璇達紝榪橀渶瑕佸囦喚鍏舵棩蹇楁枃浠訛紝鍗 ib_logfile* 鏂囦歡銆傚洜涓哄綋 Innodb 琛ㄦ崯鍧忔椂錛屽氨鍙浠ヤ緷闈犺繖浜涙棩蹇楁枃浠舵潵鎮㈠嶃
6.鍒╃敤rsync澶囦喚
rsync浣滀負鍚屾ュ伐鍏蜂篃鍙浠ョ敤鏉ュ仛澶囦喚,浣嗚侀厤緗鏈嶅姟鍣ㄧ鍜屽㈡埛絝
紺轟緥rsync -vzrtopg --progress --delete [email protected]::root /tmp/
鐩稿叧rsync閰嶇疆鍙鍙傝僪ttp://fanqiang.chinaunix.net/a6/b7/20010908/1305001258.html
緙虹偣鏄痳sync鏄鏍規嵁鏂囦歡淇鏀規椂闂村仛鐨勫為噺澶囦喚,鎵浠ュ囦喚鏁版嵁搴撻兘鏄鍏ㄥ,騫朵笖閰嶇疆姣旇緝楹葷儲.
7.鍒╃敤BigDump宸ュ叿瀵煎叆瓚呭ぇMySQL鏁版嵁搴撳囦喚鏂囦歡
甯哥敤鐨 MySQL 鏁版嵁搴撴仮澶嶅伐鍏鳳紙涔熻兘榪涜屽囦喚鎿嶄綔錛夋槸 phpMyAdmin錛岃繖鏄涓涓寮婧愩佸厤璐圭殑宸ュ叿錛屽ぇ澶氭暟涓繪満鍟嗭紙渚嬪 Hawkhost錛夐兘浼氬厤璐規彁渚 銆傜浉淇″緢澶氱珯闀誇篃鐢ㄨ繃 phpMyAdmin 鏉ヨ繘琛岀綉絝欐暟鎹搴撶殑澶囦喚鍜屾仮澶嶏紝紜瀹炲緢鏂逛究錛屽苟涓旀湁澶氬浗璇璦鐣岄潰銆備笉榪囷紝鏈変竴縐嶆儏鍐靛彲鑳戒綘榪樻病紕板埌錛屽氨鏄褰撲綘鐨勬暟鎹搴撲綋縐姣旇緝澶ф椂錛屼緥濡
SQL 澶囦喚鏂囦歡澶т簬 2MB錛岀敋鑷沖ぇ浜 10MB錛岃繖涓鏃跺欏傛灉浣犻氳繃 phpMyAdmin 鏉ヨ繘琛屾暟鎹搴撶殑鎮㈠嶏紝灝變細鍑洪敊錛屾樉紺哄備笅鐨勬彁紺猴細
榪欐槸鍥犱負浣犵殑 SQL 鏂囦歡浣撶Н澶澶э紝瓚呰繃浜 phpMyAdmin 鐨勫勭悊鑳藉姏錛岃繖縐嶆儏鍐靛湪緗戠粶閫熷害姣旇緝鎱㈢殑鎯呭喌涓嬪挨涓虹獊鍑猴紝渚嬪傜珯闀垮湪鍛ㄦ湯鏅氫笂8鐐硅繖涓緗戠粶鎷ユ尋鐨勬椂孌靛皾璇曚嬌鐢 phpMyAdmin 鏉ユ仮澶嶅ぇ鍨 MySQL 鏁版嵁搴撳囦喚錛屽氨瀹規槗閬囧埌榪欑嶉棶棰樸
寰堟樉鐒 phpMyAdmin 鍙閫傜敤浜庢仮澶嶆瘮杈冨皬鐨 SQL 鏂囦歡澶囦喚銆傚逛簬瓚呭ぇ MySQL 鏁版嵁搴撳囦喚鐨勬仮澶嶏紝浣犲繀欏繪崲涓涓涓撶敤鐨勬仮澶嶅伐鍏鳳紝閭e氨鏄錛欱igDump錛佸伐鍏蜂笅杞藉湴鍧http://www.jb51.net/codes/37147.html
8.浣跨敤bacula(www.bacula.org)榪涜屽囦喚
zZ
bacula閲囩敤妯″潡鍖栬捐★紝閲囩敤c/s鏋勬灦錛岀悊璁轟笂鍙浠ユ妸浠繪剰n鍙頒富鏈虹殑璧勬枡澶囦喚鍒頒換鎰弉鍙
涓錛岃屼綘涓嶉渶瑕佸湪姣忓彴鏈哄櫒涓婇兘鍐欎竴涓閰嶇疆鏂囦歡鎺у埗浠栦滑榪愪綔錛屾墍鏈変富瑕佺殑宸ヤ綔閮藉湪涓
鍙癲irector涓婃帶鍒躲傜櫥闄嗕笂director浣犲氨鍙浠ョ煡閬撲粈涔堝囦喚姝e湪榪愯岋紝浠涔堝囦喚鎴愬姛浜
錛屼粈涔堝囦喚澶辮觸浜嗭紝鎵鏈夌殑log涔熶細闆嗕腑鍒頒綘鎸囧畾鐨勫湴鏂癸紝璁╃$悊宸ヤ綔鏇寸畝鍗曚竴鐐廣傛仮澶
鐨勬椂鍊欎篃寰堢畝鍗曪紝綆鍗曡繍琛屽嚑涓鍛戒護浣犲氨鍙浠ユ妸鎸囧畾鐨勫囦喚鎮㈠嶃傛敮鎸佸畬鍏ㄥ囦喚錛屽樊寮
澶囦喚錛屽為噺澶囦喚錛涙敮鎸佹妸澶囦喚鍐欏埌紜鐩樻枃浠朵腑錛屼篃鏀鎸佸啓鍒扮佸甫涓銆傛敮鎸佸鉤鍙扮浉褰撳氾紝
璁劇疆鍖呮嫭win騫沖彴錛堝囦喚win錛岃繕涓嶆敮鎸佸囦喚鍒皐in錛夈傚綋鐒朵篃鏈変竴浜涚己鐐癸紝姣斿傚瑰苟鍙戝
浠芥敮鎸佹湭緇忓交搴曟祴璇曪紝浣滆呭gО鏈濂戒笉瑕佸皾璇曪紝闄ら潪浣犺嚜宸辯粡榪囨祴璇曘傝繕鏈変竴鐐瑰氨鏄鏂
妗d腑娌℃湁涓涓猶uick start銆傘傛枃妗eお璇︾粏浜嗙偣錛屾病鏈夌偣鑰愬績璇諱笉瀹屻傘
1,鍓嶆湡鍑嗗
bacula鏈変笁涓妯″潡緇勬垚銆備竴涓鏄疍irector錛岀敤浜庢寚鎸ユ暣涓緋葷粺榪愯岋紝job schele,閫氱煡
鍙﹀栦袱涓妯″潡宸ヤ綔銆備竴涓鏄瘲torage Daemon錛屽畠鏄瀛樺偍絝錛岃礋璐f妸緗戠粶涓浼犳潵鐨勬暟鎹澶
浠藉埌鏈鏈,鎮㈠嶇殑鏃跺欒礋璐f妸鏁版嵁浼犲嚭鍘匯傛渶鍚庝竴涓鏄疐ile Daemon錛屽囦喚鏃舵妸鏂囦歡浼犲嚭
錛屾仮澶嶆椂鎺ュ彈鏁版嵁騫舵仮澶嶃傚叾瀹炰笂闈㈢殑涓変釜妯″潡騫朵笉鑳借゜acula榪愯岋紝鍙﹀栦竴涓妯″潡鏄
鏁版嵁搴撴ā鍧椼傝繖涓妯″潡鍙浠ラ氳繃SQLite錛堢紪璇戣繘bacula錛夛紝涔熷彲浠ヤ嬌鐢∕ySql鍜孭ostgreS
ql,浣滆呮帹鑽愮殑鏄痬ysql銆傝繕闇瑕佷竴浜涚涓夋柟搴撴墠鑳界紪璇戱細GZIP鍜孯eadline銆傛枃妗d腑娌℃湁
璇存槑錛屼絾鍏跺疄榪橀渶瑕佸彟澶栦竴涓杞浠舵墠鑳戒繚璇佹e父榪愯岋細ntp銆傚洜涓哄樊寮傚囦喚鍜屽為噺澶囦喚閮
渚濊禆浜庢枃浠朵慨鏀規椂闂存潵鍐沖畾鏄鍚﹀囦喚銆傚崟鏈哄囦喚闂棰樹笉澶э紝緗戠粶澶囦喚灝遍渶瑕佽冭檻鍚勪釜涓
鏈虹殑鏃墮棿宸寮備簡銆傛墍浠ユ垜鎺ㄨ崘鎵鏈変富鏈烘瘡澶╄繍琛屼袱嬈ntpdate鏉ヨ皟鍑嗘椂闂淬傚傛灉浣犲湪sjtu
緗戠粶閲岄潰錛屽彲浠ヤ嬌鐢╠ns.sjtu.e.cn鏉ヨ皟鏍℃椂闂淬
濡傛灉浣犱嬌鐢ㄧ殑鏄紓佸甫鏈哄囦喚錛岃繕闇瑕佹鏌ヤ竴涓嬩綘鐨勭佸甫鏈烘槸鍚﹁鏀鎸併傝屼笖鏈濂藉幓闃呰
鏂囨。涓鐨刄nderstanding Pools, Volumes and Labels涓鑺傘傚惁鍒欓厤緗鐨勬椂鍊欎綘浼氭悶寰楁檿
涔庝箮鐨勩
2錛岀紪璇
緙栬瘧榪囩▼寰堢畝鍗曪紝鏂囨。涔熷緢璇︾粏錛屽氨涓嶅叿浣撲粙緇嶄簡銆傛敞鎰忎竴鐐規槸琚澶囦喚鏈哄櫒涓婂彲浠ヤ嬌鐢-
-enable-client-only緙栬瘧銆
3錛屾暟鎹搴撳緩絝
涓嬮潰璇磋磎ysql鐨勫緩絝嬭繃紼嬨傞栧厛鍦ㄤ唬鐮佹牴鐩褰曚腑
cd src/cats/
./grant_mysql_privileges
./create_mysql_database
./make_mysql_tables
濡傛灉mysql涓嶆槸鍦ㄦ湰鏈轟笂錛屽彲浠ュ炲姞-h鍙傛暟鎸囧畾銆傞粯璁ら噰鐢ㄧ┖瀵嗙爜鐨剅oot鐢ㄦ埛錛屽彲浠ョ敤-p
鍙傛暟浣垮叾閲囩敤瀵嗙爜楠岃瘉銆傚傛灉瑕侀噰鐢ㄥ叾瀹冪敤鎴峰氨鍙鑳戒慨鏀硅剼鏈浜嗭紝寰堢畝鍗曠殑銆
榛樿ゅ緩絝嬬殑bacula鐢ㄦ埛錛岃屼笖鏄絀哄瘑鐮併傛帹鑽愯繕鏄淇鏀瑰瘑鐮併
bacula鍙浠ヤ嬌鐢ㄤ換鎰忓氱殑鏁版嵁搴擄紝涔熷氨鏄璇翠綘鍙浠ヤ嬌鐢ㄤ袱涓鏁版嵁搴擄紝鐒跺悗鍐嶈╄繖涓や釜鏁
鎹搴撲簰鐩稿囦喚銆
4錛岃繍琛孎ile Daemon(fd)
閰嶇疆鍓嶅厛璇存槑涓鐐歸渶瑕佹敞鎰忕殑,閰嶇疆涓鎸囧畾涓繪満鍦板潃鏃訛紝鏈濂戒嬌鐢╥p錛屾垜閰嶇疆鏃朵嬌鐢ㄤ富鏈
鍚嶈矊似涓嶅彲浠ャ傘傝屼笖瑕佹槸瀵瑰栫殑ip錛岀敤127.0.0.1涓嶈
fd榪愯屽湪琚澶囦喚涓繪満涓娿傞厤緗鐩稿綋綆鍗曪紝鎸囧畾鍝涓狣irector鍙浠ヨ繍琛岃皟搴﹀畠錛屽瘑鐮佹槸浠
涔堬紝fd鐨勫悕瀛楋紝宸ヤ綔鐩褰曪紝log寰鍝閲屽彂灝卞彲浠ヤ簡銆備慨鏀逛慨鏀規爣閰嶅氨鍙浠ヤ簡銆
5錛岃繍琛孲torage Daemon(sd)
sd榪愯屽湪鎺ュ彈澶囦喚鐨勬満鍣ㄤ笂銆傞厤緗涔熺浉褰撶畝鍗曪紝鍙鏄姣攆d澶氬嚭浜嗕竴涓猟evice鐢ㄤ簬鎸囧畾浣
鐢ㄤ粈涔堢‖浠跺囦喚鏁版嵁銆傚彲浠ユ妸澶氫釜鏁版嵁澶囦喚鍒頒竴涓猟evice錛屽傛灉鏄紓佸甫鏈哄囦喚bacula鍦
鎮㈠嶇殑鏃跺欎細鍛婅瘔浣犺佷嬌鐢ㄥ摢涓紓佸甫銆傚洜涓烘垜浣跨敤鐨勬槸鏂囦歡澶囦喚鐨勬ā寮忥紝鎵浠ュ氨緇欐瘡涓
澶囦喚閰嶇疆涓涓猟evice錛屾妸涓嶅悓鐨勫囦喚鏀懼埌涓嶅悓鐩褰曞幓錛屼笅闈㈡槸涓涓綆鍗曟枃浠跺囦喚device
閰嶇疆
Device {
Name = dbdev
Media Type = File #榪欎釜闅忎究鍐欙紝浣嗘槸鍦ㄩ厤緗瓺irector涓鐨凷torage鏃訛紝蹇呴』鍐欎竴
鏍風殑
Archive Device = /var/bak/db#澶囦喚鍒板摢涓鐩褰曪紝蹇呴』瀛樺湪
LabelMedia = yes; # 鑷鍔╨abel
Random Access = Yes;
AutomaticMount = yes;
❷ mysql中備份和還原資料庫的語句什麼啊
一、Mysql資料庫備份指令格式:
mysqlmp -h主機名 -P埠 -u用戶名 -p密碼 (–database) 資料庫名 > 文件名.sql
註:直接cmd執行該指令即可,不需要先mysql -u root -p鏈接資料庫
1、備份MySQL資料庫的命令
mysqlmp -hhostname -uusername -ppassword databasename > backupfile.sql
2、備份MySQL資料庫為帶刪除表的格式,能夠讓該備份覆蓋已有資料庫而不需要手動刪除原有資料庫。
mysqlmp -–add-drop-table -uusername -ppassword databasename > backupfile.sql
二、資料庫還原有三種方式:source命令、mysql、gunzip命令
1、source 命令
進入mysql資料庫控制台,
mysql -u root -p
mysql>use 資料庫
然後使用source命令,後面參數為腳本文件(如這里用到的.sql)
mysql>source /home/work/db/bkdb.sql
2、mysql
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
3、gunzip
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
❸ 怎麼還原,恢復或導入MySQL資料庫
1、source命令
1)打開開始菜單->程序->MySQL->MySQL Command Line Client,輸入MySQL的root密碼。
2)然後輸入use 資料庫名;進入對應的資料庫,再用source 備份文件具體路徑;命令導入備份文件。注意,在這里的命令後面都要加;分號,截圖如下:
2、mysql命令
1)如果是Windows系統,請在命令行模式下進入mysql的bin目錄,如D:Programmysql41in。如果是Linux系統,請直接看下面的步驟。
2)執行mysql命令導入資料庫,命令格式為:
mysql -u用戶名 -p密碼 資料庫名<備份文件具體路徑
比如:mysql -uroot -pabc123 mydb<file.sql,其中用戶名和密碼也可以是具體資料庫的,不一定要root的。
二、資料庫的導出(備份)
一般使用mysqlmp命令
1)如果是Windows系統,請在命令行模式下進入mysql的bin目錄,如D:Programmysql41in。如果是Linux系統,請直接看下面的步驟。
2)執行mysqlmp命令導入資料庫,命令格式為:
mysqlmp -u用戶名 -p密碼 資料庫名>備份文件具體路徑
❹ MySQL資料庫備份和還原的常用命令
1.備份MySQL資料庫的命令
mysqlmp-hhostname-uusername-ppassworddatabasename>backupfile.sql
2.備份MySQL資料庫為帶刪除表的格式,能夠讓該備份覆蓋已有資料庫而不需要手動刪除原有資料庫。
mysqlmp-_add-drop-table-uusername-ppassworddatabasename>backupfile.sql
3.直接將MySQL資料庫壓縮備份
mysqlmp-hhostname-uusername-ppassworddatabasename|gzip>backupfile.sql.gz
4.備份MySQL資料庫某個(些)表
mysqlmp-hhostname-uusername-ppassworddatabasenamespecific_table1specific_table2>backupfile.sql
5.同時備份多個MySQL資料庫
mysqlmp-hhostname-uusername-ppassword_>multibackupfile.sql
6.僅僅備份灶此資料庫結構
mysqlmp_no-data_>structurebackupfile.sql
7.備份伺服器上所有資料庫
mysqlmp_all-databases>allbackupfile.sql
8.還原MySQL資料庫的命令
mysql-hhostname-uusername-ppassworddatabasename<backupfile.sql
9.還隱碰迅原壓縮的MySQL資料庫
gunzip<backupfile.sql.gz|mysql-uusername-ppassworddatabasename
10.將資料庫轉移到新服吵缺務器
mysqlmp-uusername-ppassworddatabasename|mysql_host=*.*.*.*-Cdatabasename
❺ 怎麼備份和還原mysql資料庫
備份資料庫
使用mysqlmp命令備份資料庫
❻ MySQL的備份與還原,非常規備份,全量備份,增量備份
1:官方百萬級別的測試資料庫:
官方測試資料庫github網址:https://github.com/datacharmer/test_db
下載到目錄,解壓即可,運行命令:
2:自己創建簡單測試資料庫:
快速隨機生成測試語言的網站:https://generatedata.com/
選擇sql和想生成的欄位,點擊生成Generate!生成即可。
在MySQL輸入生成的語句即可。
3:測試備份還原時用到的命令
刪庫跑路測試(先備份好)
還原後查詢庫的表數據是否完整。
採用復制整個數據存放目錄
1:查看資料庫數據存放位置
有兩種方法:
1):在資料庫中用命令 show variables like 'datadir' 查看
2):在配置文件中查看,配置了 datadir 目錄的可查看。沒有配置的默認為 /var/lib/mysql/ 位置
Linux中查看配置文件
2:復制目錄或者目錄下某個資料庫名
3:還原時直接復制文件夾到資料庫目錄即可
mysqlmp又可叫做全量備份。
參數 --databases 同 -B ,單獨一個庫,也可省略。
1、備份命令mysqlmp格式
格式:mysqlmp -h主機名 -P埠 -u用戶名 -p密碼 database 資料庫名 > 文件名.sql
備份testDatabase資料庫
2、備份MySQL資料庫為帶刪除表的格式
備份MySQL資料庫為帶刪除表的格式,能夠讓該備份覆蓋已有資料庫而不需要手動刪除原有資料庫。
3、直接將MySQL資料庫壓縮備份
備份並壓縮
4、備份MySQL資料庫某個(些)表
備份testDatabase中的myTable表,不需要用參數 --databases 或者 -B
5、同時備份多個MySQL資料庫
同時備份testDatabase和 employees兩個庫
6、備份伺服器上所有資料庫
參數 --all-databases 同 -A
7、還原MySQL資料庫的命令
1) 不指定數據名還原,默認生成原資料庫名稱,還原所有資料庫。
2) 指定數據名還原,還原指定單個資料庫,需在資料庫種預先創建一個testDatabase名稱。
3) 還原壓縮的MySQL資料庫
4) 進入資料庫用source導入
增量備份是針對於資料庫的bin-log日誌進行備份的,增量備份是在全量的基礎上進行操作的。增量備份主要是靠mysql記錄的bin-log日誌。
1:查看是否開啟bin-log日誌
進入mysql輸入命令可查看。
顯示如下為開啟狀態,日誌文件在/var/lib/mysql/以binlog.00001的格式保存。
如未開啟,需要在配置文件種配置
2:查看目前使用的bin-log日誌文件
進入mysql查看命令。
顯示如下,目前使用的是binlog.000022文件,所有操作都記錄在此文件。
查看當前testDatabase的表myTable數據如下,
3:刷新日誌,使用新的日誌文件(備份)
在命令端執行命令
日誌文件從 binlog.000022 變為 binlog.000023
這時相當與已經備份成功,備份文件即為上次的binlog.000022日誌文件。
4:刪除數量,從日誌還原數據
1) 刪除ABC行
查詢以及沒有ABC行列。
2) 恢復數據ABC行
退出mysql,在命令端用mysqlbinlog命令恢復到binlog.000022日誌狀態。
進入資料庫再次查看數據,ABC已經恢復。
增量備份完成。
❼ 如何進行資料庫備份和恢復 mysql
MySQL備份和還原,都是利用mysqlmp、mysql和source命令來完成的。
1.Win32下MySQL的備份與還原
1.1 備份
開始菜單 | 運行 | cmd |利用「cd /Program Files/MySQL/MySQL Server 5.0/bin」命令進入bin文件夾 | 利用「mysqlmp -u 用戶名 -p databasename >exportfilename」導出資料庫到文件,如mysqlmp -u root -p voice>voice.sql,然後輸入密碼即可開始導出。
1.2 還原
進入MySQL Command Line Client,輸入密碼,進入到「mysql>」,輸入命令"show databases;",回車,看看有些什麼資料庫;建立你要還原的資料庫,輸入"create database voice;",回車;切換到剛建立的資料庫,輸入"use voice;",回車;導入數據,輸入"source voice.sql;",回車,開始導入,再次出現"mysql>"並且沒有提示錯誤即還原成功。
2.Linux下MySQL的備份與還原
2.1 備份
[root@localhost ~]# cd /var/lib/mysql (進入到MySQL庫目錄,根據自己的MySQL的安裝情況調整目錄)
[root@localhost mysql]# mysqlmp -u root -p voice>voice.sql,輸入密碼即可。
2.2 還原
法一:
[root@localhost ~]# mysql -u root -p 回車,輸入密碼,進入MySQL的控制台"mysql>",同1.2還原。
法二:
[root@localhost ~]# cd /var/lib/mysql (進入到MySQL庫目錄,根據自己的MySQL的安裝情況調整目錄)
[root@localhost mysql]# mysql -u root -p voice<voice.sql,輸入密碼即可。