本發明專利技術公開了一種數據庫異構復制方法,包括如下步驟:a)獲取關系數據庫運行過程中產生的過程數據;b)對獲取的過程數據中的會話數據和客戶數據進行分離提取;c)將分離提取的會話數據保存到非關系數據庫中;所述非關系數據庫中保存的會話數據按照會話ID進行劃分,包括SQLID、調用的應用程序、持續時間、調用SQL數量、等待事件以及占用內存大小,并按照時間順序排序后進行存儲。本發明專利技術提供的數據庫異構復制方法,通過將會話數據和客戶數據分離,利用NoSQL格式存儲關系數據庫運行過程中產生的會話數據,從而能夠長期保存監控數據,減少對系統表空間的占用,以便進行后續的統計分析、故障追溯和性能優化。
【技術實現步驟摘要】
【專利摘要】本專利技術公開了,包括如下步驟:a)獲取關系數據庫運行過程中產生的過程數據;b)對獲取的過程數據中的會話數據和客戶數據進行分離提取;c)將分離提取的會話數據保存到非關系數據庫中;所述非關系數據庫中保存的會話數據按照會話ID進行劃分,包括SQLID、調用的應用程序、持續時間、調用SQL數量、等待事件以及占用內存大小,并按照時間順序排序后進行存儲。本專利技術提供的數據庫異構復制方法,通過將會話數據和客戶數據分離,利用NoSQL格式存儲關系數據庫運行過程中產生的會話數據,從而能夠長期保存監控數據,減少對系統表空間的占用,以便進行后續的統計分析、故障追溯和性能優化。【專利說明】
本專利技術涉及一種數據庫處理方法,尤其涉及。
技術介紹
傳統的關系數據庫具有不錯的性能,高穩定型,久經歷史考驗,而且使用簡單,功 能強大,同時也積累了大量的成功案例。 過程數據在關系型數據庫里面,都是一個表,一個表的去存儲,通過類似Sid去進 行關聯。例如v$session表和v$process表。在這些表里面,每一條記錄代表了一個過程 數據。如果要完整的展現一個會話的所有過程數據,就需要把這些表都關聯起來查詢。 例如關系型數據庫Oracle,它的會話信息是保存在v$session這種動態性能視圖 中,每一秒都會把v$session中的信息復制到v$active_session_history中,這一部分歷 史數據還是存放在內存當中,而每過10秒鐘會把v$session中的信息存入到的dba_hist 相關的基表里面。這一部分信息是保存在磁盤上。雖然Oracle自帶了這一部分功能,但是 因為這類型的數據是大數據,并不能保存多久,如果設置長期保存將會對數據庫系統產生 一定的負擔,影響數據庫的性能。 由上可見,雖然關系數據庫很強大,但是它并不能很好地長期保存監控數據,擴展 性差(需要復雜的技術來實現),大數據下IO壓力大,表結構更改困難。
技術實現思路
本專利技術所要解決的技術問題是提供,能夠長期保存監控 數據,減少對系統表空間的占用,以便進行后續的統計分析。 本專利技術為解決上述技術問題而采用的技術方案是提供, 包括如下步驟:a)獲取關系數據庫運行過程中產生的過程數據;b)對獲取的過程數據中的 會話數據和客戶數據進行分離提取;c)將分離提取的會話數據保存到非關系數據庫中。 上述的數據庫異構復制方法,其中,所述步驟a)通過會話ID查詢所有相關聯的 v$session表和v$process表,獲取該會話相關的過程數據。 上述的數據庫異構復制方法,其中,所述步驟b)對查詢獲取的過程數據通過 SPOOL的方式分離提取會話數據,并轉換成相關的內存dump文件。 上述的數據庫異構復制方法,其中,所述步驟c)采用FTP方式周期性傳送所述內 存dump文件到非關系數據庫中;所述非關系數據庫將所述內存dump文件轉換成NoSQL格 式,并將轉換好的文件按照Key/Value類型進行存儲。 上述的數據庫異構復制方法,其中,所述NoSQL格式為CSV格式或JSON格式,所述 非關系數據庫將所述內存dump文件中的多條記錄轉換成樹形結構的記錄,每顆樹對應一 組記錄,樹根為key,其他的葉子和葉枝為Value。 上述的數據庫異構復制方法,其中,所述步驟c)中非關系數據庫中保存的會話數 據按照會話ID進行劃分,每個會話ID對應的會話數據按照時間順序排序后進行存儲。 上述的數據庫異構復制方法,其中,所述步驟c)中非關系數據庫中保存的會話數 據包括SQLID、調用的應用程序、持續時間、調用SQL數量、等待事件以及占用內存大小。 本專利技術對比現有技術有如下的有益效果:本專利技術提供的數據庫異構復制方法,通 過將會話數據和客戶數據分離,利用NoSQL格式存儲關系數據庫運行過程中產生的會話數 據,從而能夠長期保存監控數據,減少對系統表空間的占用,以便進行后續的統計分析、故 障追溯和性能優化。 【專利附圖】【附圖說明】 圖1為本專利技術數據庫異構復制系統架構示意圖; 圖2為本專利技術數據庫異構復制流程示意圖。 【具體實施方式】 下面結合附圖和實施例對本專利技術作進一步的描述。 圖1為本專利技術數據庫異構復制系統架構示意圖。 現有的關系型數據庫,例如關系型數據庫Oracle,它的會話信息是保存在 v$session這種動態性能視圖中,每一秒都會把v$session中的信息復制到v$active_ session_history中,這一部分歷史數據還是存放在內存當中,而每過10秒鐘會把 v$session中的信息存入到的dba_hist相關的基表里面。這一部分信息是保存在磁盤上。 雖然Oracle自帶了這一部分功能,但是因為這類型的數據是大數據,并不能保存多久,如 果設置長期保存將會對數據庫系統產生一定的負擔,影響數據庫的性能。比如現有的關系 數據庫一般是將會話數據臨時保存在物理的磁盤上,臨時保存可以根據系統需要進行設 置,但是一般臨時保持時間都不會太長。如果保存的太久,會占用很多系統表空間。本專利技術 利用復制技術,能夠保障數據庫自身產生的會話數據和客戶數據進行分離保存,在生產環 境中,不保存過程數據,這樣可以減少對系統表空間的占用,如圖1所示。 圖2為本專利技術數據庫異構復制流程示意圖。 請繼續參見圖2,本專利技術提供的數據庫異構復制方法包括如下步驟: 步驟Sl :獲取關系數據庫運行過程中產生的過程數據;如通過會話ID查詢所有相 關聯的v$session表和v$process表,獲取該會話相關的過程數據。 步驟S2 :對獲取的過程數據中的會話數據和客戶數據進行分離提取;如對查詢獲 取的過程數據通過SPOOL的方式分離提取會話數據,并轉換成相關的內存dump文件。SPOOL 的作用可以用一句話來描述:在sqlplus中用來保存或打印查詢結果;利用sqlplus spool 將表導成CSV文件。 步驟S3 :將分離提取的會話數據保存到非關系數據庫中。為了不對生產環境(關 系性數據庫)造成過多的負載,引起性能上的負荷,本專利技術采用FTP方式周期性傳送所述內 存dump文件到非關系數據庫中;所述非關系數據庫將所述內存dump文件轉換成NoSQL格 式,比如CSV格式或JSON格式,并將轉換好的文件按照Key/Value (鍵一值對)類型進行 存儲。 本專利技術提供的數據庫異構復制方法,所述非關系數據庫中保存的會話數據優選按 照會話ID進行劃分,每個會話ID對應的會話數據按照時間順序排序后進行存儲。所述非 關系數據庫中保存的會話數據包括SQLID、調用的應用程序、持續時間、調用SQL數量、等待 事件以及占用內存大小,從而可以進行后續的統計分析。通過對NoSQL系統的存儲數據進 行開發,做相應深層次的數據多維分析,并將分析數據進行圖形化展示。本專利技術可以展示一 段時間內,某個進程的變化情況,或者做一組多維度的分析,比如持續時間、調用SQL數量、 等待事件等等的多維分析。通過對運行數據的采集,本專利技術可以分析出一些規律加以應用, 幫助更好的優化關系型數據庫。 本專利技術提供的數據庫異構復制方法,組合本文檔來自技高網...

【技術保護點】
一種數據庫異構復制方法,其特征在于,包括如下步驟:a)獲取關系數據庫運行過程中產生的過程數據;b)對獲取的過程數據中的會話數據和客戶數據進行分離提取;c)將分離提取的會話數據保存到非關系數據庫中。
【技術特征摘要】
【專利技術屬性】
技術研發人員:程永新,楊志洪,袁偉翔,
申請(專利權)人:上海新炬網絡信息技術有限公司,
類型:發明
國別省市:上海;31
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。