oracle資料庫如何備份
Oracle資料庫RMAN的自動備份腳本簡介
各位同學知道Oracle資料庫RMAN如何自動備份腳本嘛?下面我為大家整理了關於Oracle資料庫RMAN的自動備份腳本文章,希望能為你提供幫助:
1、資料庫設置為歸檔方式
2、資料庫的備份腳本
db_full_backup.sh :資料庫全備腳本
db_l0_backup.sh :資料庫0級備份腳本
db_l1_backup.sh :資料庫1級備份腳本
ftp_del.sh :數據FTP清理腳本
rman_bak.sh :數據備份主程序
3、備份原理
每周1、3、6進行0級備份
每周日、2、4、5進行1級備份
備份文件上傳到FTP伺服器
FTP伺服器每周清理一次,但是清理後將周六和周日的備份進行保留(6.bak和0.bak)
所有工作防暑crontab中自動執行備份
4、備份目錄含義
arc :資料庫歸檔目錄
rmanbak :資料庫備份文件的保存目錄
rmanscripts :資料庫腳本存放路徑
5、FTP目錄
ftp上必須手動建立目錄
L0:
---1
---3
---6
---6.bak
L1:
---2
---4
---5
---0
---0.bak
rman_bak.sh腳本主程序
#!/bin/bash
#--------------------------------------------
# Oracle auto backup using rman
#
# author:songrh
# week:1,3,6 Level 0 backup
# 2,4,5,0 Level 1 backup
# Copyright by ChenLong Tec
#--------------------------------------------
#
#
export ORACLE_BASE=/u02/oracle
export ORACLE_HOME=/u02/oracle/proct/9.2.4
export ORACLE_SID=PROD
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export NLS_LANG=american_america.ZHS16GBK
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NL33=$ORACLE_HOME/ocommon/nls/admin/data
export PATH=/bin:/usr/bin:/usr/sbin:$ORACLE_HOME/bin:$PATH
export PATH=$PATH:/opt/local/bin
#
SH_PATH=/u02/rmanscripts
ARC_PATH=/u02/arch
RMAN_BAK_PATH=/u02/rmanbak
#
#FULL_PATH=$RMAN_BAK_PATH/full
L0_PATH=$RMAN_BAK_PATH/L0
L1_PATH=$RMAN_BAK_PATH/L1
#
#DAY_TAG=`date "%Y-%m-%d"`
LOG_TAG=`date "%Y-%m-%d"`
#FIRST_DAY=`date %e`
WEEK=`date %w`
#WEEK=1
#
# FTP configure
IP="122.120.150.155"
FTPUSER="ftpbak"
FTPPASS="******"
FTPROOT0="L0"
FTPROOT1="L1"
#
DISK_USE=`df -k |sed -n '/u02/'p | awk '{print $5}' |sed 's/%//'`
####check path function
############
if [[ $DISK_USE -ge 90 ]]; then
rm -rf $L0_PATH/*
rm -rf $L1_PATH/*
fi
if [ "$WEEK" = "6" -o "$WEEK" = "3" -o "$WEEK" = "1" ]; then
if [ ! -d $L0_PATH ]; then
mkdir $L0_PATH
fi
if [ "$WEEK" = "1" ]; then
rm -rf $L0_PATH/*
rm -rf $L1_PATH/*
mkdir $L0_PATH/$WEEK
$SH_PATH/db_l0_backup.sh $L0_PATH/$WEEK
cd $L0_PATH/$WEEK
$SH_PATH/ftp_del.sh $IP $FTPUSER $FTPPASS $FTPROOT0 $WEEK $WEEK_$LOG_TAG.log
else
if [ ! -d $L0_PATH/$WEEK ]; then
mkdir $L0_PATH/$WEEK
$SH_PATH/db_l0_backup.sh $L0_PATH/$WEEK
cd $L0_PATH/$WEEK
$SH_PATH/ftp.sh $IP $FTPUSER $FTPPASS $FTPROOT0 $WEEK $WEEK_$LOG_TAG.log
else
;
㈡ oracle 資料庫備份詳細步驟是什麼
oracle 資料庫備份的步驟是:
直接通過exp命令備份需要內容就可以了。可以參考下以下導出備份的方法:
1、將資料庫TEST完全導出,用戶名system 密碼manager 導出到D:chu.dmp中
exp system/manager@TEST file=d:chu.dmp full=y
2、將資料庫中system用戶與sys用戶的表導出
exp system/manager@TEST file=d:chu.dmp owner=(system,sys)
3、將資料庫中的表table1 、table2導出
exp system/manager@TEST file=d:chu.dmp tables=(table1,table2)
4、將資料庫中的表table1中的欄位filed1以"00"打頭的數據導出
exp system/manager@TEST file=d:chu.dmp tables=(table1) query=" where filed1 like '00%'"
㈢ oracle資料庫怎麼備份分為哪些
有很多:
1.冷備份,停掉資料庫,然後備份文件系統
2.熱備份,不同的版本使用的流程和命令不太一樣
3.rman備份,利用rman工具備份資料庫或者歸檔日誌
4.導出、導出,就是用exp和imp命令進行備份。
具體的可以看看這個鏈接,google或者網路一下,也可以
㈣ oracle資料庫怎樣使用備份
先確認oracle伺服器上oracle如下截圖中標紅的相關的服務是否已經正常啟動。
㈤ oracle資料庫備份exp命令
oracle資料庫備份exp命令:
第一個,表模式,備份某個用戶模式下指定的對象(表)。業務資料庫通常採用這種備份方式。若備份到本地文件,使用如下命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=exp_icdmain_csd_yyyymmdd.dmp
log=exp_icdmain_csd_yyyymmdd.log
tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
若直接備份到磁帶設備,使用如下命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=/dev/rmt0
log=exp_icdmain_csd_yyyymmdd.log
tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
註:在磁碟空間允許的情況下,應先備份到本地伺服器,然後再拷貝到磁帶。出於速度方面的考慮,盡量不要直接備份到磁帶設備。
第二個,用戶模式,備份某個用戶模式下的所有對象。業務資料庫通常採用這種備份方式。若備份到本地文件,使用如下命令:
exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=exp_icdmain_yyyymmdd.dmp
log=exp_icdmain_yyyymmdd.log
若直接備份到磁帶設備,使用如下命令:
exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=/dev/rmt0
log=exp_icdmain_yyyymmdd.log
註:如果磁碟有空間,建議備份到磁碟,然後再拷貝到磁帶。如果資料庫數據量較小,可採用這種辦法備份。
第三個,完全模式,備份完整的資料庫。業務資料庫不採用這種備份方式。備份命令為:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0 full=y
file=exp_fulldb_yyyymmdd.dmp(磁帶設備則為/dev/rmt0)
log=exp_fulldb_yyyymmdd.log
對於資料庫備份,建議採用增量備份,即只備份上一次備份以來更改的數據。增量備份命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0 full=y inctype=incremental
file=exp_fulldb_yyyymmdd.dmp(磁帶設備則為/dev/rmt0)
log=exp_fulldb_yyyymmdd.log
(5)oracle資料庫如何備份擴展閱讀:
關於增量備份必須滿足下列條件:
1、只對完整資料庫備份有效,且第一次需要full=y參數,以後需要inctype=incremental參數
2、用戶必須有EXP_FULL_DATABASE的系統角色。
3.、話務量較小時方可採用資料庫備份。
4、 如果磁碟有空間,建議備份到磁碟,然後再備份到磁碟。
版權聲明:本文為CSDN博主「kalogen」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
㈥ oracle中怎麼設置資料庫自動備份
Oracle自動備份的三種方法:
Oracle自動備份資料庫不外乎以下三種方式:
WINDOWS下的任務計劃(At命令)
UNIX下的Crontab
第三方工具如Viritas
在以上三種方式中Viritas屬於第三方工具,很多人可能都沒有接觸,主要說一下windows的任務計劃與unix的cron
1、生成腳本文件,如backup.rcv 假定文件內容如下:
$>cat backup.rcv connect target sys/password rcvcat rman/rman@localname; run{ allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; backup fileaperset 3 format 『/u01/oradata/backup/arch%u_%s_%p』 archivelog all delete input; release channel c1; release channel c2; release channel c3; }
2、生成執行文件在windows上生成backup_archive.bat,內容包括rman cmdfile = backup.rcv 在unix下生成 backup_archive.sh,內容包括oracle/ramn/rman cmdfile = backup.rcv
3、加入調度在windows中用任務計劃向導即可,或使用at命令。在unix中,在目標機器上編寫一個文件,用以啟動Oracle自動備份進程。假定文件名為ORACLE,文件將放在/var/spool/cron/crontabs目錄下
$>cat oracle
0 23 * * 0 backup_archive.sh
#表示星期天23點對資料庫備份
0 12,18 * * * backup_archive.sh
#表示每天12點,18點備份
Crontab文件的每一行由六個域(minutes,hours,day of month,month,day of week,command)組成,域之間用空格或Tab分隔開來。
㈦ oracle有哪些備份方式
三種方法:冷備份、熱備份和Export導出資料庫對象備份
㈧ 怎麼從oracle資料庫備份資料庫
1、首先先確認oracle伺服器上oracle中標紅的相關的服務是否已經正常啟動。