在Linux系统中使用Shell脚本文件自动备份Oracle数据库

在Linux系统中使用Shell脚本文件自动备份Oracle数据库

  1. 创建逻辑目录
 create directory data_dir as/home/oracle/; data_dir 可自定义
select * from dba_directories; 可查询用户创建目录。
  1. 给用户授予访问逻辑目录的权限
grant read,write on directory data_dir to sa;  sa为用户名
  1. 给用户授予导入和导出的权限
grant exp_full_database,imp_full_database to sa; sa 为用户名
  1. 退出Oracle
exit
  1. 进入Oracle用户
su oracle
  1. 创建shell脚本
    在/home/oracle/目录下创建shell脚本
cd /home/oracle/ 进入目录
touch beifen.sh  创建脚本文件,名字为test 
vi beifen.sh   开始编辑sh文件
  1. 编写shell脚本
    SH文件类型必须为UNIX
#!/bin/sh 
#:本脚本自动每天凌晨3点备份数据库,备份完成后,删除30天以前的数据
#获取环境变量(.bash_profile这个文件在/home/oracle/目录下,是个隐藏文件)
source ~/.bash_profile
#获取当前时间 
BACKUPTIME=$(date +%Y%m%d)
#文件类型
dmpwj=.dmp
logwj=.log
#备份的文件名 
DMPNAME=bk-$BACKUPTIME$dmpwj
#备份的日志名 
LOGNAME=bk-$BACKUPTIME$logwj
echo $BACKUPTIME
echo $DMPNAME
echo $LOGNAME
#导出命令
expdp 用户名/密码@实例名 directory=数据库逻辑目录名称 schemas=用户名 dumpfile=$DMPNAME  logfile=$LOGNAME 
echo ‘备份完成’
echo ‘移动中’
#移动log 文件
cd  /home/oracle/
mv  $LOGNAME  /home/oracle/rizhi/
#(这里使用sudo提权是因为oracle用户对/mnt/nas/dbbak/目录没有写入权限)
echo “oracle用户密码” | sudo -S mv $DMPNAME /mnt/nas/dbbak/  
echo “移动完成”
echo “删除中”
#删除30天以前的数据库文件 (这里使用sudo提权是因为oracle用户对/mnt/nas/dbbak/目录没有写入权限)
echo “oracle用户密码” | sudo -S find /mnt/nas/dbbak/ -mtime +30 -name “*.dmp” -exec rm -rf {} \;
#删除30天以前的日志文件
find /home/oracle/rizhi/ -mtime +30 -name “*.log” -exec rm -rf {} \;
  1. 给脚本赋权
chmod 777 test.sh
  1. 给.bash_profile文件赋权
sudo chmod 777 .bash_profile

10.创建定时任务

crontab  -e  //建立定时任务
0  3  *  *  *  /home/oracle/test.sh  //编写任务内容

注意事项:

/var/spool/mail/ 目录下的oracle文件可查看计划执行详情
命令: service crond status 确认定时任务是否开启?
命令: service crond start 开启服务
命令: service crond stop 关闭服务
命令: service crond restart 重启服务
命令: service crond reload 重新载入配置
crontab -e 编辑某个用户的cron服务
crontab -l 列出某个用户cron服务的详细内容
crontab -r 删除某个用户的cron服务(慎用)
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值