新聞中心
在現(xiàn)代社會,數(shù)據(jù)庫已經(jīng)成為企業(yè)和機構儲存和管理信息的重要手段。隨著各類應用和業(yè)務的增多,數(shù)據(jù)庫規(guī)模也在逐漸擴大,備份成了必不可少的措施。特別是在一些對數(shù)據(jù)完整性、可用性要求較高的行業(yè)中,如金融、醫(yī)療等,數(shù)據(jù)備份顯得尤為重要。

上海(SH)作為中國經(jīng)濟發(fā)展的重要城市,其企業(yè)機構數(shù)量眾多,涉及到的數(shù)據(jù)也相當龐大。因此,如何實現(xiàn)SH多個數(shù)據(jù)庫的有效備份,成為了一個需要解決的問題。
一、了解備份的方式和方法
在進行SH多個數(shù)據(jù)庫的備份之前,首先需要了解下備份的方式和方法。傳統(tǒng)的備份方式主要包括完全備份、增量備份和差異備份。完全備份是將所有的數(shù)據(jù)備份全部復制一份,實現(xiàn)單機數(shù)據(jù)的完全還原。增量備份是針對完全備份之后的數(shù)據(jù)進行備份,只備份新修改的數(shù)據(jù)。差異備份則是備份增量備份之后發(fā)生的變化。
當然,這些備份方式都有各自的優(yōu)劣,需要根據(jù)具體情況選擇。但無論選擇哪種方式,選定一個合適的備份時間是十分重要的。在選擇備份時間時不僅要考慮數(shù)據(jù)庫的數(shù)據(jù)量大小,還要考慮備份的時間以及備份數(shù)據(jù)的重要程度等因素。
二、選擇備份工具
為了更加有效地備份SH多個數(shù)據(jù)庫,備份工具的選擇也很關鍵。市面上有很多備份工具,如Oracle Data Pump、MySQLdump等等。這些備份工具功能強大,唯一的缺點就是速度比較慢。因此,針對SH多個數(shù)據(jù)庫的備份,應該選擇一些速度更快的備份工具。
在備份工具的選擇上,還要考慮一些其他的因素,如備份所需的空間、可靠性和易用性等。而備份的可靠性應該是最重要的因素之一,容易出現(xiàn)數(shù)據(jù)丟失、備份失敗等問題,造成極大的損失。
三、增強數(shù)據(jù)安全
數(shù)據(jù)安全是備份的最終目的。為了增強SH多個數(shù)據(jù)庫的數(shù)據(jù)安全性,可以采用以下措施:
1. 加密備份數(shù)據(jù): 對備份數(shù)據(jù)進行加密處理,保證備份數(shù)據(jù)安全性。
2. 多地備份: 對備份數(shù)據(jù)進行多地備份,彌補備份數(shù)據(jù)所處地點在突發(fā)事件中可能存在的風險。
3. 數(shù)據(jù)庫自動備份: 進行自動化數(shù)據(jù)庫備份,實現(xiàn)24小時全天候的數(shù)據(jù)備份。
4. 數(shù)據(jù)庫災備: 對數(shù)據(jù)庫進行災備和備份,以面對自然災害、硬件故障等突發(fā)事件。
四、
如何實現(xiàn)SH多個數(shù)據(jù)庫的有效備份,是一個攸關企業(yè)和機構數(shù)據(jù)安全的重要問題。在備份前需要了解備份方式和方法,選擇一個合適的備份工具以加快備份速度。增強數(shù)據(jù)安全性的措施也需要一并考慮。最重要的是,要認識到數(shù)據(jù)備份的意義,為數(shù)據(jù)的可持續(xù)性和安全性貢獻力量。
成都網(wǎng)站建設公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導10多年以來專注數(shù)字化網(wǎng)站建設,提供企業(yè)網(wǎng)站建設,高端網(wǎng)站設計,響應式網(wǎng)站制作,設計師量身打造品牌風格,熱線:028-86922220如何在linux下實現(xiàn)mysql數(shù)據(jù)庫每天自動備份
方法/步驟
1. 在根目錄下新建定時備份存儲文件夾mkdir /mysql_backup
2.新建備份的腳本vim /root/mysql_backup.sh
3.在mysql_backup.sh中輸入內(nèi)容:
backupdir=/mysqlbackup time=` date +%Y%m%d%H`mysqldump -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 = 獲取當前時間 年月日時()2023年11月14日17點mysqldump 備份數(shù)據(jù)庫指令 abc要備份的數(shù)據(jù)庫find $backupdir -name “abc*.sql.gz” -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1 刪除5天前的備份文件
3 :wq 文件保存成功后
先按一下鍵盤上的歲稿 ” esc ” 然后輸入 ” :wq “
執(zhí)行一下腳本,看根目錄下的mysql_backup文件夾是否有.sql.gz后綴名的文件
./mysql_backup.sh
寫入每天的定時任務 修改 /etc/crontabvi /etc/crontab
按鍵盤上的”i”,開始輸入
02 4 * * * root /root/mysql_backup.sh
表示每天4點2分執(zhí)行備份任務
先按一下鍵盤上的 ” esc ” 然后輸入 ”乎鬧孝 :wq “ 表彎謹示保存
重新啟動crond
service crond restart 或 /etc/rc.d/init.d/crond restart
本機運行的MySQL 數(shù)據(jù)庫 如何安全的備份/還原
應該所有的賀悄數(shù)據(jù)庫操作軟件都有備份功能的吧?
難道你沒用任何工具?
或者你直接上網(wǎng)搜mysql備份工具,能卜粗搜出好多的。型拍鎮(zhèn)
一般是即時備份。做主從。或者是每天增量備份。
本文是在linux下,mysql 4.1.14版本下測試的,經(jīng)過適當修改可能適合mysql 4.0,5.0及其其他版本.
本文適合于沒有啟動復制功能的mysql,如果啟動了復制,可能不需要采取這種備份策略或者需要修改相關參數(shù).
每個人的備份策略都可能不同,所以請根據(jù)實際情況修改,做到舉一反三,不要照搬照抄,可能會造成不必要的損失.
希望你明白這個腳本要干什么工作!
腳本描述
每7天備份一次所有數(shù)據(jù),每天備份禪賀團binlog,也就是增量備份.
(如果數(shù)據(jù)少,每天備份一次完整數(shù)據(jù)即可,可能沒必要做增量備份)
作者對shell腳本不太熟悉,所以很多地方寫的很笨
開啟 bin log
在mysql 4.1版本中,默認只有錯誤日志,沒有其他日志.可以通過修改配置打開bin log.方法很多,其中一個是在/etc/my.cnf中的mysqld部分加入:
log-bin
這個日志的主要作用是增量備份或者復制(可能還有其他用途).
如果想增量備份,必須打開這個日志.
對于數(shù)據(jù)庫操作頻繁的mysql,這個日志會變得很大,而且可能會有多個.
在數(shù)據(jù)庫中flush-logs,或者使用mysqladmin,mysqldump調(diào)用flush-logs后并且使用參數(shù)delete-master-logs,這些日志文件會消失,并產(chǎn)生新的日志文件(開始是空的).
所以如果從來不備份,開啟日志可能沒有必要.
完整備份的同時可以調(diào)用flush-logs,增量備份之前flush-logs,以便備份最新的數(shù)據(jù).
完整備份腳本
如果數(shù)據(jù)庫數(shù)據(jù)比較多,我們一般是幾天或者一周備份一次數(shù)據(jù),以免拍芹影響應用運行,如果數(shù)據(jù)量比較小,那么一天備份一次也無所謂了.
#!/bin/sh
# mysql data backup script
# by scud
#
#
# use mysqldump –help,get more detail.
#
BakDir=/backup/mysql
LogFile=/backup/mysql/mysqlbak.log
DATE=`date +%Y%m%d`
echo ” ” >> $LogFile
echo ” ” >> $LogFile
echo “-” >> $LogFile
echo $(date +”%y-%m-%d %H:%M:%S”) >> $LogFile
echo “” >> $LogFile
cd $BakDir
DumpFile=$DATE.sql
GZDumpFile=$DATE.sql.tgz
mysqldump –quick –all-databases –flush-logs
–delete-master-logs –lock-all-tables
> $DumpFile
echo “Dump Done” >> $LogFile
tar czvf $GZDumpFile $DumpFile >> $LogFile 2>&1
echo “Backup Success!” >> $LogFile
rm -f $DumpFile
#delete previous daily backup files:采用增量備份的文件,如果完整備份后,則刪除增量備份的文件.
cd $BakDir/daily
rm -f *
cd $BakDir
echo “Backup Done!”
echo “please Check $BakDir Directory!”
echo “copy it to your local disk or ftp to somewhere !!!”
ls -al $BakDir
上面的腳本把mysql備份到本地的/backup/mysql目錄,增量備份的文件放在/backup/mysql/daily目錄賀橘下.
注意:上面的腳本并沒有把備份后的文件傳送到其他遠程計算機,也沒有刪除幾天前的備份文件:需要用戶增加相關腳本,或者手動操作.
增量備份
增量備份的數(shù)據(jù)量比較小,但是要在完整備份的基礎上操作,用戶可以在時間和成本上權衡,選擇最有利于自己的方式.
增量備份使用bin log,腳本如下:
#!/bin/sh
#
# mysql binlog backup script
#
/usr/bin/mysqladmin flush-logs
DATADIR=/var/lib/mysql
BAKDIR=/backup/mysql/daily
###如果你做了特殊設置,請修改此處或者修改應用此變量的行:缺省取機器名,mysql缺省也是取機器名
HOSTNAME=`uname -n`
cd $DATADIR
FILELIST=`cat $HOSTNAME-bin.index`
##計算行數(shù),也就是文件數(shù)
COUNTER=0
for file in $FILELIST
do
COUNTER=`expr $COUNTER + 1 `
done
NextNum=0
for file in $FILELIST
do
base=`basename $file`
NextNum=`expr $NextNum + 1`
if
then
echo “skip lastest”
else
dest=$BAKDIR/$base
if(test -e $dest)
then
echo “skip exist $base”
else
echo “copying $base”
cp $base $BAKDIR
fi
fi
done
echo “backup mysql binlog ok”
增量備份腳本是備份前flush-logs,mysql會自動把內(nèi)存中的日志放到文件里,然后生成一個新的日志文件,所以我們只需要備份前面的幾個即可,也就是不備份最后一個.
因為從上次備份到本次備份也可能會有多個日志文件生成,所以要檢測文件,如果已經(jīng)備份過,就不用備份了.
注:同樣,用戶也需要自己遠程傳送,不過不需要刪除了,完整備份后程序會自動生成.
訪問設置
腳本寫完了,為了能讓腳本運行,還需要設置對應的用戶名和密碼,mysqladmin和mysqldump都是需要用戶名和密碼的,當然可以寫在腳本中,但是修改起來不太方便,假設我們用系統(tǒng)的root用戶來運行此腳本,那么我們需要在/root(也就是root用戶的home目錄)創(chuàng)建一個.my.cnf文件,內(nèi)容如下
password =password
user= root
user=root
password=password
注:設置本文件只有root可讀.(chmod 600 .my.cnf )
此文件說明程序使用mysql的root用戶備份數(shù)據(jù),密碼是對應的設置.這樣就不需要在腳本里寫用戶名和密碼了.
自動運行
為了讓備份程序自動運行,我們需要把它加入crontab.
有2種方法,一種是把腳本根據(jù)自己的選擇放入到/etc/cron.daily,/etc/cron.weekly這么目錄里.
一種是使用crontab -e放入到root用戶的計劃任務里,例如完整備份每周日凌晨3點運行,日常備份每周一-周六凌晨3點運行.
要想簡單點的就去下一個Navicat for MySQL,這是MySql界面化的軟件,更好下載一個中文版的,裝上軟件之后瞎罩御,那里有很詳細的向導設置磨巖,你肯定可以學悶睜會。
簡單的話,找到數(shù)據(jù)庫文件,直接復制備份,具置看你的mysql配置
數(shù)據(jù)備份是數(shù)據(jù)容災碰卜的最后一道防線,即便有著兩地三中心的架構,備份扒猜也依然重要。如果備份出問題,備份時影響了交易業(yè)務,備份數(shù)據(jù)無法恢復,這些也是企業(yè)難以承受的。所以選擇合適的備份工具尤為重要。
每個企業(yè)級數(shù)據(jù)庫都會有配套的備份工具,MEB(MySQL Enterprise Backup)就是MySQL企業(yè)版中非常重要的工具之一,是為企業(yè)級客戶提供的數(shù)據(jù)備份方案。
Xtrabackup一直作為MEB 開源版?zhèn)涮ザ嬖?,從MySQL 8.0開始情況可能會變得有所不同。
在 MySQL 8.0的Backup Lock、Redo Log Archiving、Page Tracking等新特性的加持下,MEB備份/恢復體驗會更好,目前xtrabackup還不支持這些特性。
MySQL 企業(yè)版還有哪些功能?
特性1:Backup Lock
8.0之前使用xtrabackup或MEB做物理備份,為了保證備份時InnoDB引擎表與其他引擎數(shù)據(jù)文件、及binlog日志的一致性會上全局讀鎖,再拷貝非InnoDB文件,這期間MySQL會變成只讀,數(shù)據(jù)無法寫入。表數(shù)量越多,可能加上時間越長,如果使用的xtrabackup 不小心沒加rsync參數(shù),逐個拷貝frm文件,鎖定時間會更長,對業(yè)務影響較大。
我曾遇到過部署在虛擬機的實例有12023多張表,當時使用的xtrabackup,備份腳本中沒加rsync參數(shù),結果鎖了十幾分鐘,而MEB就沒有這樣的問題。
MySQL 8.0支持輕量級備份鎖 LOCK INSTANCE FOR BACKUP,數(shù)據(jù)字典也重構了由InnoDB存儲。若不創(chuàng)建非InnoDB表,MEB默認使用備份鎖獲取binlog日志一致性位置,并阻止DDL操作,但不影響DML操作。
只有InnoDB表,僅上備份鎖
請點擊輸入圖片描述
若有非InnoDB表,上全局鎖
請點擊輸入圖片描述
特性2:Redo Log Archiving
MEB能做到在線熱備,備份時不影響數(shù)據(jù)庫讀寫,這是利用了InnoDB事務日志,在備份期間持續(xù)監(jiān)視redo log的變化,讀取增量變化,寫入到ibbackup_logfile,也就不需要上鎖來保障備份一致性。(對非InnoDB的文件需要上讀鎖拷貝)
如笑此穗果備份期間數(shù)據(jù)庫寫入負載特別大,而寫入ibbackup_logfile速度較慢,redo log size也不大,很可能會出現(xiàn)ibbackup_logfile的寫入速度跟不上redo log記錄生成速度,redo log 空間不夠時需要覆寫日志文件,那么來不及寫入ibbackup_logfile的記錄會丟失,導致備份失敗。
MEB 4.1對此做了優(yōu)化,將redo log處理線程拆分成多線程分工合作,提高處理redo log的效率,降低了redo log覆寫造成備份失敗的概率,但redo log新增速度和ibbackup_logfile寫入速度懸殊太大,問題依然會發(fā)生。
MySQL 8.0.17支持了redo log archiving 徹底解決了此問題,備份前設置innodb_redo_log_archive_dirs,指定redo log歸檔目錄。MEB備份時自動開啟日志歸檔,當checkpoint時會將舊記錄歸檔到此目錄,后續(xù)從歸檔文件中讀取redo日志記錄,避免了覆寫可能導致的redo記錄丟失。
請點擊輸入圖片描述
注意:innodb_redo_log_archive_dirs 不能在數(shù)據(jù)目錄下,目錄權限要求是700
特性3:Page Tracking
Page Tracking 是為優(yōu)化增量備份效率,減少不必要的數(shù)據(jù)頁掃描。
增量備份當前有3種掃描模式:
page-track:利用LSN精確跟蹤上次備份之后被修改頁面,僅復制這些頁面,效率最快。
optimistic:掃描上次備份之后被修改的InnoDB 數(shù)據(jù)文件中,找出并拷貝修改的頁面。依賴系統(tǒng)時間,使用存在限制。
full-scan:掃描所有InnoDB數(shù)據(jù)文件,找出并拷貝自上次備份之后修改的頁面,效率最慢
1、利用page-track增量備份,需先安裝備份組件
mysql> INSTALL COMPONENT “
2、在全備前開啟page-track
SELECT mysqlbackup_page_track_set(true);
3、全備之后,做增量備份時指定若滿足page tracking條件,默認會使用page-track模式,否則會使用full-scan模式,也可以指定–incremental=page-track。
mysqlbackup –incremental-backup-dir=backup_incr –trace=3 –incremental=page-track –incremental-base=history:last_full_backup backup
incremental-base有3種選擇
last_backup:基于前一次備份做增備,前一次備份可能是增備,也可能是全備。這種方式全備之間可能會有多個增備,每次增量可能比較小,但恢復時需要逐個合并。
last_full_backup:基于前一次全備做增備。這種方式增備會越往后體積可能越大,但恢復時只需要合并最后一次增量備份。
dir:基于前一次的備份目錄,前一次備份可能是增備,也可能是全備。
測試對比full-scan 和page-track ,在變更頁小于總體50%的情況下 ,備份效率至少能有1倍的速度提升。
page-track 模式 磁盤讀寫均衡,說明讀寫的都是修改頁面。
請點擊輸入圖片描述
full-scan模式 磁盤讀寫差別很大,說明讀了很多未修改的頁面。
sh 多個數(shù)據(jù)庫備份的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關于sh 多個數(shù)據(jù)庫備份,如何實現(xiàn)SH多個數(shù)據(jù)庫的有效備份?,如何在linux下實現(xiàn)mysql數(shù)據(jù)庫每天自動備份,本機運行的MySQL 數(shù)據(jù)庫 如何安全的備份/還原的信息別忘了在本站進行查找喔。
成都創(chuàng)新互聯(lián)科技有限公司,經(jīng)過多年的不懈努力,公司現(xiàn)已經(jīng)成為一家專業(yè)從事IT產(chǎn)品開發(fā)和營銷公司。廣泛應用于計算機網(wǎng)絡、設計、SEO優(yōu)化、關鍵詞排名等多種行業(yè)!
網(wǎng)站標題:如何實現(xiàn)SH多個數(shù)據(jù)庫的有效備份?(sh多個數(shù)據(jù)庫備份)
分享鏈接:http://m.fisionsoft.com.cn/article/cohopps.html


咨詢
建站咨詢
