怎么用Java程序调用expdp数据泵实现自动逻辑备份Oracle数据库

65次阅读
没有评论

共计 1896 个字符,预计需要花费 5 分钟才能阅读完成。

本篇内容主要讲解“怎么用 Java 程序调用 expdp 数据泵实现自动逻辑备份 Oracle 数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“怎么用 Java 程序调用 expdp 数据泵实现自动逻辑备份 Oracle 数据库”吧!

下面描述完整的设计过程:1. 准备工作

(1)创建 directory 和操作系统目录,配置 read,write 权限。

(2)检查计划备份数据的 Oracle 实例当前状态为 read,write。

(3)手工备份 hr 用户,测试 expdp 命令能否正常运行。我曾遇到 directory 为 NFS 文件系统,备份时提示错误。

(4)评估备份所需的空间,使用数据泵 expdp 的 estimate=statistics|blocks 和 estimate_only= y 参数对数据库备份大小进行评估。

(5)检查逻辑备份的存储空间是否充足,可以执行命令 df - k 或 df - h 查看。

2. 程序设计

设计 Java 程序,部署在 Oracle 数据库服务器的某一个节点下(可以部署在 Tomcat,Weblogic 等中间件里,也可以选择独立部署,开发人员按照规范自行开发),与服务器的 Oracle 用户进行命令交互,发起 expdp 的备份命令。

这里解释一下计时器 + 日志检索 + 状态查询 + 消息中心的设计模式,每个功能的作用:

(1)状态查询

状态查询的功能是确定 expdp 是否还在运行,通过定时任务每几秒查询数据库 sql,查看服务器进程等方式确认,这里时间间隔可以选择 3 秒,5 秒等,短时间的偏差不会影响功能体验。

① 程序调用 sql,查询 expdp 发起时的 job 是否还在运行

② ps -ef | grep expdp |grep job_name 查看 Linux 系统进程是否存在

(2)日志检索设计

在 expdp 命令执行完成之后,检查导出日志中是否存在 ORA 字符,如果存在,意味着有报错信息。

(注:如果想设计的更加智能,可以抓取 ORA 信息,调用 oerr 获取报错信息,通过消息中心发送给技术人员)

(3)计时器

计时器从程序向系统调用 expdp 命令时开始启用,状态查询确认执行完毕后停止。如果出现超过 1 小时 expdp 进程还未停止,程序通过消息中心向技术人员发送告警信息。

(注:超时时间的阈值可以根据实际情况自行调整,30 分钟,2 小时都行)

(4)消息中心

消息中心是一套独立的消息发送程序,可选择方案较多,这里列举常用四种方案:

①较为简单的就是向操作界面返回消息,显示在页面上;

②时效性比较低的可以选择调用邮件服务器,向相关人员发送成功 / 失败 / 告警邮件;

③时效性较高的是调用微信 /QQ 等互联网通讯软件的 API 接口向用户推送消息;

④时效性最高的是通过移动、联通、电信等运营商向用户手机发送短信。

到这里,心中应该有一个程序方案的雏形了。

不过有一点需要注意一下,expdp 的命令最好设计成为可配置的,千万不要硬编码到程序中,不然程序的可拓展性、可维护性就大大降低。

3. 测试案例 / 场景的准备

为了能够充分测试各种应用场景以及测试的便利性,这里做一些约定,同时设计一些测试场景 / 案例。

约定内容如下:

(1)新挂载一个 50M 的盘,directory 备份路径指向该盘

(2)使用最简单的界面操作返回消息。

测试场景 / 案例

(1)成功:备份 scott 用户,expdp 很快完成备份,操作界面在 1 分钟之内显示备份成功消息。

(2)失败:全备数据库,备份会因为磁盘空间满报错,操作界面稍后会收到备份失败消息。

(3)失败:删除备份 directory 目录后,备份 scott 用户,操作界面会收到备份失败消息。

(4)失败:在 expdp 备份数据库的时候,kill 备份进程,操作界面会收到备份失败消息。

(5)失败:在 expdp 备份数据库的时候,暂停 job,操作界面会收到备份失败消息。

(6)告警:将计时器超时时间改为 1 分钟,全备数据库,操作界面在 1 分钟之后收到告警消息。

如果读者有兴趣,可以自行开发微信的 API 推送消息,或者通过邮件服务器推送邮件消息。

如果要发送短信的话,需要和运营商签订协议,有条件的朋友,可以在公司的测试环境测试。

4. 程序调优 / 修复 BUG

经过多轮测试之后,可能会发现程序某些地方设计不合理,可能会发现程序未按照预期运行,也可能会发现程序有 BUG 报错。

那么下一步,那就是程序调优和修复 BUG 的工作了,直到自己用着方便,业务用着舒服,开发用着满意。加油吧~

到此,相信大家对“怎么用 Java 程序调用 expdp 数据泵实现自动逻辑备份 Oracle 数据库”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-28发表,共计1896字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)