//切换用户
su oracle
//查看oracle_home
echo $ORACLE_HOME
ORACLE_HOME =/opt/oracle/product/19c/dbhome_1
//查看Oracle_base
echo $ORACLE_BASE
//切换用户 su root
– 查看了oracle的环境变量后要切换回来 ,oracle用户的权限一般不够 (也可以通过赋予oracle用户权限解决)
//进入脚本存放目录
cd /u01
//完成脚本文件
vi bak.sh
#1、初始化变量,记录开始⽇志
#变量
sysname=mipdw #(这个地方随便命名 是存放备份文件的文件夹)
syspath=/u01/oracle_log/databak/$sysname #(也是随便命名 是存放备份文件的文件夹 ps 这些文件夹都要提前创建好)
v_date=$(date '+%Y%m%d%H%M%S')
days=10 #设置删除10天前的数据
#⽇志⽬录
logfile=${syspath}/backup.${v_date}.log
#打印开始时间
echo backup_time>>${logfile}
date '+%Y-%m-%d %H:%M:%S' >> ${logfile}
echo "backup jcd">>${logfile}
echo "start_time">>${logfile}
date '+%Y-%m-%d %H:%M:%S' >> ${logfile}
#2、进⼊oracle⽬录,设置oracle的参数
#进⼊oracle⽬录,设置oracle变量
cd /opt/oracle/product/19c/dbhome_1 #(这里是通过echo $ORACLE_HOME查看的路径)
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 #(这里是通过echo $ORACLE_HOME查看的路径)
export PATH=$PATH:/opt/oracle/product/19c/dbhome_1/bin #(这里是通过echo $ORACLE_HOME查看的路径+/bin)
export ORACLE_SID=mipdw #数据库连接实例名称
#3、导出数据
echo $syspath
v_date=$(date '+%Y%m%d%H%M%S')
filename=$syspath/jcd${v_date}.dmp
#导出命令
exp c##mip/1 file=${filename} INDEXES=n STATISTICS=none compress=n >> ${logfile} #(这里是数据库username/pwd)
echo "end_time">>${logfile}
date '+%Y-%m-%d %H:%M:%S'>>${logfile}
#4、压缩dump包
gzip ${filename}
find $bakdir -type f -name "*.dmp.gz" -mtime +$days -exec rm -rf {} \; #删除10天前备份文件
#5、使⽤scp,将压缩后的包传递到备份服务器,注意备份服务器上⽬录需要预先创建
#scp ${filename}.gz remot_name@remot_ip:/home/weblogic/databak/备份⽬录
echo “删除备份数据结束…”
echo “备份执行完毕…”
//保存 :wq
//添加定时任务
crontab -e
每天的23:59执行一次
59 23 * * * /u01/bak.sh
//重启定时任务
service crond restart
//查看定时任务执行情况
cd /var/spool/mail
less oracle