溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何使用批處理文件異地備份數(shù)據(jù)庫(kù)

發(fā)布時(shí)間:2021-07-05 16:16:16 來(lái)源:億速云 閱讀:369 作者:chen 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要講解了“如何使用批處理文件異地備份數(shù)據(jù)庫(kù)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“如何使用批處理文件異地備份數(shù)據(jù)庫(kù)”吧!

為了保障服務(wù)器中數(shù)據(jù)的可恢復(fù)性,采用異地備份數(shù)據(jù)庫(kù)方案。異地備份數(shù)據(jù)分為異地備份文件數(shù)據(jù)與異地備份數(shù)據(jù)庫(kù)數(shù)據(jù)二種。其中異地備份文件數(shù)據(jù)是為了備份網(wǎng)站中用戶(hù)上傳的文件而設(shè)計(jì)的。而異地備份數(shù)據(jù)庫(kù)數(shù)據(jù)是將數(shù)據(jù)庫(kù)中數(shù)據(jù)備份文件上傳到異地服務(wù)器。

一、實(shí)施過(guò)程及原理為:

1.       需安裝WinRAR軟件,用于將多個(gè)待備份文件壓縮成一個(gè)壓縮文件。
2.       書(shū)寫(xiě)備份腳步:
目錄定位到WinRAR軟件安裝路徑下
cd c:\program files\winrar
執(zhí)行rar.exe程序
rar a -r -y c:\c.rar c:\c\a c:\c\b
連接遠(yuǎn)程ftp服務(wù)器,其中要書(shū)寫(xiě)ftp://ftp.txt/文件
ftp -s:c:\ftp.txt 192.168.0.1
可刪除本地備份文件
del /f /q c:\c.rar
目錄重新定位
cd\
完整代碼如下(back.bat):

代碼如下:


cd c:\program files\winrar
rar a -r -y c:\c.rar c:\c\a c:\c\b
ftp -s:c:\ftp.txt 192.168.0.1
del /f /q c:\c.rar
cd\

3. 書(shū)寫(xiě)遠(yuǎn)程ftp連接配置文件

用戶(hù)名
密碼
cd 路徑
Put 本地文件路徑及文件名 遠(yuǎn)程文件路徑及文件名
Bye為退出
完整代碼如下(ftp.txt):
admin
Heroic
put c:\c.rar c.rar
bye
4.       通過(guò)windows自帶的“任務(wù)計(jì)劃”功能定時(shí)運(yùn)行bat文件。(通過(guò)“開(kāi)始”->“附近”->“系統(tǒng)工具”->“任務(wù)計(jì)劃”
5.       備份oracle數(shù)據(jù)庫(kù)命令為:
exp userid/pwd@servicename file = "backupfilepath" owner = user
注意userid為系統(tǒng)管理員,backupfilepath為文件保存路徑(文件后綴為dmp) ,user是針對(duì)那個(gè)用戶(hù)進(jìn)行備份,如果不寫(xiě)該參數(shù),則默認(rèn)針對(duì)userid用戶(hù)進(jìn)行備份
例如:
exp user/pwd@servername file=d:"backup"oracle"oracle%date:~0,10%.dmp owner=system log=d:"backup"oracle"oracle%date:~0,10%.log
(其中%date:~0,10% 為取當(dāng)前系統(tǒng)時(shí)間。0為開(kāi)始位置,10為結(jié)束位置)

代碼如下:


set files=c:\backup\%date:~0,10%.rar
set dbfilesdmp=c:\backup\%date:~0,10%db.dmp
set userdb="jbpmdemo"
set pwddb="jbpmdemo"
set domain="master.jhserver"
set filespath=c:\c\a c:\c\b
set ftpfile="c:\backup\ftp.txt"
set ftpname=admin
set ftppwd=Heroic
set ftpfiles="%date:~0,10%.rar"
set ftpdbfiles="%date:~0,10%db.rar"
set ftpdomain="192.168.0.1"
set rarpath="c:\program files\winrar"

@echo 開(kāi)始備份數(shù)據(jù)庫(kù)
exp %userdb%/%pwddb%@%domain% file="%dbfilesdmp%"

@echo 開(kāi)始?jí)嚎s文件
c:
cd c:\program files\winrar
rar a -r -y %files% %filespath% %dbfilesdmp%

@echo 寫(xiě)入文件ftp
@echo %ftpname%>%ftpfile%
@echo %ftppwd%>>%ftpfile%
@echo put %files% %ftpfiles%>>%ftpfile%
@echo bye>>%ftpfile%
@echo 上傳%files%.rar文件
ftp -s:%ftpfile% 192.168.0.1
del /f /q %files%

