Linux環境下資料庫自動邏輯備份
以我的測試環境為例,此方法主要是限於在本機執行,如果要在其他機器執行需要修改備份指令碼。
首先建立備份目錄:
[root@founder14 oracle]# mkdir backup
給備份目錄授權
[root@founder14 oracle]# chmod +777 backup
進入備份目錄
[root@founder14 oracle]# cd backup
[root@founder14 backup]#
建立備份指令碼
vi backup.sh
輸入以下文字
#tabase info此處為資料庫使用者名稱、密碼以及備份目錄的變數這些變數是可使用者進行修改的
DB_USER="wzzf"
DB_PASS="wzzf"
BACK_DIR="/home/oracle/backup"
# Others vars此處是資料庫備份時間變數以及目錄變數,這些變數基本不用修改,請複製過去
YEAR=`date +%Y`
MONTH=`date +%m`
DATE=`date +%Y%m%d_%H:%M:%S`
BACK_HOME=$BACK_DIR/$YEAR/$MONTH
#環境變數 相關的環境變數請複製過來,可能會和大家所使用的環境變數不同,但請都複製進來,執行指令碼的時候要用,環境變數每臺機器不同,請檢視oracle 使用者下面.bash_profile
export ORACLE_BASE=/opt/ora9
export ORACLE_HOME=/opt/ora9/product/9.2
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_SID=founder
export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib
# 備份指令碼 由於是本機備份,所以不用輸入tns名稱
mkdir $BACK_DIR/$YEAR
mkdir $BACK_DIR/$YEAR/$MONTH
$ORACLE_HOME/bin/exp $DB_USER/$DB_PASS file = $BACK_HOME/$DB_USER$DATE.dmp
然後儲存backup.sh
給指令碼授權:
[root@founder14 backup]# chmod +777 backup.sh
設定crontab計劃任務
[root@founder14 backup]# vi /etc/crontab
在檔案的最後加入下列文字:
15 15 * * * oracle /home/oracle/backup/backup.sh
此命令的意思是在每天的15點15分使用oracle使用者執行指令碼/home/oracle/backup/backup.sh
修改第一個域的引數會改變執行的分鐘,修改第二個引數會改變執行的小時,修改,修改第三個引數會修改執行的日期,修改第四個引數會修改執行的月份,修改第五個引數會修改執行的星期,下面是Crontab檔案格式簡介:
crontab檔案有六個域,每個域之間用空格或者Tab鍵分開,前五個域都是整數或者*,格式如下(括號裡面是取值範圍):
分鐘(0-59) 小時(0-23) 日(1-31) 月(1-12) 星期(0-6) 要執行的命令
其中星期取值0指星期日,其它取值遞推。前面五個域,每個域都可以用*表示所有合法的值,或者用一個列表列出合法的值,各值之間用“,”隔開,也可以用“-”表示一個範圍。
至此linux進行自動備份的指令碼設定完成,系統會在你設定的時間進行自動備份。附件(backup.sh)中是我自己做測試的備份指令碼。
附:backup.sh
#tabase info
#place at db host computer
DB_USER="wzzf"
DB_PASS="wzzf"
BACK_DIR="/home/oracle/backup"
# Others vars
YEAR=`date +%Y`
MONTH=`date +%m`
DATE=`date +%Y%m%d_%H:%M:%S`
BACK_HOME=$BACK_DIR/$YEAR/$MONTH
export ORACLE_BASE=/opt/ora9
export ORACLE_HOME=/opt/ora9/product/9.2
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_SID=founder
export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH
export CLASSPATH=$JAVA_HOME/lib
# TODO
mkdir $BACK_DIR/$YEAR
mkdir $BACK_DIR/$YEAR/$MONTH
$ORACLE_HOME/bin/exp $DB_USER/$DB_PASS file = $BACK_HOME/$DB_USER$DATE.dmp
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/79499/viewspace-437/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- AIX/Linux生產環境下crontab自動排程expdp邏輯備份例子AILinux
- 資料庫邏輯備份(轉)資料庫
- 邏輯備份全庫或者邏輯備份多個使用者的資料
- ORACLE資料庫的邏輯備份(轉)Oracle資料庫
- 認識資料庫物理備份和邏輯備份區別資料庫
- 資料庫自動備份資料庫
- Oracle資料庫的邏輯備份工具-expdp資料泵Oracle資料庫
- 資料庫(表)的邏輯備份與恢復資料庫
- Mysql資料庫自動備份MySql資料庫
- 自動備份Oracle資料庫Oracle資料庫
- Java程式呼叫expdp資料泵實現自動邏輯備份Oracle資料庫的方案設計JavaOracle資料庫
- 【RAC】rac環境下的資料庫備份與還原資料庫
- Linux或UNIX系統下oracle資料庫expdp自動備份LinuxOracle資料庫
- Linux或UNIX系統下oracle資料庫exp自動備份LinuxOracle資料庫
- oracle邏輯備份之--資料泵Oracle
- linux實現mysql資料庫每天自動備份定時備份LinuxMySql資料庫
- RMAN備份恢復——RAC環境資料庫的備份(zt)資料庫
- RMAN備份恢復--RAC環境資料庫的備份(十)資料庫
- RMAN備份恢復——RAC環境資料庫的備份(一)資料庫
- 每天自動備份Oracle資料庫Oracle資料庫
- windowns系統下oracle資料庫exp自動備份Oracle資料庫
- dataguard之邏輯備庫移動資料檔案
- Windows環境PgSql自動備份指令碼WindowsSQL指令碼
- AIX/Linux生產環境下crontab自動排程RMAN物理備份例子AILinux
- 使用crontab和expdp實現資料庫定期邏輯備份資料庫
- 成功恢復無備份RAC環境資料庫資料庫
- RAC環境的STANDBY資料庫備份報錯資料庫
- oracle邏輯備用資料庫(一)Oracle資料庫
- 在linux中資料庫實現每天自動備份資料及自動刪除5天前備份資料(常用)Linux資料庫
- windows下oracle資料庫的exp自動備份指令碼WindowsOracle資料庫指令碼
- 邏輯備份--mysqldumpMySql
- SQL Server 2000非域環境下資料庫異機備份SQLServer資料庫
- RAC環境利用備份恢復RAC資料庫(五)資料庫
- RAC環境利用備份恢復RAC資料庫(四)資料庫
- RAC環境利用備份恢復RAC資料庫(三)資料庫
- RAC環境利用備份恢復RAC資料庫(二)資料庫
- RAC環境利用備份恢復RAC資料庫(一)資料庫
- DB2資料庫的備份測試--備份環境變數配置DB2資料庫變數