久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

怎么用Java程序調用expdp數據泵實現自動邏輯備份Oracle數據庫

157次閱讀
沒有評論

共計 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字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 镇巴县| 紫阳县| 泽普县| 博客| 西乌珠穆沁旗| 顺义区| 观塘区| 和龙市| 天气| 龙海市| 共和县| 永泰县| 车险| 哈尔滨市| 镇原县| 定襄县| 寿光市| 宁乡县| 达孜县| 广宗县| 巴林右旗| 牟定县| 八宿县| 防城港市| 盐边县| 志丹县| 崇信县| 灵台县| 万山特区| 会宁县| 大新县| 永嘉县| 赞皇县| 阿瓦提县| 会泽县| 松江区| 东乡族自治县| 通道| 巴林右旗| 柳州市| 军事|