亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Mysql定時數據庫備份實現的保姆級教程

 更新時間:2024年12月13日 08:33:16   作者:拙野  
數據備份本身主要是為了預防一些意外,例如服務器或者個人電腦的硬件故障、人為的錯誤操作等情況,這篇文章主要給大家介紹了Mysql定時數據庫備份實現的保姆級教程,需要的朋友可以參考下

MySQL 是一種全球廣泛使用的關系型數據庫管理系統(tǒng),它存儲的數據不僅非常寶貴,而且往往無法替代。因此,確保這些重要數據的安全至關重要,定期進行備份就顯得尤為重要。為了進一步增強數據的安全性,我們建議采用跨服務器備份策略,即將數據備份到不同的物理或虛擬服務器上。這樣做可以作為一個額外的安全保障,有效防止因單點故障而導致的數據丟失風險。簡單來說,就是把重要文件同時保存在幾個不同的地方,這樣即使一個地方出了問題,其他地方還有備份,從而更好地保護我們的資料安全。

一、需要解決的問題

想要實現mysql數據跨服務器備份,需要先解決如下問題:

1、如何傳輸文件?

     在Linux系統(tǒng)中,我們可以利用scp命令來實現文件和目錄的安全傳輸。scp是“secure copy”的縮寫,它基于SSH協(xié)議,能夠在遠程服務器之間提供加密的文件拷貝服務,確保數據傳輸的安全性。簡易語法如下:

scp file_source file_target 

此處,我們是從本地復制文件到遠程,所以,大概命令就如下:

 scp /opt/backup/mysql/database.sql root@12.17.11.170:/opt/backup/mysql  

上面命令的意思就是將本地文件/opt/backup/mysql/database.sql復制到12.17.11.170服務器的/opt/backup/mysql目錄下。所以,執(zhí)行這個命令之前,要保證本地對應目錄和文件都存在。12.17.11.170服務器上的對應目錄也應該存在。

2、如何備份數據庫?

    備份數據庫我們使用mysql自帶的備份命令mysqldump即可。基本語法如下:

mysqldump -h [IP]  -u[mysql用戶] -p[mysql密碼]  [數據庫]  >腳本名

3、如何建立一個定時任務?

     我們可以利用Linux系統(tǒng)的crontab定時任務,去實現固定時間自動執(zhí)行腳本?;菊Z法如下:

[定時頻率表達式]  sh  [sh腳本文件]

上述問題,解決后,我們就不難得出實施的步驟。 

二、實施步驟

1、建立SSH公鑰,實現無密碼登錄

我們使用scp命令傳輸文件的時候,是需要輸入對方服務器的密碼的。這里,我們?yōu)榱瞬皇褂妹艽a登錄,來采取建立公鑰的方式,達到免登錄的效果。

1)服務器A上添加ssh公匙

ssh-keygen -t rsa

直接按回車建默認目錄生成即可。如果再提示已經生成過shh公鑰,則取消,去/root/.ssh目錄下查看即可。 產生如下兩個文件:

 2)將id_rsa.pub文件拷貝到服務器B的/root/.ssh目錄下,并命名authorized_keys,如果B服務器已經有authorized_keys文件,就直接將id_rsa.pub文件內容直接拷貝到authorized_keys中即可。

2、編寫備份數據庫腳本 

1)、創(chuàng)建如下sh腳本文件backupsql.sh

#!/bin/bash
#備份路徑
BACKUP=/opt/backup/mysql
#當前時間
DATETIME=$(date +%Y-%m-%d)
echo "===備份開始==="
echo "備份文件存放于${BACKUP}/$DATABASE-$DATETIME.sql"
#數據庫地址
HOST=localhost
#數據庫用戶名
DB_USER=root
#數據庫密碼
DB_PW=zhuoye521
#創(chuàng)建備份目錄
#[ ! -d "${BACKUP}/$DATETIME" ] && mkdir -p "${BACKUP}/$DATETIME"

#后臺系統(tǒng)數據庫
DATABASE=zhuoye
echo $DATABASE-$DATETIME
#mysqldump -u${DB_USER} -p${DB_PW} --single-transaction --host=$HOST -q -R --databases $DATABASE | gzip > ${BACKUP}/$DATETIME/$DATABASE.sql
mysqldump -h localhost  -u${DB_USER} -p${DB_PW}  ${DATABASE} >${BACKUP}/$DATABASE-$DATETIME.sql

echo "===導出成功,開始傳輸==="
#壓縮成tar.gz包
cd $BACKUP
#tar -zcvf $DATETIME.tar.gz $DATETIME
#備份到服務器B
scp $DATABASE-$DATETIME.sql root@12.17.11.170:/opt/backup/mysql
#刪除備份目錄
#rm -rf ${BACKUP}/$DATETIME

