當前位置:首頁 » 數據倉庫 » linux定時備份mysql資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

linux定時備份mysql資料庫

發布時間: 2022-08-11 06:30:02

1. 怎麼linux下定時備份mysql資料庫備份

1、查看磁碟空間情況:

既然是定時備份,就要選擇一個空間充足的磁碟空間,避免出現因空間不足導致備份失敗,數據丟失的惡果!
存儲到當前磁碟這是最簡單,卻是最不推薦的;伺服器有多塊硬碟,最好是把備份存放到另一塊硬碟上;有條件就選擇更好更安全的存儲介質;
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 50G 46G 1.6G 97% /
tmpfs 1.9G 92K 1.9G 1% /dev/shm
/dev/sda1 485M 39M 421M 9% /boot
/dev/mapper/VolGroup-lv_home 534G 3.6G 503G 1% /home123456123456

2、創建備份目錄:

上面我們使用命令看出/home下空間比較充足,所以可以考慮在/home保存備份文件;
cd /home
mkdir backup
cd backup123123

3、創建備份Shell腳本:

注意把以下命令中的DatabaseName換為實際的資料庫名稱;
當然,你也可以使用其實的命名規則!
vi bkDatabaseName.sh11

輸入/粘貼以下內容:
#!/bin/bash
mysqlmp -uusername -ppassword DatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql1212

對備份進行壓縮:
#!/bin/bash
mysqlmp -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz1212

注意:
把 username 替換為實際的用戶名;
把 password 替換為實際的密碼;
把 DatabaseName 替換為實際的資料庫名;

4、添加可執行許可權:
chmod u+x bkDatabaseName.sh11

添加可執行許可權之後先執行一下,看看腳本有沒有錯誤,能不能正常使用;
./bkDatabaseName.sh11

5、添加計劃任務

檢測或安裝 crontab

確認crontab是否安裝:
執行 crontab 命令如果報 command not found,就表明沒有安裝
# crontab
-bash: crontab: command not found

2. Linux下mysql資料庫如何定期備份與刪除

首先,創建備份文件夾mkdir
/mysql/mysqldata_bakeup;創建並編輯文件在路徑
/usr/sbin/bakmysql,命令:vi
/usr/sbin/bakmysql。此時會在/usr/sbin/路徑下創建bakmysql文件,並進入bakmysql編輯狀態,接著輸入;fn
=
`
date
+%Y%m%d
`
tar
zcvf
/mysql/mysqldata_bakeup/mysql$fn.tar.gz
/mysql/data
然後修改文件bakmysql屬性,使其可執行chmod
+x
/usr/sbin/bakmysql
修改/etc/crontab
vi
/etc/crontab
進入編輯狀態,在最下面添加:01
3
*
*
*
root
/usr/sbin/bakmysql
01
3
是每天凌晨3:01執行
bakmysql文件;懂了嗎?

3. linux下mysql如何實現每天自動備份

首先建立一個備份文件夾:mkdir
mysql_data_bak在建立一個腳本文件:touch
autobackupmysql.sh打開文件vi
autobackupmysql.sh在腳本中加入如下內容:filename=`date
+%Y%m%d`/usr/bin/mysqlmp
-uroot
-proot
boss
/home/mysql_data_bak/$filename.sql檢查有沒安裝crond,如果沒有,先安裝yum
-y
install
vixie-cronyum
-y
install
crontabs啟動服務
:service
crond
start在CentOS系統中加入開機自動啟動:
chkconfig
--level
345
crond
oncrontab
-e加入內容:00
03
*
*
*
source
/root/autobackupmysql.sh
每天凌晨3點運行此文件,對資料庫進行備份
service
crond
restart到此linux下mysql實現沒天自動備份完成。

4. linux下如何實現mysql資料庫每天定時自動備

方法/步驟

1. 在根目錄下新建定時備份存儲文件夾mkdir /mysql_backup
2.新建備份的腳本vim /root/mysql_backup.sh
3.在mysql_backup.sh中輸入內容:
backupdir=/mysqlbackup time=` date +%Y%m%d%H`mysqlmp -uroot -proot abc | gzip > $backupdir/abc$time.sql.gzfind $backupdir -name 「abc*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1

5. linux伺服器操作系統,怎麼實現定時備份資料庫

linux系統下使用腳本定時備份資料庫,代碼如下:

