1. 程式人生 > >Linux上定時備份MySQL資料庫

Linux上定時備份MySQL資料庫

1、檢視磁碟空間情況:

既然是定時備份,就要選擇一個空間充足的磁碟空間,避免出現因空間不足導致備份失敗.

檢視磁碟空間情況:df -h


2、建立備份目錄:

上面我們使用命令看出/home下空間比較充足,所以可以考慮在/home儲存備份檔案;

cd /home
mkdir backup
cd backup

3、建立備份Shell指令碼:

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


vi bkDatabaseName.sh

輸入/貼上以下內容:


mysqldump -uusername -ppassword DatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql

輸入上面的內容就可以了,下面綠色部分的是另一種方式,和上面的二選一即可,可以不考慮:

[對備份進行壓縮:



mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz

]

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

退出編輯頁:點選ESC推出,然後點選":wq"w寫入write q推出quit


4、新增可執行許可權:

chmod u+x bkDatabaseName.sh

新增可執行許可權之後先執行一下,看看指令碼有沒有錯誤,能不能正常使用;

./bkDatabaseName.sh

如果出現下面如圖中紅框所示,則表示可以正常使用

錯誤解決方案:

[

在執行了上面的程式碼./bkDatabaseName.sh,有可能會報如下錯誤:

mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: YES) when trying to connect

解決方式如下:

新增-h192.168.1.14
如:/usr/bin/mysqldump -h192.168.1.14 -uroot -p654321 bkcare | gzip > $backupdir/bkcare-db-$time.sql.gz ]

5新增計劃任務


A、檢測或安裝 crontab

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

# crontab
-bash: crontab: command not found

如果在執行完所有的步驟自動備份功能仍然不起作用,也有可能是沒有安裝crontab

如時沒有安裝 crontab,需要先安裝它,具體步驟請參考:

1)檢測是否安裝crontab,並安裝

rpm -q vixie-cron   


2)安裝:



B、修改/etc/crontab

#vi /etc/crontab

1),在下面新增

01   3 * * * root/home/backup/bkDatabaseName.sh

表示每天3點鐘執行備份

退出編輯頁:點選ESC推出,然後點選":wq"w寫入write q推出quit

執行以上操作時,有時會報一下錯誤:

vim模式下報錯E37: No write since last change (add ! to override)


故障現象:

使用vim修改檔案報錯,系統提示如下:

E37: No write since last change (add ! to override)

故障原因:

檔案為只讀檔案,無法修改。

解決辦法:

使用命令:w!強制存檔即可,在vim模式下,鍵入以下命令:

:w!

存檔後在使用vim命令檢查是否儲存,如未儲存,編輯後重復以上操作。

或者報出linux中vi儲存檔案時的“Can't open file for writing”

E212: Can't open file for writing

Press ENTER or type command to continue

   出現這個錯誤的原因可能有兩個:一是當前使用者的許可權不足,二是此檔案可能正被其他程式或使用者使用。這裡的錯誤原因是前者,解決方案是在使用vi命令開啟檔案時,前面加上sudo來臨時提供管理員許可權,即使用命令“sudo vi grub.cfg”開啟編輯檔案。由此看來,sudo命令是很有用的,當我們執行某種作業系統提示諸如“operation not permitted”等許可權不足資訊時,我們很多時候都可以在命令前面加上sudo來解決許可權不足問題


下面綠色這個是另一種備份時間的方式,和上面的二選一即可:

[2)如果1中不起作用,請使用crontab -e執行

執行命令:

crontab -e
這時就像使用vi編輯器一樣,可以對計劃任務進行編輯。,輸入以下內容並儲存:

*/1 * * * * /home/backup/bkDatabaseName.sh

意思是每一分鐘執行一次shell指令碼  “/home/backup/bkDatabaseName.sh”。

]

6、重新啟動crond

# /etc/rc.d/init.d/crond restart 


如果如上圖所示,則表示執行正確

7、測試任務是否執行

如果任務執行失敗了,可以通過以下命令檢視任務日誌:

# tail -f /var/log/cron

錯誤輸出類似如下:

Sep 30 14:01:01 bogon run-parts(/etc/cron.hourly)[2503]: starting 0anacron
Sep 30 14:01:01 bogon run-parts(/etc/cron.hourly)[2512]: finished 0anacron


正確資訊如下:


相關推薦

Linux定時備份MySQL資料庫

1、檢視磁碟空間情況: 既然是定時備份,就要選擇一個空間充足的磁碟空間,避免出現因空間不足導致備份失敗. 檢視磁碟空間情況:df -h 2、建立備份目錄: 上面我們使用命令看出/home下空間

linux伺服器定時備份 mysql 資料庫

<span style="font-size:14px;color:#330033;">#!/bin/bash db_name=enocp_sta file_name="$db_name"_$(date +%Y%m%d_%H%M) dir=/root/backup/mysql/`date +%Y_

linux定時備份mysql資料庫

1、檢視磁碟空間情況: [[email protected] backup]# df -h 檔案系統 容量 已用 可用 已用% 掛載點 /dev/mapper/centos-root 17G 2.7G 15G 16

linux 使用python3 定時備份mysql資料庫指令碼 修改配置直接可用。親測!

# Time : 2018/12/24 # Author : [email protected]#依賴包 pip install schedule#注意事項#1. linux中 使用os.system()包裹的命令有特殊字元如)(請使用轉義\)\(或'(' ')'#2. 輸入的資料庫密碼 -p+密

