在linux中資料庫實現每天自動備份資料及自動刪除5天前備份資料(常用)
.
[@more@]在linux中資料庫實現每天自動備份資料及自動刪除5天前備份資料(常用)1資料庫每天自動備份資料需求
第一:每天自動備份當天的資料庫的資料資訊 。
第二:把當天備份的資料和日誌一起打成.tar.gz包,這樣會減少硬碟的容量。
第三:用FTP把當天的資料.tar.gz包上傳到外面的伺服器做備份。
第四:每天的資料日益增加,硬碟的容量有限。所以只保留前五天的資料備份,刪除五天前的資料備份。
2自動備份實現步驟(從資料庫伺服器1備份到伺服器2)2.1在資料庫伺服器1編寫backup.sh檔案
用安裝Oracle資料庫的使用者(這裡的使用者為oracle)在資料庫伺服器的/home/databackup建立並編寫backup.sh檔案。該檔案先定義Oracle的環境變數,然後匯出當天的資料,並建立相關的日誌,然後把當天的資料和日誌打包成.tar.gz檔案。
檔案內容:(#為註釋)
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
#Oracle的字符集,Oracle資料庫的中文字符集為AMERICAN_AMERICA.ZHS16GBK
export ORACLE_HOME=/oracle/product/10.2.0/db_1
#Oracle資料庫的根目錄
/oracle/product/10.2.0/db_1/bin/exp risenet56/1@ora10g file=risenet56`date +%Y%m%d`.dmp log=risenet56`date +%Y%m%d`.log
owner=risenet56
#匯出當日的資料庫的資料並寫日誌。如當為2008-1-16,資料檔案為risenet5620080116.dmp,日誌為risenet5620080116.log
tar -cf risenet56`date +%Y%m%d`.tar risenet56`date +%Y%m%d`.dmp risenet56`date +%Y%m%d`.log
#把資料檔案和日誌打包
gzip risenet56`date +%Y%m%d`.tar
#把tar包壓縮成.tar.gz包
cat risenet56`date +%Y%m%d`.log | mail -s 'risenet56 Web Backup'
#把當天日誌傳送到郵箱
rm -f risenet56`date +%Y%m%d`.dmp
rm -f risenet56`date +%Y%m%d`.log
#刪除備份.dmp檔案和.log日誌
mv risenet56`date +%Y%m%d`.tar.gz /home/databackup
#把當前目錄的.tar.gz包移動到/home/databackup目錄下
rm -f /home/databackup/risenet56`date -d -5day +%Y%m%d`.tar.gz
#刪除/home/databackup/目錄下前第5天的資料
2.2在資料庫伺服器1建立FTP服務的autoftp.sh檔案
從資料庫伺服器1的當天備份資料用FTP上傳到另一伺服器2。在資料庫伺服器1的/home/databackup的目錄下建立並編寫autoftp.sh檔案。
檔案內容如下:
#!/bin/sh
ftp -i -v -n <
open ***.***.***.***
#啟動 FTP 連線伺服器2
***.***.***.***為伺服器2的ip地址
user risesoft ******
#risesoft為使用者名稱
******為密碼
Binary
#以二進位制傳輸
prompt off
lcd /home/databackup
#在資料庫伺服器1的目錄
cd /home/risesoft/67OracleBackup
#在伺服器2的目錄
mput risenet56`date +%Y%m%d`.tar.gz
#上傳資料
close
bye
!
--------------------------------------------------2.3在資料庫伺服器1上給兩個shell檔案賦予許可權用oracle使用者給backup.sh賦予相應的許可權,啟動一個終端,執行切換使用者命令:su – oracle ,然後輸入使用者的密碼。執行賦予許可權命令:chmod +x /home/databackup/backup.sh
然後再執行命令:chomd +x /home/databackup/autoftp.sh2.4在資料庫伺服器1中的crontab來定時執行shell用oracle使用者啟動一個終端,輸入命令進行編寫:crontab –e
內容如下:
30 19 * * * /home/databackup/backup.sh 2>&130
22 * * * /home/databackup/autoftp.sh 2>&1
--------------------------------------------------儲存,可以用命令:crontab –l
來檢視.
上述的作用:每天19:30執行backup.sh檔案,而backup.sh進行備份當天的資料,並刪除前第6天的資料,則保留前5天的資料。每天22:30執行autoftp.sh檔案,把當天的備份資料從資料庫伺服器1上傳到另一伺服器2。2.5在伺服器2上建立刪除前第6天的 shell檔案
每天都從資料庫伺服器1的備份資料上傳到另一伺服器2上,但伺服器2)上的容量也是有限的,只保留前5天的資料,每天自動刪除前第六天的備份資料。因為上傳的使用者名稱為risesoft,所以用risesoft使用者在伺服器2的/home/risesoft/67OracleBackup目錄下建立並編寫delete.sh檔案。
內容如下:
rm -f /home/risesoft/67OracleBackup/risenet56`date -d -5day +%Y%m%d`.tar.gz
#刪除前第5天的資料
--------------------------------------------------2.6在伺服器2上給delete.sh檔案賦予許可權備份的資料是用risesoft使用者上傳上來的,用risesoft使用者給delete.sh賦予相應的許可權,啟動一個終端,執行切換使用者命令:su – risesoft
,然後輸入使用者的密碼。執行賦予許可權命令:chmod +x /home/risesoft/67OracleBackup/delete.sh2.7在伺服器2中的crontab定時執行delete.sh檔案用oracle使用者啟動一個終端,輸入命令進行編寫:crontab –e
內容如下:
30
23 * * * /home/risesoft/67OracleBackup/delete.sh 2>&1
--------------------------------------------------儲存,可以用命令:crontab –l
來檢視.
上述作用:在每天的23:30自動執行delete.sh檔案,delete.sh檔案則自動刪除在/home/risesoft/67OracleBackup目錄下的前第5天的備份資料。
第一:每天自動備份當天的資料庫的資料資訊 。
第二:把當天備份的資料和日誌一起打成.tar.gz包,這樣會減少硬碟的容量。
第三:用FTP把當天的資料.tar.gz包上傳到外面的伺服器做備份。
第四:每天的資料日益增加,硬碟的容量有限。所以只保留前五天的資料備份,刪除五天前的資料備份。
2自動備份實現步驟(從資料庫伺服器1備份到伺服器2)2.1在資料庫伺服器1編寫backup.sh檔案
用安裝Oracle資料庫的使用者(這裡的使用者為oracle)在資料庫伺服器的/home/databackup建立並編寫backup.sh檔案。該檔案先定義Oracle的環境變數,然後匯出當天的資料,並建立相關的日誌,然後把當天的資料和日誌打包成.tar.gz檔案。
檔案內容:(#為註釋)
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
#Oracle的字符集,Oracle資料庫的中文字符集為AMERICAN_AMERICA.ZHS16GBK
export ORACLE_HOME=/oracle/product/10.2.0/db_1
#Oracle資料庫的根目錄
/oracle/product/10.2.0/db_1/bin/exp risenet56/1@ora10g file=risenet56`date +%Y%m%d`.dmp log=risenet56`date +%Y%m%d`.log
owner=risenet56
#匯出當日的資料庫的資料並寫日誌。如當為2008-1-16,資料檔案為risenet5620080116.dmp,日誌為risenet5620080116.log
tar -cf risenet56`date +%Y%m%d`.tar risenet56`date +%Y%m%d`.dmp risenet56`date +%Y%m%d`.log
#把資料檔案和日誌打包
gzip risenet56`date +%Y%m%d`.tar
#把tar包壓縮成.tar.gz包
cat risenet56`date +%Y%m%d`.log | mail -s 'risenet56 Web Backup'
#把當天日誌傳送到郵箱
rm -f risenet56`date +%Y%m%d`.dmp
rm -f risenet56`date +%Y%m%d`.log
#刪除備份.dmp檔案和.log日誌
mv risenet56`date +%Y%m%d`.tar.gz /home/databackup
#把當前目錄的.tar.gz包移動到/home/databackup目錄下
rm -f /home/databackup/risenet56`date -d -5day +%Y%m%d`.tar.gz
#刪除/home/databackup/目錄下前第5天的資料
2.2在資料庫伺服器1建立FTP服務的autoftp.sh檔案
從資料庫伺服器1的當天備份資料用FTP上傳到另一伺服器2。在資料庫伺服器1的/home/databackup的目錄下建立並編寫autoftp.sh檔案。
檔案內容如下:
#!/bin/sh
ftp -i -v -n <
open ***.***.***.***
#啟動 FTP 連線伺服器2
***.***.***.***為伺服器2的ip地址
user risesoft ******
#risesoft為使用者名稱
******為密碼
Binary
#以二進位制傳輸
prompt off
lcd /home/databackup
#在資料庫伺服器1的目錄
cd /home/risesoft/67OracleBackup
#在伺服器2的目錄
mput risenet56`date +%Y%m%d`.tar.gz
#上傳資料
close
bye
!
--------------------------------------------------2.3在資料庫伺服器1上給兩個shell檔案賦予許可權用oracle使用者給backup.sh賦予相應的許可權,啟動一個終端,執行切換使用者命令:su – oracle ,然後輸入使用者的密碼。執行賦予許可權命令:chmod +x /home/databackup/backup.sh
然後再執行命令:chomd +x /home/databackup/autoftp.sh2.4在資料庫伺服器1中的crontab來定時執行shell用oracle使用者啟動一個終端,輸入命令進行編寫:crontab –e
內容如下:
30 19 * * * /home/databackup/backup.sh 2>&130
22 * * * /home/databackup/autoftp.sh 2>&1
--------------------------------------------------儲存,可以用命令:crontab –l
來檢視.
上述的作用:每天19:30執行backup.sh檔案,而backup.sh進行備份當天的資料,並刪除前第6天的資料,則保留前5天的資料。每天22:30執行autoftp.sh檔案,把當天的備份資料從資料庫伺服器1上傳到另一伺服器2。2.5在伺服器2上建立刪除前第6天的 shell檔案
每天都從資料庫伺服器1的備份資料上傳到另一伺服器2上,但伺服器2)上的容量也是有限的,只保留前5天的資料,每天自動刪除前第六天的備份資料。因為上傳的使用者名稱為risesoft,所以用risesoft使用者在伺服器2的/home/risesoft/67OracleBackup目錄下建立並編寫delete.sh檔案。
內容如下:
rm -f /home/risesoft/67OracleBackup/risenet56`date -d -5day +%Y%m%d`.tar.gz
#刪除前第5天的資料
--------------------------------------------------2.6在伺服器2上給delete.sh檔案賦予許可權備份的資料是用risesoft使用者上傳上來的,用risesoft使用者給delete.sh賦予相應的許可權,啟動一個終端,執行切換使用者命令:su – risesoft
,然後輸入使用者的密碼。執行賦予許可權命令:chmod +x /home/risesoft/67OracleBackup/delete.sh2.7在伺服器2中的crontab定時執行delete.sh檔案用oracle使用者啟動一個終端,輸入命令進行編寫:crontab –e
內容如下:
30
23 * * * /home/risesoft/67OracleBackup/delete.sh 2>&1
--------------------------------------------------儲存,可以用命令:crontab –l
來檢視.
上述作用:在每天的23:30自動執行delete.sh檔案,delete.sh檔案則自動刪除在/home/risesoft/67OracleBackup目錄下的前第5天的備份資料。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-997582/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux實現mysql資料庫每天自動備份定時備份LinuxMySql資料庫
- 每天自動備份Oracle資料庫Oracle資料庫
- 資料庫自動備份資料庫
- Mysql資料庫自動備份MySql資料庫
- 自動備份Oracle資料庫Oracle資料庫
- windows/linux自動備份mysql並刪除7天前的備份WindowsLinuxMySql
- Rman-ORACLE資料庫RMAN實現自動備份Oracle資料庫
- 在SQL Server 2005資料庫中實現自動備份SQLServer資料庫
- Oracle自動備份資料(轉)Oracle
- Homestead 新功能 —— 銷燬前自動備份資料庫資料庫
- Linux實現定時備份MySQL資料庫並刪除30天前的備份檔案LinuxMySql資料庫
- linux系統中實現mongodb3.0.5資料庫自動備份LinuxMongoDB資料庫
- Facebook如何實現PB級別資料庫自動化備份資料庫
- Linux環境下資料庫自動邏輯備份Linux資料庫
- MySQL自動備份指令碼30天自動刪除MySql指令碼
- DB2資料庫自動備份方法TRDB2資料庫
- windowns系統,oracle資料庫expdp自動備份Oracle資料庫
- oracle資料庫備份刪除操作Oracle資料庫
- 自動備份SQL資料庫到雲端儲存StorageSQL資料庫
- windowns系統下oracle資料庫exp自動備份Oracle資料庫
- aix oracle 10g實現資料庫的遠端自動備份AIOracle 10g資料庫
- 8種手動和自動備份MySQL資料庫的方法MySql資料庫
- 異地自動備份INSTALL資料夾
- Linux或UNIX系統下oracle資料庫expdp自動備份LinuxOracle資料庫
- Linux或UNIX系統下oracle資料庫exp自動備份LinuxOracle資料庫
- 自動定時備份 mysql 資料庫 的 shell 指令碼MySql資料庫指令碼
- windows下oracle資料庫的exp自動備份指令碼WindowsOracle資料庫指令碼
- SQL Server 2005 自動遠端資料庫備份SQLServer資料庫
- 讓資料庫更安全,Mysql自動備份指令碼(轉)資料庫MySql指令碼
- Linux自動備份MySQLLinuxMySql
- linux下自動備份oracle資料庫-rmanLinuxOracle資料庫
- UnixLinux 自動化管理 資料備份與同步Linux
- 自動expftp備份FTP
- 進階寶典一|SqlServer資料庫自動備份設定SQLServer資料庫
- SQL SERVER 2012資料庫自動備份的方法SQLServer資料庫
- Java程式呼叫expdp資料泵實現自動邏輯備份Oracle資料庫的方案設計JavaOracle資料庫
- golang實現mysql資料庫備份GolangMySql資料庫
- exp自動備份on linux and on windowsLinuxWindows