linux平臺下的oracle自動備份案例(使用exp工具)

1、配置環境linux

在服務器上安裝oracle精簡客戶端,實如今備份服務器的數據冷備。sql

服務器:備份服務器數據庫

操做系統:Linux Redhat6.3 x64bash

主要功能:在Linux備份服務器上完成數據庫冷備服務器

2、配置目標oracle

無需安裝oracle服務器或客戶端軟件,達到能使用如下功能的目標,並在服務器上進行數據庫備份: 測試

  • Ø oci、occi、jdbc的支持
  • Ø tnsping
  • Ø sqlplus
  • Ø sqlldr
  • Ø exp
  • Ø imp 

3、軟件準備spa

instantclient-basic-linux-x86-64-10.2.0.3-20070103.zip操作系統

instantclient-jdbc-linux-x86-64-10.2.0.3-20070103.zipcrontab

instantclient-sqlplus-linux-x86-64-10.2.0.3-20070103.zip

instantclient-sdk-linux-x86-64-10.2.0.3-20070103.zip

exp.zip

4、配置步驟

1、安裝包上傳及安裝

root用戶登陸,建立目錄:

# mkdir -p /opt/oracle

將instantclient客戶端壓縮包上傳至/opt/oracle/下,依次解壓程序包

# cd /opt/oracle

# unzip instantclient-basic-linux-x86-64-10.2.0.3-20070103.zip

# unzip instantclient-jdbc-linux-x86-64-10.2.0.3-20070103.zip

# unzip instantclient-sdk-linux-x86-64-10.2.0.3-20070103.zip

# unzip instantclient-sqlplus-linux-x86-64-10.2.0.3-20070103.zip

解壓後,會在/opt/oracle下生成instantclient_11_2文件夾

上傳exp.zip到/opt/oracle/instantclient_10_2下,將exp、imp程序解壓到當前路徑下

# cd instantclient_10_2/

# unzip exp.zip

# chmod 755 imp

# chmod 755 exp

此時應新增出兩個可執行文件和一個文件夾

 

2、配置環境變量

建立文件/opt/oracle/instantclient_10_2/tnsnames.ora

# vi /opt/oracle/instantclient_10_2/tnsnames.ora

在文件中填入如下內容,粗體部分根據實際狀況修改

格式以下:

ORCL =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.22 )(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl )

    )

  )

 

EXTPROC_CONNECTION_DATA =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

    )

    (CONNECT_DATA =

      (SID = PLSExtProc)

      (PRESENTATION = RO)

    )

  )

打開/etc/profile文件,並在文件末尾添加如下環境變量

# vi /etc/profile

添加以下配置,粗體部分根據實際狀況修改: 

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORACLE_IC_HOME=/opt/oracle/instantclient_10_2
export ORACLE_HOME=$ORACLE_IC_HOME
export TNS_ADMIN=$ORACLE_IC_HOME
export PATH=$PATH:$HOME/bin:$ORACLE_IC_HOME
export LD_LIBRARY_PATH=$ORACLE_IC_HOME:/usr/lib
export ORACLE_SID=orcl

輸入命令使環境變量當即生效

# source /etc/profile

查看環境變量是否成功,出現下圖所示路徑即爲成功,不然檢查環境變量設置

# echo $ORACLE_HOME

 

測試sqlplus和exp命令:

# sqlplus

 

# exp

 

出現如圖所示時即代表配置成功,可正常使用;注意此時若出現報錯,回頭檢查環境變量是否設置正確!

3、配置備份腳本

建立備份用的文件夾

# mkdir -p  /opt/bak

建立備份腳本並添加如下內容:

# vi /opt/bak/bak.sh

添加內容,注意修改紅色部分數據庫鏈接地址和帳號:

#!/bin/bash

#bak.sh

source /etc/profile

PATH=$PATH:/bin

export PATH

BAKPATH=/opt/bak

 

LogFile=/opt/bak/baklog.log

 

echo "-------------------------------------------" >> $LogFile

echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile

echo "--------------------------" >> $LogFile

rq=`date '+%Y%m%d'`

exp user/pass@ORCL file=$BAKPATH/bak_$rq.dmp  log=$BAKPATH/bak_$rq.log  owner=user>/dev/null 2>&1

 

 

if [  -f $BAKPATH/bak_$rq.dmp ]

then

tar zcvf  $BAKPATH/bak_$rq.tar.gz  $BAKPATH/bak_$rq.dmp $BAKPATH/bak_$rq.log>> $LogFile 2>&1

rm -f $BAKPATH/bak_$rq.dmp>> $LogFile 2>&1

rm -f $BAKPATH/bak_$rq.log>> $LogFile 2>&1

 echo "backup success">> $LogFile

 echo "backup success"

else   echo "backup fail">> $LogFile

 echo "backup fail"

fi

 

OLDFILE=`date +%Y%m%d --date='7 day ago'`

if [  -f $BAKPATH/bak_$OLDFILE.tar.gz ]

then

echo "DELETE OLDFILE bak_$OLDFILE.tar.gz" >> $LogFile

rm -f $BAKPATH/bak_$OLDFILE.tar.gz>> $LogFile 2>&1

else   echo "no OLDFILE bak_$OLDFILE.tar.gz  ">> $LogFile

fi

echo "-------end $(date +"%y-%m-%d %H:%M:%S")-------" >> $LogFile

 

保存退出。

修改權限

# chmod 755 /opt/bak/bak.sh

手動執行腳本,確認腳本執行無誤

# cd /opt/bak/

# ./bak.sh

4、設置定時調度任務

輸入命令

# crontab -e

編輯文本,加入如下代碼,天天凌晨四點進行數據備份:

0 4 * * * /opt/bak/bak.sh

保存退出。

相關文章
相關標籤/搜索