当前有这样一个需求:
问题背景:
有一台服务器A,安装了oracle服务器端,开启了一个ftp服务。
每天1点,都有另一台服务器B向A的ftp的文件夹内上传一个oracle数据库的dmp数据文件的gz压缩文件。
问题:
如何定时每次在服务器A上这个dmp的gz压缩文件传输完成后(比如定时每天2点),将gz文件先解压缩,后导入服务器A的数据库中。
注:因为dmp备份是完全备份,所以要优先考虑将服务器A上的原数据清空,然后再imp导入。目前该操作都是手动完成,请问有没有办法能每日自动完成。
问题背景:
有一台服务器A,安装了oracle服务器端,开启了一个ftp服务。
每天1点,都有另一台服务器B向A的ftp的文件夹内上传一个oracle数据库的dmp数据文件的gz压缩文件。
问题:
如何定时每次在服务器A上这个dmp的gz压缩文件传输完成后(比如定时每天2点),将gz文件先解压缩,后导入服务器A的数据库中。
注:因为dmp备份是完全备份,所以要优先考虑将服务器A上的原数据清空,然后再imp导入。目前该操作都是手动完成,请问有没有办法能每日自动完成。
把要做的工作写在一个shell文件里,通过crontab定时启动作业。
[oracle@test tmp]$ more /tmp/sql.sh
#!/bin/sh
sqlplus test/[email protected] << EOF
@/tmp/truncdata.sql
exit;
EOF
tar -zxvf t2.dmp.gz
imp test/test file=t2.dmp full=y ignore=y log=t2.log
sql脚本
[oracle@test tmp]$ more /tmp/trunc_data.sql
truncate table t2;定时任务
#crontab -e
* 1 * * * /tmp/sql.sh