Linux下expdp自动备份

创建sh脚本

[oracle@localhost backup]$ vi logicbackup.sh

添加脚本内容

复制代码
复制代码
#!/bin/sh
# ##################################################################
#             Powered by Ironfo
# ##################################################################
# Oracle Environment settings 
ORACLE_BASE=/usr/local/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1;  export ORACLE_HOME 
PATH=$ORACLE_HOME/bin:/usr/local/bin:/usr/ccs/bin:$PATH:/usr/sbin
export PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/product/jlib ; export CLASSPATH
backup_dir=$ORACLE_BASE/admin/orcl/dpdump
#可以创建数据泵目录directory,这里指定默认的目录
#SQL>CREATE DIRECTORY expnc_dd as '/u01/oradata/dump_backup_dir';
#SQL>grant read,write on directory dump_backup_dir to user;  
DMP_FILE=PH_$(date +%Y%m%d_%H%M%S).dmp
LOG_FILE=PH_$(date +%Y%m%d_%H%M%S).log
#
#  Let's start with an export of the database 
expdp user/pwd@orcl schemas=schema_name DUMPFILE=$DMP_FILE logfile=$LOG_FILE compression=all;
#expdp user/pwd@orcl schemas=schema_name DIRECTORY=expnc_dd DUMPFILE=$DMP_FILE logfile=$LOG_FILE compression=all parallel=3;
# 这里的2个说明,用户名和密码换成自己的,我这里是备份表空间。
# parallel 这个参数是控制并行度的,默认是1,但对于数据库比较大的时候,可以设置parallel,这样可以较少备份的
#时间,但是设置并行会耗CPU 资源,如果CPU 资源比较紧张的话,就不要设了。
#
# Just to be safe (with space), we'll compress the export file
# 压缩dmp 文件,较少对空间的占用
#compress *.dmp

#
# Let's delete the backups and logs that are more than 1 days old
# 删除2天前PH_开头的dmp文件
# 
cd /app/backup
find $backup_dir -mtime +2 -name "PH_*"  -exec rm -f {} \;
# That's all
复制代码
复制代码

:wq 保存并退出

设置权限

[oracle@localhost ~]$ chmod 777 ./logicbackup.sh 

添加定时任务

[oracle@localhost ~]$ crontab -e
#每天20:00执行备份 错误信息将输出到 tmp/expdp.log 文件中
0 20 * * * /app/backup/logicbackup.sh > /app/backup/expdp.log 2>&1

 

重启crond(不重启也行)

#service crond restart

查看任务

[oracle@localhost ~]$ crontab -l
* */6 * * * /home/oracle/logicbackup.sh > /tmp/expdp.log 2>&1
[oracle@localhost ~]$ 
crontab -r 删除定时任务

crontab 前面5个*参数的意义:
0~59 表示分 
1~23 表示小时 
1~31 表示日 
1~12 表示月份 
0~6 表示星期(其中0表示星期日)

posted @   liuguosong  阅读(2238)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示