數(shù)據(jù)庫(kù)異地備份對(duì)一個(gè)網(wǎng)站來(lái)說(shuō)是非常必要的,這里談一下使用批處理文件對(duì)數(shù)據(jù)庫(kù)異地本份的過(guò)程,首先需要準(zhǔn)備兩個(gè)文件,一個(gè)是ftp.txt(存儲(chǔ)ftp命令),一個(gè)是movefile.bat(存儲(chǔ)dos命令).

==========ftp.txt
open 服務(wù)器的ip地址
ftp用戶(hù)名
ftp密碼
bin
get 數(shù)據(jù)庫(kù)名.mdb
bye
quit
上面是簡(jiǎn)單的例子,具體的要看你的數(shù)據(jù)庫(kù)存放的路徑、一次性獲得多個(gè)文件??梢约由蟘d,mget等f(wàn)tp命令
==========movefile.bat
@echo off
ftp -i -s:ftp.txt
rem date format is "YYYY-MM-DD"
set dt=%date:~0,10%
set td=%date:~0,10%

rem set /P dt="Input Date: "
rem set /P td="Input Date: "

set i=1

:forok
if %i%==1 goto i01
if %i%==2 goto i02
if %i%==3 goto i03
if %i%==4 goto i04
if %i%==5 goto i05
:i01
set i=2
goto nextok
:i02
set i=3
goto nextok
:i03
set i=4
goto nextok
:i04
set i=5
goto nextok
:i05
set i=6
goto nextok
:nextok

set dy=%dt:~0,4%
set dm=%dt:~5,2%
set dd=%dt:~8,2%

if %dm%%dd%==0101 goto L01
if %dm%%dd%==0201 goto L02
if %dm%%dd%==0301 goto L07
if %dm%%dd%==0401 goto L02
if %dm%%dd%==0501 goto L04
if %dm%%dd%==0601 goto L02
if %dm%%dd%==0701 goto L04
if %dm%%dd%==0801 goto L02
if %dm%%dd%==0901 goto L02
if %dm%%dd%==1001 goto L05
if %dm%%dd%==1101 goto L03
if %dm%%dd%==1201 goto L06

if %dd%==02 goto L10
if %dd%==03 goto L10
if %dd%==04 goto L10
if %dd%==05 goto L10
if %dd%==06 goto L10
if %dd%==07 goto L10
if %dd%==08 goto L10
if %dd%==09 goto L10
if %dd%==10 goto L11
set /A dd=dd-1
set dt=%dy%-%dm%-%dd%
goto END
:L10
set /A dd=%dd:~1,1%-1
set dt=%dy%-%dm%-0%dd%
goto END
:L11
set dt=%dy%-%dm%-09
goto END

:L02
set /A dm=%dm:~1,1%-1
set dt=%dy%-0%dm%-31
goto END
:L04
set /A dm=dm-1
set dt=%dy%-0%dm%-30
goto END

:L05
set dt=%dy%-09-30
goto END
:L03
set dt=%dy%-10-31
goto END
:L06
set dt=%dy%-11-30
goto END
:L01
set /A dy=dy-1
set dt=%dy%-12-31
goto END

:L07
set /A "dd=dy%%4"
if not %dd%==0 goto L08
set /A "dd=dy%%100"
if not %dd%==0 goto L09
set /A "dd=dy%%400"
if %dd%==0 goto L09
:L08
set dt=%dy%-02-28
goto END
:L09
set dt=%dy%-02-29
goto END

:END
if %i%==2 goto forok
if %i%==3 goto forok
if %i%==4 goto forok
if %i%==5 goto forok
if %i%==6 goto mdb

:mdb
echo copy %td%
echo del %dt%
copy 數(shù)據(jù)庫(kù)名.mdb "%td%".mdb
del "%dt%".mdb
上面是備份最近5天的數(shù)據(jù),每天一個(gè)。你可以修改上面的代碼到最近6、7。。。。n天

如:修改成6天
if %i%==5 goto i05 下增加
if %i%==6 goto i06
:i05
set i=6
goto nextok 下增加
:i06
set i=7
goto nextok 
if %i%==6 goto mdb 改為
if %i%==6 goto forok
if %i%==7 goto mdb

依次類(lèi)推。。。。到n天 :-)

以上兩個(gè)文件準(zhǔn)備好了,我們可以使用windows自帶的任務(wù)計(jì)劃來(lái)計(jì)劃程序每天自動(dòng)去備份數(shù)據(jù)了

具體步驟:控制面板--》任務(wù)計(jì)劃--》添加任務(wù)計(jì)劃。。。。選擇每天。。。選擇movefile.bat
就ok了。 

感謝各位的閱讀,以上就是“如何使用批處理文件異地備份數(shù)據(jù)庫(kù)”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)如何使用批處理文件異地備份數(shù)據(jù)庫(kù)這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI