1、配置环境linux
在服务器上安装oracle精简客户端,实如今备份服务器的数据冷备。sql
服务器:备份服务器数据库
操做系统:Linux Redhat6.3 x64bash
主要功能:在Linux备份服务器上完成数据库冷备服务器
2、配置目标oracle
无需安装oracle服务器或客户端软件,达到能使用如下功能的目标,并在服务器上进行数据库备份: 测试
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
保存退出。