一、配置环境
在服务器上安装oracle精简客户端,实现在备份服务器的定时整库备份。
服务器:备份服务器
操作系统:Linux Redhat6.3 x64
主要功能:在Linux备份服务器上完成数据库备份
二、配置目标
无需安装oracle服务器或客户端软件,达到能使用以下功能的目标,并在服务器上进行数据库备份:
- Ø oci、occi、jdbc的支持
- Ø tnsping
- Ø sqlplus
- Ø sqlldr
- Ø exp
- Ø imp
三、软件准备
instantclient-basic-linux-x86-64-10.2.0.3-20070103.zip
instantclient-jdbc-linux-x86-64-10.2.0.3-20070103.zip
instantclient-sqlplus-linux-x86-64-10.2.0.3-20070103.zip
instantclient-sdk-linux-x86-64-10.2.0.3-20070103.zip
exp.zip
四、配置步骤
1、安装包上传及安装
root用户登录,创建目录:
将instantclient客户端压缩包上传至/opt/oracle/下,依次解压程序包
1 2 3 4 5 6 7 8 9
| # 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程序解压到当前路径下
1 2 3 4 5 6 7
| # cd instantclient_10_2/
# unzip exp.zip
# chmod 755 imp
# chmod 755 exp
|
此时应新增出两个可执行文件和一个文件夹
2、配置环境变量
创建文件/opt/oracle/instantclient_10_2/tnsnames.ora
1
| # vi /opt/oracle/instantclient_10_2/tnsnames.ora
|
在文件中填入以下内容,粗体部分根据实际情况修改
格式如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| 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文件,并在文件末尾添加以下环境变量
添加如下配置,粗体部分根据实际情况修改:
1 2 3 4 5 6 7
| 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
|
输入命令使环境变量立即生效
查看环境变量是否成功,出现下图所示路径即为成功,否则检查环境变量设置
测试sqlplus和exp命令:
出现如图所示时即表明配置成功,可正常使用;注意此时若出现报错,回头检查环境变量是否设置正确!
3、配置备份脚本
创建备份用的文件夹
创建备份脚本并添加以下内容:
添加内容,注意修改红色部分数据库连接地址和账号:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| #!/bin/bash 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
|
保存退出。
修改权限
1
| # chmod 755 /opt/bak/bak.sh
|
手动执行脚本,确认脚本执行无误
1 2 3
| # cd /opt/bak/
# ./bak.sh
|
4、设置定时调度任务
输入命令
编辑文本,加入以下代码,每天凌晨四点进行数据备份:
1
| 0 4 * * * /opt/bak/bak.sh
|
保存退出。