一、在xshell下root用户登录服务器
1.新建oracle数据库备份目录
mkdir -p /casnw/backup/oradata6910bak
2.设置目录权限为oinstall用户组的oracle用户
chown -R oracle:oinstall /casnw/backup/oradata6910bak -R
二、新建oracle数据库备份脚本
1.新建文件
vi /casnw/backup/oradata6910bak/oradata10bak.sh
2.在文件中输入以下代码
#!/bin/sh
export ORACLE_BASE=/casnw/app
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
#以上代码不同的数据库安装会有不同的配置,如果不知道环境变量,可通过 vi /home/oracle/.bash_profile查看(新建的oracle用户管理数据库,如果你是别的用户,将oracle换掉即可)
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #这一句建议尽量写上,否则在导出时可能报此错误(EXP-00091: Exporting questionable statistics. )。如果你不知道服务器数据库字符集,可通过 select * from nls_database_parameters;查看
date=$(date +%Y_%m_%d) #系统当前时间
days=7 #7天
orowner=sys 数据库用户
bakpass=admin123456 # 用户密码
bakdir=/casnw/backup/orcl6910oradata #数据库备份文件路径
bakdata=$date.dmp #备份文件名
baklog=$date.log #备份文件日志名
cd $bakdir #进入备份文件路径下,执行exp
exp \'$orowner/$bakpass@210.77.77.73:1521/orcl as sysdba\' file=$bakdir/$bakdata log=$bakdir/$baklog full=y
find $bakdir -type f -name "*.dmp" -mtime +$days -exec rm -rf {} \; #七天后删除备份文件
find $bakdir -type f -name "*.log" -mtime +$days -exec rm -rf {} \; #七天后删除备份文件日志
chmod +x /casnw/backup/orcl6910oradata/oradata10bak.sh #添加脚本执行权限
注:在写完运行脚本后,你可以进入备份文件路径下,输入./oradata10bak.sh 运行此文件,看是否报错。
三、编辑系统任务计划
1.vi /etc/crontab
2.将以下代码填入打开文件的最后一行
0 1 * * 6 oracle /casnw/backup/oradata6910bak/ordata10bak.sh #每周六的一点运行此文件
:wq! #保存退出
service crond restart 重启crond