linux下使用crontab定時備份MYSQL資料庫

第一步:在伺服器上配置備份目錄程式碼: -------------------------------------------------------------------------------- mkdir /var/lib/mysqlbackup cd /var/li

linux定時備份mysql資料庫,及解決crontab執行時生成資料庫檔案為空的問題

一、用命令實現備份 進入mysql的bin目錄(mysql安裝目錄的下一級目錄) 1、備份資料 #mysqldump -uusername -ppassword discuz >discuz_2010-04-01.sql -uusernae:-u+mysql的使用者名

新增計劃任務每天定時備份mysql資料庫並打包壓縮

 1、備份資料庫指令碼 backups.bat @echo off set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%" "C:/Program Files/MySQL/MySQL Server 5.7/bin/mysqldump" --opt

LINUX 下自動備份mysql資料庫

mysql自動備份分為兩個部分,一個部分是shell指令碼的編寫,另外一個部分是新增自動執行命令到crontab。 1.首先是shell指令碼的編寫,每天自動備份的的做法如下所示,shell指令碼首先用#!/bin/bash指定直譯器的路徑,接下來設定儲存路徑的變數。我們利用mysqldump這

通過windows伺服器定時任務,定時備份mysql資料庫

為了防止伺服器宕機,導致mysql資料庫損壞無法修復,所以每天定時進行備份。一旦有問題直接還原資料庫! 50多個G的資料庫備份完成sql大概在20G,通過壓縮後大概在2G左右。 長時間進行後硬碟吃不消。所以做了一個定時清理備份檔案的指令碼。 點此進入下一篇文章->精簡mysql

linux每天自動備份mysql資料庫,且只保留90天內的備份資料

1、使用VI工具編寫test_database_backup.sh備份資料庫指令碼內容 #========================start shell 指令碼============================ #!/bin/bash #定義有備份的資料庫名 d

Xtrabackup定時備份mysql資料庫指令碼

定時備份MySQL資料庫 指令碼內容: #!/bin/bash ## 備份計劃任務 ## ## 每天凌晨1:30一次全量備份 ## 每天間隔1小時一次增量備份 ## 30 1 * * * backup.sh full ## 00 * * * * backup.

在遠端Linux伺服器中備份MySQL資料庫,通過scp將遠端Linux伺服器中檔案下載到本地Linux電腦中

1.首先登入到遠端伺服器(ip 10.46.2.228),可通過ssh方式登入,確保ssh服務和22埠正常才能使用scp命令下載檔案; 2.執行命令 mysqldump -u root -p mysql(要匯出的資料庫名) > mysql.sql(匯出資料庫儲存檔名

Linux自動備份MySQL

在資料庫表丟失或損壞的情況下,備份你的資料庫是很重要的。如果發生系統崩潰,你肯定想能夠將你的表儘可能丟失最少的資料恢復到崩潰發生時的狀態。本文主要對MyISAM表做備份恢復。 備份策略一:直接拷貝資料庫檔案 備份策略二:使用mysqldump備份資料庫(一個星期全備一次,每

如何定時備份Mysql資料庫

1.建立備份資料庫儲存目錄 cd data/db mkdir backup #建立儲存目錄   2.新增備份指令碼 vim backupdb.sh #建立指令碼檔案 指令碼內容如下: #!/bin/sh db_name="xxxxxx" #資料庫名稱 name="$db_name-$(da

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

www.syncnavigator.cn SyncNavigator 做資料同步時所支援的資料庫型別: 支援sqlserver 2000-2014所有版本,全相容,和MYsql 4.x 、MYsql 5.x 、MYsql 6.x版本。 來源資料庫和目標資料庫可以版本不同

linux備份mysql資料庫,並ftp到遠端linux伺服器

一、檢查FTP服務是否安裝 1.架設mysql資料庫裝在172.22.1.77上,如何安裝mysql略,簡稱為77。 2.作為備份機IP為172.22.1.150上,簡稱為150; 3.為150按照ftp命令,首先XSHELL遠端連線到150上,確認ftp

linux備份mysql資料庫冷備熱備定時備份資料

特別強調shell指令碼執行備份資料庫檔案自動穿件sql檔案寫入檔案空的原因:使用備份命令mysqldump命令要使用絕對路徑,因為直接執行時是在mysql的bin目錄下執行的,所以沒有問題,但是crontab就不是在mysql的bin下了,所以找不到mysqldump的命

linux定時備份mysql數據庫文件

設定 mysql 密碼 mysql數據庫 lin dsm 寫入 退出 rac 1。設定定時器:終端敲入:crontab -e命令 2,然後寫入 00 23 * * * /home/db_bak_file/dbbak.sh >>/home/db_

linux定時備份MySQL數據庫並刪除七天前的備份文件

/dev/ rdquo .sh 文件的 文件名 del l數據庫 blog 出錯 1、創建備份文件夾 #cd /bak#mkdir mysqldata 2、編寫運行腳本 #nano -w /usr/sbin/bakmysql.sh 註:如使用nano編輯此代碼需在每

linux 定時備份mysql

1,寫指令碼 建立mysql的備份指令碼:backups.sh mysqldump -uroot -p1234 test >/home/test.sql 2,建立定時任務 開啟任務器 crontab -e 開寫: 0 0 * * * sh /home/backu