LINUX下ORACLE定时备份数据,使用的expdp。
程序员文章站
2024-03-13 17:01:27
...
1、root账户登陆,切换到ORACLE用户。
su - oracle
2、创建一个名为te.sh的脚本,并授权可执行。
mkdir /home/oracle/te/te.sh
chomod 775 /home/oracle/te/te.sh
3、vi 编辑te.sh,添加如下脚本。
if [ -f ~/.bash_profile ];
then
. ~/.bash_profile
fi
export ORACLE_HOME=/data1/oracle/app/oracle/product/11.2.0/db_1
export ORACLE_SID=实例名
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export DATA_DIR=已经授权导出用户expdp的路径
export oldFileName=`date -d "1 hours ago" +%Y%m%d%H`
export nowFileName=`date +%Y%m%d%H`
echo "start......"
expdp 用户名/密码 tables=数据表 dumpfile=$nowFileName.dmp DIRECTORY=DMPDIR log=$nowFileName.log
echo "Delete the file bakup before hours..."
rm -rf $DATA_DIR/$oldFileName.dmp
rm -rf $DATA_DIR/$oldFileName.log
echo "finished....."
4、脚本解释。
(1)为单个用户每次登陆设置一次环境变量,一定要有这一段,否者定时无效。
if [ -f ~/.bash_profile ];
then
. ~/.bash_profile
fi
(2)导入环境变量和者定义变量。
export ......
(3)、date 用来处理shell脚本的时间,具体可以查看对应的文档。
`date -d "1 hours ago" +%Y%m%d%H` --一个小时之前,格式为:年月日时
`date +%Y%m%d%H` --当前时间,格式为:年月日时
(4)、删除一小时前的文件。rm -rf $DATA_DIR/$oldFileName.dmp
rm -rf $DATA_DIR/$oldFileName.log
5、oracle的定时任务。现在是在oracle用户下使用,默认对oracle用户操作,如果用的root的需要指定对哪个用户操作,有一定风险。
crontab -e
crontab -r : 删除当前的定时
crontab -l : 列出当前的定时
crontab -e : 编辑文件
6、crontab -e 定时参数。
5 * * * * /home/oracle/te/te.sh --每个小时5分钟执行
格式:[分][时][月][年][周][脚本的路径]上一篇: jsf*殊字符的转义
下一篇: 【常用命令】shell
推荐阅读
-
LINUX下ORACLE定时备份数据,使用的expdp。
-
ORACLE数据库中EXPDP/IMPDP参数INCLUDE/EXCLUDE的使用说明
-
Oracle PDB下的expdp/impdp使用
-
linux定时备份docker安装的mysql数据库
-
MySQL定时备份之使用Linux下的crontab定时备份实例
-
MySQL定时备份之使用Linux下的crontab定时备份实例
-
Linux下实现MySQL数据备份和恢复的命令使用全攻略
-
深入解析Linux下MySQL数据库的备份与还原
-
讲解Linux系统下如何自动备份MySQL数据的基本教程
-
Linux下实现MySQL数据备份和恢复的命令使用全攻略