Linux 下使⽤expdp 定时备份Oracle 数据库使⽤Xshell连接服务器输⼊⽤户名密码创建备份数据库存储路径在根⽬录下创建oradata⽬录在oradata⽬录下创建databak⽤于存放shell脚本在oradata下创建dum⽤于存放备份的数据库以及备份⽇志
使⽤sqlplus连接数据库创建备份数据库⽬录,并授予所备份数据库⽤户读写权限
1. –使⽤sqlplus连接数据库
2. sqlplus / as sysdba;
3. –查询当前所有的⽬录
4. select * from dba_directories;
5. –创建⽬录dump_cmis并给cmis⽤户授权
6. create directory dump_cmis as ‘/oradata/dum’;
7. grant read,write on directory dump_cmis to cmis;
8. –使⽤quit或exit退出sqlplus
9. exit
编写备份数据库的shell脚本并授予执⾏其权限
1. #编写备份数据库脚本cmisexp.sh
2. vi cmisexp.sh
3. #!/bin/sh
4. #ORACLE系统环境变量设置
5. ORACLE_BASE=/ora11g/app/oracle
6. export ORACLE_BASE
7. ORACLE_HOME=/ora11g/app/oracle/product/11.2.0
8. export ORACLE_HOME
9. ORACLE_SID=cmis
10. export ORACLE_SID
oracle11g 创建数据库11. PATH=PATH
12. export PATH
13. NLS_LANG=american_america.zhs16gbk
14. export NLS_LANG
15. CLASSPATH=ORACLE_HOME/product/jlib
16. export CLASSPATH
17. #⽇志路径
18. CMISLOGPATH=/oradata/dum
19. #获取今天系统⽇期
20. now=date +%Y%m%d_%H%M%S
21. DATE=date +%Y%m%d
22. DAY=date +%d
ORACLE OME /bin :H /usr /sbin :ORACLE OME /jlib :H
23. ##备份此⽤户下的数据
24. bakuser=cmis
25. #执⾏备份的⽤户密码
26. bakpass=cmis
27. echo “开始备份数据库”$DATE
28. #执⾏备份
29. expdp bakpass schemas=KaTeX parse error: Expected group after '_' at position 22: …r
dumpfile=cmis_n ow.dmp
30. DIRECTORY=dump_cmis logfile=cmis_$now.log
31. echo “数据库备份完成”$DATE
32. #获取昨天⽇期
33. LASTYEAR=TZ=CST+16 date +%Y
34. LASTMONTH=TZ=CST+16 date +%m
35. LASTDATE=TZ=CST+16 date +%Y%m%d
36. #进⼊⽇志⽂件夹中
37. cd ${CMISLOGPATH}
38. #⽇志处理,将当前⽇志保存为昨天⽇志,并清空当前⽇志
39. cp cmis_KaTeX parse error: Expected group after '_' at position 13: now.log cmis_{LASTDATE}.log .
cmis_$now.log
41. #⽉初⽇志处理
42. if [ “$DAY” -eq “1” ]
43. then
44. tar -cvf cmis_{LASTMONTH}log.tar cmis ${LASTYEAR} ${LASTMONTH}*.log
45. tar -cvf cmis_{LASTMONTH}dmp.tar cmis {LASTMONTH}*.dmp
46. rm -f cmis_{LASTMONTH}*.log
.
logdeal.log
48. rm -f cmis_{LASTMONTH}*.dmp
.
dmpdeal.log
50. fi
51. echo ${LASTDATE}“的Oracle数据库cmis⽤户备份⽇志迁移成功!”>>logdeal.log
52. echo ${LASTDATE}“的Oracle数据库cmis⽤户备份⽂件迁移成功!”>>dmpdeal.log
53. #给shell脚本授予执⾏权限
54. chmod +x cmisexp.sh
55. #执⾏shell脚本
56. ./cmisexp.sh
Linux设置定时任务
bakuser /LAST Y EAR LAST Y EAR LAST Y EAR LAST Y EAR LAST Y EAR
Linux设置定时任务
1. #编辑当前⽤户的任务
2. crontab -e
3. #输⼊i进⼊插⼊模式,设定每天9:30备份⼀次数据库
4. 30 9 * * * /oradata/databak/cmisexp.sh
5. #进⼊命令模式,输⼊x,保存退出
6. :x

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。