数据库备份脚本

时间:2019-05-28 20:03:56

标签: oracle sqlplus

我对Oracle来说还很陌生,我正试图制作一个脚本,使它每次从cronjob运行时都备份数据库。

我一直在网上进行很多讨论,但是即使我做了一些小小的尝试,我还是没有真正找到任何东西。 我需要做的是从一个脚本运行所有内容,从创建数据库目录备份位置到运行备份本身

sqlplus / as SYSDBA << EOF
CREATE DIRECTORY dmpdir AS '/nfs/ora_bck/';
exit
EOF

它应该给我一些积极的输出,但是我却遇到了一些数据库未挂载的错误,这是没有道理的,因为这是我们的生产数据库正常运行并且没有任何问题

2 个答案:

答案 0 :(得分:0)

尝试使用<<EOF(从<< EOF中删除空格),并使用具有授予权限(DMPDIR的UpperCase目录名grant read, write on directory DMPDIR to <yourSchema>,并确保路径{{1 }}确实存在。

答案 1 :(得分:0)

所以事实证明,我需要添加的所有内容是: 导出ORACLE_SID = SID (可以从ps -ef | grep pmon中找到) 然后是脚本的其余部分。

希望这会对遇到相同问题的人有所帮助。

以防万一有人需要脚本来完成

command.sh

export ORACLE_SID=SID
sqlplus / as SYSDBA <<EOF
CREATE DIRECTORY fulldp_dir AS '/mnt/nfs/backup_ora/';
exit
EOF

backup.sh

export ORACLE_SID=SID
expdp \"/ as sysdba\" directory=fulldp_dir full=y dumpfile=full_exp.dmp logfile=full_exp.log