#!/bin/bash
#Setting
#設置資料庫名,資料庫登錄名,密碼,備份路徑,日誌路徑,數據文件位置,以及備份方式
#默認情況下備份方式是mysqlmp,還可以是mysqlmp,mysqldot,如果注釋掉第
#18行,則默認以tag的方式備份
#默認情況下,用root(空)登錄mysql資料庫,備份至/root/dbxxxxx.tgz
DBName=mysql
DBUser=root
DBPasswd=123456
BackupPath=/home/wang/www/backup/mysql/mysqlbackup
LogFile=/home/wang/www/backup/mysql/db.log
DBPath=/var/lib/mysql/
#BackupMethod=mysqlmp
#BackupMethod=mysqlhot
#BackupMethod=tar
#SettingEnd
NewFile="$BackupPath"db$(date+%y%m%d).tgz
DumpFile="$BackupPath"db$(date+%y%m%d)
OldFile="$BackupPath"db$(date+%y%m%d--date='5daysago').tgz
echo"-------------------------------------------">>$LogFile
echo$(date+"%y-%m-%d%H:%M:%S")>>$LogFile
echo"--------------------------">>$LogFile
#DeleteOldFile
if[-f$OldFile]
then
rm-f$OldFile>>$LogFile2>&1
echo"[$OldFile]DeleteOldFileSuccess!">>$LogFile
else
echo"[$OldFile]NoOldBackupFile!">>$LogFile
fi
if[-f$NewFile]
then
echo"[$NewFile]TheBackupFileisexists,Can』tBackup!">>$LogFile
else
case$BackupMethodin
mysqlmp*)
if[-z$DBPasswd]
then
mysqlmp-u$DBUser--opt$DBName>$DumpFile
else
mysqlmp-u$DBUser-p$DBPasswd--opt$DBName>$DumpFile
fi
tarczvf$NewFile$DumpFile>>$LogFile2>&1
echo"[$NewFile]BackupSuccess!">>$LogFile
rm-rf$DumpFile
;;
mysqlhot*)
rm-rf$DumpFile
mkdir$DumpFile
if[-z$DBPasswd]
then
mysqlhot-u$DBUser$DBName$DumpFile>>$LogFile2>&1
else
mysqlhot-u$DBUser-p$DBPasswd$DBName$DumpFile>>$LogFile2>&1
fi
tarczvf$NewFile$DumpFile>>$LogFile2>&1
echo"[$NewFile]BackupSuccess!">>$LogFile
rm-rf$DumpFile
;;
*)
/etc/init.d/mysqldstop>/dev/null2>&1
tarczvf$NewFile$DBPath>>$LogFile2>&1
/etc/init.d/mysqldstart>/dev/null2>&1
echo"[$NewFile]BackupSuccess!">>$LogFile
;;
esac
fi
echo"-------------------------------------------"
echo
#lftp-flftp.sh如果有FTP可同時上傳ftp中。

再利用crontab命令生成/var/spool/cron/root 文件:

#crontab–e
//打開一個編輯窗口,第一行會有內容格式的提示,在此輸入命令
//mhdommondowcommand
//具體意義表示:分鍾小時日期月份星期命令,在某月(mon)的某天(dom)或者星期幾(dow)的幾點(h,24小時制)幾分(m)執行某個命令(command)
//如:1002***/home/backup/autobackupmysql.sh(表示零晨二點十分執行備份腳本)

6. linux mysql怎麼遠程自動備份資料庫備份

Linux下可以利用crontab系統每天定時備份MySQL資料庫,以下是詳細步驟:
1、創建保存備份文件的路徑/mysqldata
#mkdir /mysqldata
2、創建/usr/sbin/bakmysql文件
#vi /usr/sbin/bakmysql
輸入
rq=` date +%Y%m%d `
tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql

或者寫成
rq=` date +%Y%m%d `
mysqlmp –all-databases -u root -p980405 > /mysqldata/mysql$rq.tar.gz
/var/lib/mysql是你資料庫文件的目錄,部分用戶是/usr/local/mysql/data,每個人可能不同
/mysqldata/表示保存備份文件的目錄,這個每個人也可以根據自己的要求來做。

7. 如何在linux下實現每天自動備份mysql資料庫

方法/步驟

1. 在根目錄下新建定時備份存儲文件夾mkdir /mysql_backup
2.新建備份的腳本vim /root/mysql_backup.sh
3.在mysql_backup.sh中輸入內容:
backupdir=/mysqlbackup time=` date +%Y%m%d%H`mysqlmp -uroot -proot abc | gzip > $backupdir/abc$time.sql.gzfind $backupdir -name 「abc*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1

