1.備份MYSQL:
把一個庫匯出到一個SQL檔案
代碼如下 |
複製代碼 |
mysqldump db_name > /home/hx/backup/name.sql -uroot -p |
備份多個庫(使用-B參數)
代碼如下 |
複製代碼 |
mysqldump -B db1 db2 > /path/name.sql -u root -p |
備份全部庫
代碼如下 |
複製代碼 |
mysqldump --all-databases > /path/name.sql -u root -p |
備份某庫一個表
代碼如下 |
複製代碼 |
mysqldump db1 tb1 > /path/name.sql |
備份某庫多個表
代碼如下 |
複製代碼 |
mysqldump db1 tb1 tb2 > /path/name.sql |
產生某庫某表的結構
代碼如下 |
複製代碼 |
mysqldump -d db1 users > users.structure |
產生某庫某表的內容
代碼如下 |
複製代碼 |
mysqldump -t db1 users > users.data |
2.恢複資料
有兩種方式:
第一種:
代碼如下 |
複製代碼 |
mysql db_name < /path/backup-file.sql -u root -p 第二種: mysql -u root -p use db_name source /path/backup-file.sql 3.Linux下的壓縮,將產生的sql備 |
份檔案打包一下。
zip xxx.zip xxx.sql
tar -czf xxx.rar xxx.sql
tar的解壓是x,打包是c。
4.上傳下載備份,我用的是SecureCRT。
下載到本地,sz 目錄/檔案名稱
上傳到伺服器,rz
rz -r 續傳
rz -y 覆蓋已有檔案
上面都是需要手動的,下面我來介紹一個自動備份mysql資料庫
MYSQL定期備份是一項重要的工作,但人工操作太繁瑣,也難避免有所疏漏,使用下面的方法即可讓系統定期備份資料。
1、建立備份檔案夾
代碼如下 |
複製代碼 |
#cd /www #makedir backup |
2、編寫運行指令碼
寫入以下內容:
代碼如下 |
複製代碼 |
filename=`date +%Y%m%d` mysql_bin_dir/mysqldump –opt dataname -u user -ppassword | gzip > /www/mysqlbackup/name$filename.gz |
儲存退出
說明:
(1)mysql_bin_dir:mysql的bin路徑;
(2)dataname:資料庫名;
(3)user:資料庫使用者名稱;
(4)password:使用者密碼;
(5)name:自訂備份檔案首碼標識。
如上例,將自動備份mysql資料庫,並以gzip壓縮方式儲存,檔案名稱為name20080101.gz的形式。
3、為指令碼添加執行許可權
#chmod +x autobackup
4、讓crontab來完成定期執行的任務
這一步中,Redhat的方法會不一樣,後面專門給出。
編輯crontab:
代碼如下 |
複製代碼 |
#vi /etc/crontab |
在最後一行中加入:
代碼如下 |
複製代碼 |
01 5 * * * root /www/autobackup |
每天5點運行指令碼,也可以修改5為其他指定時間。
Redhat方法:
Redhat的crontab採用按時間調用4個目錄(/etc/cron.hourly:每小時;/etc/cron.daily:每天;/etc/cron.weekly:每周;/etc/cron.monthly:每月)中指令碼出來啟動並執行方式。
Redhat中只需要將剛才編輯的指令碼複製到相應的目錄即可。
5、重啟crontab
代碼如下 |
複製代碼 |
#/etc/rc.d/init.d/crond restart |