本文以CentOS 7.6系统和Oracle 11g为例,教大家如何在Linux下设置Oracle数据库每天的自动备份。
首先,找到数据库的环境变量
如果您是根帐户,则必须登录数据库所在的帐户。
苏谕
cat ~/。bash_profile
教你如何在Linux下设置Oracle数据库每天自动备份,如何在Linux下设置Oracle数据库每天自动备份。
导出路径
导出ORACLE_BASE=/home/nnc_db/app
导出ORACLE _ HOME=$ ORACLE _ BASE/product/11 . 2 . 0/db HOME _ 1
导出路径=$PATH:$ORACLE_HOME/ggdjw
导出ORACLE_SID=orcl
已经找到环境变量!
2.编辑备份的脚本文件
vi bak.sh
首先,将环境变量复制粘贴到bak.sh文件中,
然后定义一个可变日期(它的功能是命名每天备份的文件以便于识别),并使用expdp命令导出数据库。代码如下:
日期=$(日期%Y%m%d)
Expdp数据库帐号/数据库密码@数据库实例名dump file=$ { date } _ db _ auto _ backup . DMS schemas=数据库帐户名compression=all
退出保存。
3.使用Linux的crontab命令来设置计划任务
crontab -e
crontab -e的功能是使用文本编辑器设置一个预定的任务(crontab的具体用法在此不再赘述);
输入后在文本编辑器中输入。
0 0 * * * /home/nnc_db/bak.sh
上述代码表示/home/nnc_db下的bak.sh文件每天0: 00执行,即第二步创建的文件需要根据自己的备份时间和文件目录进行调整;
然后重新启动crond服务。
服务crond重新启动
四.测试任务是否成功运行
根据我在网上搜集的信息,有朋友说crontab -e设置成功三分钟后才会生效!也就是说,如果把任务设置在上午10: 00,想测试它是否成功,就把下一个预定任务设置在上午10: 02,可能会有问题!但是在这里我用
* * * * /home/nnc_db/bak.sh
设置为每分钟运行一次,没有发现问题。另一个新手坑是如果直接运行脚本文件,会在命令行输出详细的过程,但是设置调度任务运行不会响应!因此,如果您想查看脚本是否自动运行,您需要查看/var/spool/mail/下的日志文件。