——————————————————————————————
說明:
backupdir = 備份文件存儲文件夾time = 獲取當前時間 年月日時(2014111417)2014年11月14日17點mysqlmp 備份資料庫指令 abc要備份的資料庫find $backupdir -name 「abc*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1 刪除5天前的備份文件
3 :wq 文件保存成功後

先按一下鍵盤上的 " esc " 然後輸入 」 :wq 「
執行一下腳本,看根目錄下的mysql_backup文件夾是否有.sql.gz後綴名的文件

./mysql_backup.sh
寫入每天的定時任務 修改 /etc/crontabvi /etc/crontab
按鍵盤上的"i",開始輸入

02 4 * * * root /root/mysql_backup.sh

表示每天4點2分執行備份任務

先按一下鍵盤上的 " esc " 然後輸入 」 :wq 「 表示保存
重新啟動crond

service crond restart 或 /etc/rc.d/init.d/crond restart

8. linux下定時備份Mysql

你的root沒有密碼嗎?

建議使用crontab+shell腳本來備份

#!/bin/bash
#
#Date:2014-9-25
USER=
PASSWORD=
DATABASE=
DIR=
DATE=`date'+%Y\%m\%d-%H:%M'`
DATE1=`date-dlast-month'+%Y\%m\%d-%H:%M'`
HOST=
LOG=/root/mysqlbk.log
COM=mysqlmp
DEL=$DATE1.sql
OPT="-h$HOST-u$USER-p$PASSWORD$DATABASE"
$COM$OPT>$DIR/$DATE.sql
if[$?-eq0]
then
SIZE=`-h$DIR/$DATE.sql|awk'{print$1}'`

rm-f$DIR/$DEL

echo"$DATE$SIZEMysqlbackupsuccessfully$DELwasremoved">>$LOG
else
echo"$DATEMysqlbackupfailed">>$LOG
fi


這是我自己寫的一個備份腳本,USER DATABASE 這是mysql的用戶名和密碼 DIR是備份的路徑

HOST是要備份的mysql的ip地址 我這里是遠程備份,如果你的是本地備份的話,可以把HOST給去掉,然後去掉OPT中 -h $HOST ,如果沒有密碼 就把PASSWORD去掉,還有OPT中的-p 選項以及$PASSWORD , if語句是判斷腳本是否執行成功 好吧 如果有什麼不明白的再問我吧

9. linux下mysql自動備份資料庫與自動刪除臨時文件

一、每日23:00自動刪除臨時文件
首先查看一下crontab的任務列表:
crontab
-l
然後新建:
crontab
-e
添加一行:
00
03
*
*
*
rm
-rf
/www/cmstest/my120/public/scripts/jpgraph/*
保存退出。
重啟服務:
/etc/rc.d/init.d/crond
restart
二、每日24:00自動備份資料庫
利用系統crontab來定時執行備份文件,按日期對備份結果進行保存,達到備份的目的。
1、創建保存備份文件的路徑/mysqldata
#mkdir
/mysqldata
2、創建/usr/sbin/bakmysql文件
查找資料庫庫文件的路徑:
一般都是:/var/lib/mysql,或者,/usr/local/mysql/var
查找方法:
1、/usr/local/mysql/bin/mysql
-u
root
-p
進入資料庫
2、輸入:show
databases;
3、這是可以查看到所有的資料庫,然後
4、find
/
-name
db(你想查找的資料庫名)
之後:#vi
/usr/sbin/bakmysql
輸入
復制代碼
代碼如下:
rq=`
date
+%Y%m%d
`
tar
zcvf
/mysqldata/mysql$rq.tar.gz
/var/lib/mysql
3、修改文件屬性,使其可執行
#
chmod
+x
/usr/sbin/bakmysql
新建任務:
首先查看一下crontab的任務列表:
crontab
-l
然後新建:
crontab
-e
添加一行
00
04
*
*
*
/usr/sbin/bakmysql
表示每天24點鍾執行備份
4、重新啟動crond
#
/etc/rc.d/init.d/crond
restart
此後每天就可以在/mysqldata中看到類似下的文件了:mysql20040619.tar.gz。

10. 如何備份linux伺服器上的mysql資料庫

其實跟windows是一樣的
簡單的軟備份方法就是使用mysql命令:
mysqlmp
-u
用戶名
-p
密碼
-all-databases >
/home/mysql/bak.sql
不過你可以做成shell腳本,然後在crontab
中定時執行,這個方法在數據量少時比較好使
如果你的數據比較重要,又多建議使用集群+硬體RAID1,0來保障服務