#刪除10天前備份的數據,這邊可以自行更改
#find $BACKUP -mtime +10 -name "*.sql" -exec rm -rf {} \;
echo "===數據庫備份到服務器成功==="

注意:要保證A、B服務器上都已經有/opt/backup/mysql這個目錄。

腳本賦權:

chmod 775 backupsql.sh 

  2)、執(zhí)行腳本文件可以在B服務器上/opt/backup/mysql成功出現sql腳本,即腳本無問題。

         這一步手動執(zhí)行不僅是驗證你的腳本是不是能夠正確產生并傳輸到B服務器的指定目錄,還因為首次執(zhí)行的時候會需要手動確認一次。如下圖,輸入yes即可:

如果你不手動執(zhí)行一次,可能導致定時任務每次執(zhí)行的時候都會卡到這個需要確認是否繼續(xù)的步驟。 

注意:細心點你會發(fā)現navicate導出的sql腳本要比我們使用mysqldump導出的腳本要大,這并不是因為你的數據缺失了,而是使用mysqldump導出的sql文件中會把盡可能多的數據放到一條“insert”語句中,而navicat導出的sql文件每條“insert”語句只對應一條數據。這也就是,使用mysqldump導出的備份腳本,在執(zhí)行的時候速度更快的原因。 

3、編寫定時任務

1)、編輯定時任務文件

crontab -e 

2)、輸入如下內容,后保存退出

#表示每天23:59自動執(zhí)行代碼。需要注意的是前面是分鐘,后面是小時

59 23 * * * sh /opt/backup/mysql/backupsql.sh   

3)、重啟服務 

service crond restart 

注:如果重啟失敗,可能就是你第二步的時間寫錯了。要注意前面是分鐘,后面是小時,不要寫反了!

總結

到此這篇關于Mysql定時數據庫備份實現的文章就介紹到這了,更多相關Mysql定時數據庫備份內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MySQL如何查詢客戶端連接情況

    MySQL如何查詢客戶端連接情況

    這篇文章主要介紹了MySQL如何查詢客戶端連接情況,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • MySQL prepare語句的SQL語法

    MySQL prepare語句的SQL語法

    PREPARE語句用于預備一個語句,并指定名稱statement_name,以后引用該語句
    2012-01-01
  • ssm框架如何調用mysql存儲過程

    ssm框架如何調用mysql存儲過程

    這篇文章主要介紹了ssm框架如何調用mysql存儲過程,首先是建表,創(chuàng)建存儲過程,本文結合示例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • 如何解決安裝MySQL5.0后出現1607異常

    如何解決安裝MySQL5.0后出現1607異常

    小伙們在安裝mysql5.0的時候是不是遇到過1607異常問題,大家都是怎么解決的呢?下面小編跟大家分享我是如何解決安裝MySQL5.0后出現1607異常的,需要的朋友可以參考下
    2015-10-10
  • linux mysql5.5升級至mysql5.7的步驟與踩到的坑

    linux mysql5.5升級至mysql5.7的步驟與踩到的坑

    這篇文章主要介紹了linux mysql5.5升級至mysql5.7的詳細步驟,后面腳本之家小編為大家整理了多個補充,大家可以參考一下
    2021-01-01
  • MySql開發(fā)之自動同步表結構

    MySql開發(fā)之自動同步表結構

    這篇文章主要給大家介紹了關于MySql開發(fā)之自動同步表結構的相關資料,這樣可以避免在開發(fā)中由于修改數據庫字段導致的數據庫表不一致問題,需要的朋友可以參考下
    2021-05-05
  • MySQL 8.0 可以操作 JSON 了

    MySQL 8.0 可以操作 JSON 了

    這篇文章主要介紹MySQL 8.0 如何操作 JSON ,經過漫長的測試,即將整體遷移至Mysql8.0; Mysql8.0 對于Json操作新增/優(yōu)化了很多相關Json的API操作; 閱讀了一下官方文檔,雖然絕大多數的JSON操作都是應用層完成,下面來看文章的詳細內容吧
    2021-10-10
  • MySQL無法啟動幾種常見問題小結

    MySQL無法啟動幾種常見問題小結

    在群里看到有新同學還在問MySQL無法啟動的問題,于是總結了幾個常見情況與解決方法,需要的朋友可以參考下
    2013-09-09
  • mysql字符串的‘123’轉換為數字的123的實例

    mysql字符串的‘123’轉換為數字的123的實例

    下面小編就為大家?guī)硪黄猰ysql字符串的‘123’轉換為數字的123的實例。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • mysql快速添加百萬條記錄的語句

    mysql快速添加百萬條記錄的語句

    本文介紹一下關于MySQL使用INSERT SELECT批量插入數據的方法
    2013-11-11

最新評論