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

保存退出。

相关文章
相关标签/搜索