oracle自动备份

将oracle安装目录添加到环境变量中,也就是exp.exe所在的文件夹

@echo off
set filename=D:\oraclebackup\\%date:~0,4%%date:~5,2%%date:~8,2%日
exp username/password@ip/orcl file=%filename%.dmp owner=dataname log=%filename%.log
pause

新建txt文件,将以上代码复制,将后缀改为.bat批处理文件。
解释一下其中的内容。
filename:储存备份文件和日志的路径,将D:\oraclebackup换成你匹配的即可,后面那一串是获取时间组成的文件名。
username:数据库账号
password:数据库密码
ip:数据库IP
owner=指定的某个数据库(不加这个的话,备份当前连接下的所有数据库)
pause:执行完成后暂停(便于看是否有错误,如果要将这个批处理文件做成每日任务,确认这个批处理文件没问题之后可以删除。)
做成每日定时自动备份数据库,则需要使用计算机任务计划,将相应的bat文件添加上。
可能会出现的一个错误:

PLS-00201: 必须声明标识符 'SYS.DBMS_DEFER_IMPORT_INTERNAL'

这种是全部导出情况下可能出现的问题,给账号赋予权限即可
打开cmd,登陆sysdba,执行以下命令。

GRANT EXP_FULL_DATABASE TO username;
GRANT EXECUTE ON SYS.DBMS_DEFER_IMPORT_INTERNAL TO username;

如果不清楚sysdba密码,可以用以下方式登陆(无日志登陆)

sqlplus /nolog
conn / as sysdba

之后再执行上面的赋予权限命令即可。
不过一般来说,是无需备份全部数据库的。
另一个错误:

EXP-00091: Exporting questionable statistics.

根据其他大佬所说是因为:我们exp工具所在的环境变量是的NLS LANG中的NLS_CHARCATERSET不一致引起的
我之前之所以会出现这个问题,是因为批处理文件命令中,还有一句:

SET NLS_LANG=AMERICAN_AMERICA.AL32UTF8

我设置了NLS_LANG,导致了与系统不一致,出现了问题,取消掉就行了。不过有时候,可能需要重新设置编码,才能与系统一致。
另外,这个备份的批处理文件内容很简单,没有分开存放备份和日志,也没有自动删除功能。需要的话,可以自行修改加上。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值