本文以CentOS7.6系统与Oracle11g为例,教你怎样在Linux下设置每晚手动备份Oracle数据库。

一.先找到数据库的环境变量

若果是在root帐户下,须先登入到数据库所在帐户

su oracle
cat ~/.bash_profile

linux 备份文件命令_linux备份文件命令bak_linux常用命令备份

export PATH
export ORACLE_BASE=/home/nnc_db/app
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=orcl

环境变量就早已找到了!

二.编辑备份的脚本文件

vi bak.sh

先把环境变量复制粘贴到bak.sh文件linux防火墙设置,

之后定义一个变量date(它的作用是为每晚备份的文件命名易于辨识)linux 备份文件命令,使用expdp命令导入数据库linux vi 命令,代码如下:

date=$(date +%Y%m%d)
expdp 数据库账号/数据库密码@数据库实例名 dumpfile=${date}_db_auto_backup.dmp schemas=数据库账号名 compression=all

退出保存。

三.使用Linux的crontab命令设置定时任务

crontab -e

crontab-e的作用是使用文本编辑器设置定时任务(crontab具体用法在此不赘言);

输入后在文本编辑器输入

0 0 * * * /home/nnc_db/bak.sh

以上代码意为每晚的0点0分执行/home/nnc_db下的bak.sh文件,也就是第二步所创建的文件,需依照自身的备份时间以及文件目录调整;

之后重启crond服务即可

service crond restart

linux备份文件命令bak_linux常用命令备份_linux 备份文件命令

四.测试任务是否成功运行

按照我在网上搜集的资料来看,有同学说crontab-e设置成功后三分钟不会生效!也就是说如果你在早上10:00设置好任务,想要测试能够成功,把上次的定时任务设到10:02分linux 备份文件命令,有可能会出现问题!并且这儿我用

* * * * * /home/nnc_db/bak.sh

设置为每一分钟运行一次,发觉没有问题。还有一个菜鸟坑洞就是你直接运行脚本文件会在命令行输出详尽过程,而设置定时任务运行是没有反应的!所以想要看自己的脚本是否手动运行了须要到/var/spool/mail/下看日志文件,如图

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复