一、Windows版備份指令:
1、在C盤下建立一個目錄,名稱:Backup,然後將下面的代碼儲存為backup.bat
@echo 設定MySql資料庫的IPset ipaddress=127.0.0.1@echo 設定MySql資料庫名set db_name1=lxyy_db@echo 擷取當天的日期格式yyyymmdd 20120311set backup_date=%date:~0,4%%date:~5,2%%date:~8,2%set backup_date1=date:~0,10@echo 設定mysqldump 備份的參數set uid_test_db=-uroot -pdsideal -h %ipaddress% %db_name1%@echo 使用mysqldump對指定的MySql進行備份mysqldump %uid_test_db% -R -E -e -l -F --max_allowed_packet=1048576 --net_buffer_length=16384 >%db_name1%_%backup_date%.sql @echo 用WinRar中的Rar命令對備份出的sql檔案進行壓縮,也可以換成其它的壓縮命令"C:\Program Files\WinRAR\Rar.exe" a %backup_date%.zip *.sql @echo 刪除已壓縮的備份檔案del *.sql
為什麼會有上面的參數呢?
說明: mysql> -umysql使用者名稱 -pmysql密碼 要匯入到的資料庫名<要匯入MYSQL的SQL檔案路徑 這樣匯入將會非常快,之前數小時才能匯入的sql現在幾十秒就可以完成了。
-l :進行讀鎖
-F:產生新的記錄檔。
匯出時候注意點:-e 使用包括幾個VALUES列表的多行INSERT文法; --max_allowed_packet=XXX 用戶端/伺服器之間通訊的緩衝區的最大大小; --net_buffer_length=XXX TCP/IP和通訊端通訊緩衝區大小,建立長度達net_buffer_length的行。 注意:max_allowed_packet和net_buffer_length不能比目標資料庫的設定數值 大,否則可能出錯。 首先確定目標庫的參數值
mysql> show variables like 'max_allowed_packet';
--max_allowed_packet=4194304
mysql>show variables like 'net_buffer_length';
--net_buffer_length=16384
根據參數值書寫mysqldump命令,如: mysql>mysqldump -uroot -psupidea 要匯入到的資料庫名 goodclassification -e --max_allowed_packet=4194304 --net_buffer_length=16384 >要匯入到的資料庫名.net.sql
還原
使用命令列用戶端連上mysql伺服器,
mysql -uroot -pdsideal --default-character-set=utf8 --max_allowed_packet=1048576--net_buffer_length=16384
然後use lxyy_db進入需要還原的資料庫,運行
source c:\lxyy_db_20130426.sql
匯入備份。
二、開源中國的備份資料庫命令:
date_str=`date +%Y%m%d`cd /data2/backupmysqldump -h localhost -u oschina --password=xxxx -R -E -e --max_allowed_packet=1048576 --net_buffer_length=16384 oscdb| gzip > /data2/backup/oschina_$date_str.sql.gz