加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle自动备份

发布时间:2020-12-12 14:24:26 所属栏目:百科 来源:网络整理
导读:最近得到需求,需要每天自动备份Oracle数据库,防止数据丢失。 现有windows服务器一台,文件服务器一台,需要每天凌晨2点自动备份压缩数据库到指定文件服务器目录。 实现方式有如下两种: 服务器自动备份压缩后上传至文件服务器 首先编写windows可执行脚本.b

最近得到需求,需要每天自动备份Oracle数据库,防止数据丢失。

现有windows服务器一台,文件服务器一台,需要每天凌晨2点自动备份压缩数据库到指定文件服务器目录。

实现方式有如下两种:

服务器自动备份压缩后上传至文件服务器

首先编写windows可执行脚本.bat文件,使用Oracle的Expdp命令导出数据库。expdp命令的详细解释请转到http://my.oschina.net/papio/blog/749473查看,在这里不做详解。

然后就是压缩导出的dmp文件,我们这里使用WinRAR软件的命令行执行压缩与解压缩等,而且就一个rar.exe就能支持图形界面的很多操作,特别方便远程管理。压缩命令为:%winrar%Rar.exea d:/final.rar d:/wk.doc WinRAR命令的详细解释请转到http://www.52php.cn/article/p-osewzmeo-boc.html查看,在这里不做详解。

最后就是上传到文件服务器了,由于在项目实施的时候文件服务并没有批下来,所有并没有使用此处技术。

以下是脚本源码:

set var=scmnkyy_%date:~0,4%%date:~5,2%%date:~8,2%_%time:~1,1%%time:~3,2%%time:~6,2%.dmp
Expdp scmnkyy/scmnkyy DUMPFILE=%var% SCHEMAS=scmnkyy
"C:Program Files (x86)WinRARRar.exe" a "d:scmnkyy_%date:~0,2%.rar" "D:apppapioadminorcldpdump%var%"
del "D:apppapioadminorcldpdump%var%"

在windows系统中目录最好使用“”包裹,因为会有很多命令不识别目录中的空格等特殊字符。

写好接本保存到auto.bat文件中。

接下想要实现脚本每天自动执行则需要添加windows的计划任务。

打开控制面板--》管理工具--》任务计划程序--》创建基本任务

按照提示点击下一步,最后完成。

在文件服务器端通过oracle client远程导出数据库

现在先定义两个变量:server1 = 数据库服务器,server2 = 文件服务器

当数据库创建在server1上,而在server2上安装了oracle client的时候,如果直接在servr2上先创建一个dump文件存放路径,再run command “CREATE or REPLACE directory mydumpdir as 'D:BackupDump_File';”命令运行后也会提示directory创建成功,可是在运行expdp命令的时候就会出错如下图,即使在提示directory创建成功后run命令“grant read,write on directory mydumpdir to system;”后再执行expdp同样出现截图中的错误

问题原因:网上很多帖子说是因为expdp认的directory是在服务端,expdp在客户端执行会把相应的dump文件导到服务端上,而实际上服务端根本就没有创建该路径,所以报错。 解决方法:1,在服务端上直接运行expdp命令,直接导出到服务端上 2,如果坚持要将dump文件导出到客户端上,需要在创建directory之后运行命令“grant read,write on directory mydumpdir to public;”

如此备份下来之后执行前面的压缩以及

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读