欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于動態(tài)視圖監(jiān)控的OracleRAC數(shù)據(jù)庫SQL流捕獲方法及系統(tǒng)的制作方法

文檔序號:10512066閱讀:237來源:國知局
基于動態(tài)視圖監(jiān)控的OracleRAC數(shù)據(jù)庫SQL流捕獲方法及系統(tǒng)的制作方法【專利摘要】本發(fā)明涉及數(shù)據(jù)庫性能測試領域,具體地說是一種可以用于數(shù)據(jù)庫性能測試基準中性能測試工具的查詢生成器設計,用于生產(chǎn)庫審計系統(tǒng),用于生產(chǎn)庫的性能監(jiān)控,應用前景良好的基于動態(tài)視圖監(jiān)控的OracleRAC數(shù)據(jù)庫SQL流捕獲方法,其特征在于設有SQL解析服務器、RACOracle生產(chǎn)庫單元,其中SQL解析服務器設有SELECT操作捕獲模塊、DML/DCL操作捕獲模塊、斷點續(xù)傳模塊以及RAC心跳檢測模塊,其中SELECT操作捕獲模塊包括SELECT捕獲模塊、SELECTSQL生成模塊;DML/DCL操作捕獲模塊包括DML/DCLSQL解封模塊、DML/DCLSQL捕獲模塊,本發(fā)明與現(xiàn)有技術相比,具有極強的穩(wěn)定性和可靠性,具有不間斷嚴密監(jiān)視數(shù)據(jù)庫的一舉一動同時又不影響正常的業(yè)務執(zhí)行效率等特點?!緦@f明】基于動態(tài)視圖監(jiān)控的OracleRAC數(shù)據(jù)庫SQL流捕獲方法及系統(tǒng)
技術領域
[0001]本發(fā)明涉及數(shù)據(jù)庫性能測試領域,具體地說是一種可以用于數(shù)據(jù)庫性能測試基準中性能測試工具的查詢生成器設計,用于生產(chǎn)庫審計系統(tǒng),用于生產(chǎn)庫的性能監(jiān)控,應用前景良好的基于動態(tài)視圖監(jiān)控的OracleRAC數(shù)據(jù)庫SQL流捕獲方法。【
背景技術
】[0002]Oracle數(shù)據(jù)庫中的日志不對查詢操作--即select語句作任何記錄。利用日志解析只能實現(xiàn)對Oracle數(shù)據(jù)庫中的DML(DataManipulationLanguage)和DCL(DataControlLanguage)操作的捕獲。Oracle細粒度審計FGA(FinedGrainedAuditing)支持對select查詢操作的捕獲,但是細粒度審計的代價極其昂貴,無法用于對大規(guī)模的生產(chǎn)系統(tǒng)進行全庫監(jiān)控。[0003]由于Oracle生產(chǎn)系統(tǒng)具有7*24小時不間斷運行的特點,這要求SQL流捕獲系統(tǒng)具有極強的穩(wěn)定性和可靠性,必須具有不間斷嚴密監(jiān)視數(shù)據(jù)庫的一舉一動同時又不影響正常的業(yè)務執(zhí)行效率等特點。【
發(fā)明內(nèi)容】[0004]本發(fā)明針對現(xiàn)有技術中存在的缺點和不足,提出了一種可以用于數(shù)據(jù)庫性能測試基準中性能測試工具的查詢生成器設計,用于生產(chǎn)庫審計系統(tǒng),用于生產(chǎn)庫的性能監(jiān)控,應用前景良好的基于動態(tài)視圖監(jiān)控的OracleRAC數(shù)據(jù)庫SQL流捕獲方法及系統(tǒng)。[0005]本發(fā)明可以通過以下措施達到:一種基于動態(tài)視圖監(jiān)控的OracleRAC數(shù)據(jù)庫SQL流捕獲方法,其特征在于包括以下步驟:步驟1:select查詢語句的捕獲,select語句捕獲模塊通過ASH視圖的監(jiān)視,并結(jié)合采集來的用戶會話(session)信息,結(jié)合歷史執(zhí)行的SQL語句視圖,設計專門的se1ect查詢語句解析算法,實現(xiàn)selectsql流及其相關信息的全方位的捕獲,例如:select語句、會話(session)信息、登錄時間信息,登錄IP地址信息;步驟2:DDL/DCL/DML語句捕獲,通過對重做日志(redo)的監(jiān)控來實現(xiàn),使用logminer方法定時解析Oracle重做日志,捕獲DDL/DCL/DMLSQL語句;步驟3:步驟1及步驟2所捕獲的數(shù)據(jù)通過支持斷網(wǎng)重傳的網(wǎng)絡通訊模塊進行傳輸,并進行數(shù)據(jù)的加密傳輸。[0006]本發(fā)明所述步驟1中select查詢語句的捕獲具體包括以下內(nèi)容:步驟1-1:OracleRAC生產(chǎn)庫端動態(tài)視圖監(jiān)控與采集;Oracle數(shù)據(jù)庫中的ASH(ActiveSessionHistory)對Oracle數(shù)據(jù)庫執(zhí)行的所有操作進行采樣,包括:〇01^1^、0(^,以及8616(^查詢操作;通過對0瓜(^數(shù)據(jù)庫中43!1視圖的監(jiān)控,輔之以其它相關視圖對ASH所采集SQL語句進行解析,實現(xiàn)select操作的捕獲,只要能夠被ASH采集到的所有select操作,都可以捕獲到,Oracle數(shù)據(jù)庫ASH采集周期限定為1秒鐘一次,因此所捕獲的Se1ect的時間粒度為0.5秒;除了對OracleASH中所保存的歷史SQL執(zhí)行記錄進行采集以外,用戶登錄會話信息(session)也至關重要,RAC服務器采集的ASH信息,附之以會話信息,并結(jié)合SQL語句視圖,可以用于還原select執(zhí)行的歷史記錄,從而實現(xiàn)select的捕獲。[0007]步驟1-2:在解析服務器一端,專門設計了select捕獲算法,利用RAC生產(chǎn)庫采集來的信息:ASH視圖信息,用戶會話信息(session),以及sql動態(tài)視圖,實現(xiàn)select語句全方位信息的捕獲,包括:select語句、select語句相關聯(lián)的會話(session)信息、select語句關聯(lián)會話的登錄時間,以及會話登錄IP等信息;SELECT捕獲模塊通過對ASH信息的擴充來提取select語句執(zhí)行的歷史記錄,ASH視圖表結(jié)構(gòu)如表1所示:表1ASH動態(tài)視圖結(jié)構(gòu)擴充后的ASH信息如表2所示。通過擴充,構(gòu)建sql語句執(zhí)行歷史的鏈表數(shù)據(jù)結(jié)構(gòu),實現(xiàn)了對select語句執(zhí)行歷史的捕獲;表2ASH信息增加字段步驟1-3:解析服務器端SELECTSQL流生成。[0008]本發(fā)明步驟2中DML/DDL/DCL語句捕獲包括以下步驟:步驟2-1:重做日志解析:DDL/DCL/DML語句的捕獲通過對重做日志(redo)的監(jiān)控來實現(xiàn),使用logminer方法定時解析Oracle重做日志,捕獲DDL/DML/DCLSQL語句,其基本步驟如下:首先添加并加載數(shù)據(jù)字典,之后啟動解析重做日志并生成解析視圖,一次解析完成后,更新解析時戳,結(jié)束解析進程的操作,實際上解析周期,可以根據(jù)生產(chǎn)庫的實際數(shù)據(jù)量來配置,在下一個解析周期開始時,解析模塊從新的時戳點開始解析。解析出來的重做日志動態(tài)視圖v$l〇gcontents視圖結(jié)構(gòu)如表3所示。[0009]表3重做日志解析結(jié)果步驟2-2:DDL/DML/DCL數(shù)據(jù)文件生成:生產(chǎn)庫運行時一般處于歸檔模式,為避免歸檔日志的產(chǎn)生,需要將解析出來的DDL/DML/DCL原始記錄,生成文本文件發(fā)送給捕獲服務器,可以將解析出來的重做日志視圖內(nèi)容重定向成文本文件,這就避免了createtable生成歸檔日志的問題;步驟2-3:重做日志數(shù)據(jù)解封;步驟2-4:DDL/DML/DCL捕獲:在解析服務器一端負責解析接收到的重做日志文本文件,將各個字段還原到sql捕獲服務器中,實現(xiàn)DDL/DML/DCL的捕獲。SQL流捕獲系統(tǒng)分別獲得SELECT語句與DDL/DCL/DML語句進行合并,構(gòu)成完整的RAC是Oracle服務器執(zhí)行的SQL流的全圖。[0010]實際上,重做日志解析模塊可以根據(jù)生產(chǎn)庫的不同要求,靈活地安排在解析服務器一端或生產(chǎn)庫一端進行。安排在在解析服務器一端,可以進一步降低對于生產(chǎn)庫性能的影響;但這要求解析服務器與生產(chǎn)庫具有相同的Oracle版本和0S版本。[0011]本發(fā)明還提出了一種基于動態(tài)視圖監(jiān)控的OracleRAC數(shù)據(jù)庫SQL流捕獲系統(tǒng),其特征在于設有SQL解析服務器、RACOracle生產(chǎn)庫單元,其中SQL解析服務器設有SELECT操作捕獲模塊、DML/DCL操作捕獲模塊、斷點續(xù)傳模塊以及RAC心跳檢測模塊,其中SELECT操作捕獲模塊包括SELECT捕獲模塊、SELECTSQL生成模塊;DML/DCL操作捕獲模塊包括DML/DCLSQL解封模塊、DML/DCLSQL捕獲模塊。[0012]本發(fā)明所述RACOracle生產(chǎn)庫單元設有redo日志解析模塊、數(shù)據(jù)文件打包生成模塊、支持斷點續(xù)傳的數(shù)據(jù)傳輸模塊以及心跳檢測模塊。[0013]本發(fā)明與現(xiàn)有技術相比,具有極強的穩(wěn)定性和可靠性,具有不間斷嚴密監(jiān)視數(shù)據(jù)庫的一舉一動同時又不影響正常的業(yè)務執(zhí)行效率等特點。[0014]【附圖說明】:附圖1是本發(fā)明的系統(tǒng)框圖。[0015]附圖標記:SQL解析服務器1、RACOracle生產(chǎn)庫單元2、SELECT操作捕獲模塊3、DML/DCL操作捕獲模塊4、斷點續(xù)傳模塊5、RAC心跳檢測模塊6、SELECT捕獲模塊7、SELECTSQL生成模塊8、DML/DCLSQL解封模塊9、DML/DCLSQL捕獲模塊10、redo日志解析模塊11、數(shù)據(jù)文件打包生成模塊12。[0016]【具體實施方式】:下面結(jié)合附圖對本發(fā)明作進一步的說明。[0017]一種基于動態(tài)視圖監(jiān)控的OracleRAC數(shù)據(jù)庫SQL流捕獲方法,其特征在于包括以下步驟:步驟1:select查詢語句的捕獲,select語句捕獲模塊通過ASH視圖的監(jiān)視,并結(jié)合采集來的用戶會話(session)信息,結(jié)合歷史執(zhí)行的SQL語句視圖,設計專門的se1ect查詢語句解析算法,實現(xiàn)selectsql流及其相關信息的全方位的捕獲,例如:select語句、會話(session)信息、登錄時間信息,登錄IP地址信息;步驟2:DDL/DCL/DML語句捕獲,通過對重做日志(redo)的監(jiān)控來實現(xiàn),使用logminer方法定時解析Oracle重做日志,捕獲DDL/DCL/DMLSQL語句;步驟3:步驟1及步驟2所捕獲的數(shù)據(jù)通過支持斷網(wǎng)重傳的網(wǎng)絡通訊模塊進行傳輸,并進行數(shù)據(jù)的加密傳輸。[0018]本發(fā)明所述步驟1中select查詢語句的捕獲具體包括以下內(nèi)容:步驟1-1:OracleRAC生產(chǎn)庫端動態(tài)視圖監(jiān)控與采集;Oracle數(shù)據(jù)庫中的ASH(ActiveSessionHistory)對Oracle數(shù)據(jù)庫執(zhí)行的所有操作進行采樣,包括:〇01^1^、0(^,以及8616(^查詢操作;通過對0瓜(^數(shù)據(jù)庫中43!1視圖的監(jiān)控,輔之以其它相關視圖對ASH所采集SQL語句進行解析,實現(xiàn)select操作的捕獲,只要能夠被ASH采集到的所有select操作,都可以捕獲到,Oracle數(shù)據(jù)庫ASH采集周期限定為1秒鐘一次,因此所捕獲的Se1ect的時間粒度為0.5秒;除了對OracleASH中所保存的歷史SQL執(zhí)行記錄進行采集以外,用戶登錄會話信息(session)也至關重要,RAC服務器采集的ASH信息,附之以會話信息,并結(jié)合SQL語句視圖,可以用于還原select執(zhí)行的歷史記錄,從而實現(xiàn)select的捕獲。[0019]步驟1-2:在解析服務器一端,專門設計了select捕獲算法,利用RAC生產(chǎn)庫采集來的信息:ASH視圖信息,用戶會話信息(session),以及sql動態(tài)視圖,實現(xiàn)select語句全方位信息的捕獲,包括:select語句、select語句相關聯(lián)的會話(session)信息、select語句關聯(lián)會話的登錄時間,以及會話登錄IP等信息;SELECT捕獲模塊通過對ASH信息的擴充來提取select語句執(zhí)行的歷史記錄,ASH視圖表結(jié)構(gòu)如表1所示:表1ASH動態(tài)視圖結(jié)構(gòu)擴充后的ASH信息如表2所示。通過擴充,構(gòu)建sql語句執(zhí)行歷史的鏈表數(shù)據(jù)結(jié)構(gòu),實現(xiàn)了對select語句執(zhí)行歷史的捕獲;表2ASH信息增加字段步驟1-3:解析服務器端SELECTSQL流生成。[0020]本發(fā)明步驟2中DML/DDL/DCL語句捕獲包括以下步驟:步驟2-1:重做日志解析:DDL/DCL/DML語句的捕獲通過對重做日志(redo)的監(jiān)控來實現(xiàn),使用logminer方法定時解析Oracle重做日志,捕獲DDL/DML/DCLSQL語句,其基本步驟如下:首先添加并加載數(shù)據(jù)字典,之后啟動解析重做日志并生成解析視圖,一次解析完成后,更新解析時戳,結(jié)束解析進程的操作,實際上解析周期,可以根據(jù)生產(chǎn)庫的實際數(shù)據(jù)量來配置,在下一個解析周期開始時,解析模塊從新的時戳點開始解析。解析出來的重做日志動態(tài)視圖v$l〇gcontents視圖結(jié)構(gòu)如表3所示。[0021]表3重做日志解析結(jié)果步驟2-2:DDL/DML/DCL數(shù)據(jù)文件生成:生產(chǎn)庫運行時一般處于歸檔模式,為避免歸檔日志的產(chǎn)生,需要將解析出來的DDL/DML/DCL原始記錄,生成文本文件發(fā)送給捕獲服務器,可以將解析出來的重做日志視圖內(nèi)容重定向成文本文件,這就避免了createtable生成歸檔日志的問題;步驟2-3:重做日志數(shù)據(jù)解封;步驟2-4:DDL/DML/DCL捕獲:在解析服務器一端負責解析接收到的重做日志文本文件,將各個字段還原到sql捕獲服務器中,實現(xiàn)DDL/DML/DCL的捕獲。SQL流捕獲系統(tǒng)分別獲得SELECT語句與DDL/DCL/DML語句進行合并,構(gòu)成完整的RAC是Oracle服務器執(zhí)行的SQL流的全圖。[0022]實際上,重做日志解析模塊可以根據(jù)生產(chǎn)庫的不同要求,靈活地安排在解析服務器一端或生產(chǎn)庫一端進行。安排在在解析服務器一端,可以進一步降低對于生產(chǎn)庫性能的影響;但這要求解析服務器與生產(chǎn)庫具有相同的Oracle版本和0S版本。[0023]本發(fā)明還提出了一種基于動態(tài)視圖監(jiān)控的OracleRAC數(shù)據(jù)庫SQL流捕獲系統(tǒng),其特征在于設有SQL解析服務器1、RACOracle生產(chǎn)庫單元2,其中SQL解析服務器1設有SELECT操作捕獲模塊3、DML/DCL操作捕獲模塊4、斷點續(xù)傳模塊5以及RAC心跳檢測模塊6,其中SELECT操作捕獲模塊3包括SELECT捕獲模塊7、SELECTSQL生成模塊8;DML/DCL操作捕獲模塊4包括DML/DCLSQL解封模塊9、DML/DCLSQL捕獲模塊10。[0024]本發(fā)明所述RACOracle生產(chǎn)庫單元設有redo日志解析模塊11、數(shù)據(jù)文件打包生成模塊12、支持斷點續(xù)傳的數(shù)據(jù)傳輸模塊5以及心跳檢測模塊6。[0025]本發(fā)明采用專門的SQL捕獲服務器1與OracleRAC生產(chǎn)庫單元2相連,實現(xiàn)生產(chǎn)庫運行SQL流的捕獲,Select操作捕獲模塊,DDL/DML/DCL操作捕獲模塊,數(shù)據(jù)傳輸模塊,RAC心跳檢測模塊。[0026]Select操作捕獲系統(tǒng)包括:OracleRAC生產(chǎn)庫一端的動態(tài)視圖監(jiān)控與信息采集模塊,和SQL解析服務器端的SELECT捕獲模塊,和SELECTSQL生成模塊。Select操作捕獲系統(tǒng)需要部署響應的采集機構(gòu),例如:數(shù)據(jù)庫連接,數(shù)據(jù)庫觸發(fā)器等。[0027]DDL/DML/DCL操作捕獲模塊包括:redo日志解析模塊,數(shù)據(jù)文件打包生成模塊,DDL/DML/DCLSQL解封模塊,DDL/DML/DCLSQL捕獲模塊。DDL/DML/DCL操作捕獲系統(tǒng)、需要安裝安裝、部署logmnier,部署定時器等。[0028]select查詢語句捕獲系統(tǒng)通過對Oracle內(nèi)置ASH(ActiveSessionHistory)等動態(tài)視圖的監(jiān)控來實現(xiàn)select語句捕獲。ASH視圖定時對Oracle系統(tǒng)執(zhí)行的SQL流進行采集,select語句捕獲系統(tǒng)通過對ASH視圖的監(jiān)視,并利用采集來的會話(session)信息,結(jié)合歷史執(zhí)行的SQL語句視圖,完成了selectsql流及其相關信息的全方位的捕獲,例如:select語句、會話(session)信息、登錄時間信息,登錄IP地址信息等。elect查詢語句捕獲系統(tǒng)需要部署,數(shù)據(jù)庫連接、觸發(fā)器、定時器并設置定時任務等,對相關重要視圖進行采集。[0029]OracleRAC生產(chǎn)庫動態(tài)視圖采集模塊:0racle數(shù)據(jù)庫中的ASH(ActiveSessionHistory)對Oracle數(shù)據(jù)庫執(zhí)行的所有操作進行采樣,包括:DDL、DML、DCL,以及select查詢操作。本專利通過對Oracle數(shù)據(jù)庫中ASH視圖的監(jiān)控,輔之以其它相關視圖對ASH所采集SQL語句進行解析,實現(xiàn)select操作的捕獲。只要能夠被ASH采集到的所有select操作,本系統(tǒng)都可以捕獲到。從理論上來說,Oracle數(shù)據(jù)庫ASH采集周期限定為1秒鐘一次,因此本系統(tǒng)所捕獲的Se1ect的理論上的時間粒度為0.5秒。除了對Orac1eASH中所保存的歷史SQL執(zhí)行記錄進行采集以外,用戶登錄會話信息(session)也至關重要。RAC服務器采集的ASH信息,附之以會話信息,并結(jié)合SQL語句視圖,可以用于還原select執(zhí)行的歷史記錄,從而實現(xiàn)select的捕獲。[0030]解析服務器端SELECT捕獲模塊:在解析服務器一端,專門設計了select捕獲算法,利用RAC生產(chǎn)庫采集來的信息:ASH視圖信息,用戶會話信息(session),以及sql動態(tài)視圖,實現(xiàn)select語句全方位信息的捕獲,包括:select語句、select語句相關聯(lián)的會話(session)信息、select語句關聯(lián)會話的登錄時間,以及會話登錄IP信息。具體來說,要捕獲select語句,只有ASH信息是不夠的,還需要select語句相關的會Sv$session信息,執(zhí)行sql的視圖信息v$sql_area等,才可以實現(xiàn)select語句的捕獲。[0031]select語句生成模塊:實際上就是實現(xiàn)所捕獲select語句的物化。綜上,select查詢語句捕獲系統(tǒng),中的OracleRAC生產(chǎn)庫動態(tài)視圖采集模塊,解析服務器端SELECT捕獲模塊,select語句生成模塊,實現(xiàn)select語句全方位信息的捕獲,包括:select語句、select語句相關聯(lián)的會話(session)信息、select語句關聯(lián)會話的登錄時間,以及會話登錄IP等信息。[0032]DML/DCL語句的捕獲通過對重做日志(redo)的監(jiān)控來實現(xiàn)。使用logminer方法定時解析Oracle重做日志,捕獲DML/DDLSQL語句。由于生產(chǎn)庫運行時大部處于歸檔模式,為避免歸檔日志的產(chǎn)生,將解析出來的DML/DDL數(shù)據(jù)生成文本文件傳輸給捕獲服務器。鑒于數(shù)據(jù)量巨大,傳輸過程需要考慮安全性與斷網(wǎng)等因素,因此數(shù)據(jù)發(fā)送采用加密方式可靠傳輸(例如:SSH協(xié)議),并設計斷網(wǎng)續(xù)傳功能。SQL流捕獲系統(tǒng)分別獲得SELECT語句,與DML/DDL/DCL語句,并根據(jù)相關信息將其合并,構(gòu)成完整的RAC是Oracle服務器執(zhí)行的SQL流的全圖。猶DDL/DML/DCL語句捕獲系統(tǒng)需要部署Logminer以及定時任務,實現(xiàn)DML/DCL/DDL的采集、傳輸與解析。[0033]重做日志解析模塊的功能為:DDL/DML/DCL語句的捕獲通過對重做日志(redo)的監(jiān)控來實現(xiàn)。使用logminer方法定時解析Oracle重做日志,捕獲DDL/DML/DCLSQL語句。其基本步驟如下:首先添加并加載數(shù)據(jù)字典,之后啟動解析重做日志并生成解析視圖,一次解析完成后更新解析時戳,結(jié)束解析進程的操作。實際上解析周期,可以根據(jù)生產(chǎn)庫的實際數(shù)據(jù)量來配置。在下一個解析周期開始時,解析模塊從新時戳點開始解析。[0034]DDL/DML/DCL數(shù)據(jù)文件生成模塊的功能為:生產(chǎn)庫運行時一般處于歸檔模式,為避免歸檔日志的產(chǎn)生,需要將解析出來的DDL/DML/DCL原始記錄,生成文本文件發(fā)送給捕獲服務器??梢詫⒔馕龀鰜淼闹刈鋈罩疽晥D內(nèi)容重定向成文本文件,這就避免了createtable生成歸檔日志的問題。實踐證明該方法非常完美,同時效率也非常高。[0035]重做日志數(shù)據(jù)解封模塊,DDL/DML/DCL捕獲模塊的功能為:在解析服務器一端負責解析接收到的重做日志文本文件,將各個字段還原到sql捕獲服務器中,實現(xiàn)DDL/DML/DCL的捕獲。SQL流捕獲系統(tǒng)分別獲得SELECT語句與DDL/DML/DCL語句進行合并,構(gòu)成完整的RAC是Oracle服務器執(zhí)行的SQL流的全圖。[0036]實際上,重做日志解析模塊可以根據(jù)生產(chǎn)庫的不同要求,靈活地安排在解析服務器一端或生產(chǎn)庫一端進行。安排在在解析服務器一端,可以進一步降低對于生產(chǎn)庫性能的影響;但這要求解析服務器與生產(chǎn)庫具有相同的Oracle版本和0S版本。[0037]支持斷點續(xù)傳的數(shù)據(jù)傳輸模塊的功能為:鑒于數(shù)據(jù)量巨大,傳輸過程需要考慮安全性與斷網(wǎng)等諸多因素,因此數(shù)據(jù)發(fā)送采用加密方式可靠傳輸,并需要設計斷網(wǎng)續(xù)傳機制。[0038]推薦采用SSH協(xié)議進行數(shù)據(jù)加密傳輸,這既保證了傳輸?shù)目煽啃?,同時又加強了數(shù)據(jù)傳輸?shù)陌踩院捅C苄?。[0039]數(shù)據(jù)傳輸模塊支持斷網(wǎng)重傳機制,當生產(chǎn)庫到捕獲服務器的網(wǎng)絡出現(xiàn)異常時,生產(chǎn)庫生成的文本文件會保存在本地,當網(wǎng)絡再次可用時再重新發(fā)送。[0040]RAC心跳檢測模塊的功能為:由于生產(chǎn)庫大部分采用RAC模式,RAC具有透明應用切換的功能,當一臺數(shù)據(jù)庫服務器怠機后,另一臺機器可以正常運行,不會因為數(shù)據(jù)庫怠機而使應用停止服務。由于解析重做日志是通過外部程序執(zhí)行,當生產(chǎn)庫宕機后,使得sql流捕獲程序停止工作。[0041]在兩臺RAC生產(chǎn)庫上分別部署心跳監(jiān)測機制;在解析服務器一端,對心跳監(jiān)測機制進行支持,實現(xiàn)sql流捕獲的魯棒運行。[0042]本發(fā)明與現(xiàn)有技術相比,具有極強的穩(wěn)定性和可靠性,具有不間斷嚴密監(jiān)視數(shù)據(jù)庫的一舉一動同時又不影響正常的業(yè)務執(zhí)行效率等特點。【主權(quán)項】1.一種基于動態(tài)視圖監(jiān)控的OracleRAC數(shù)據(jù)庫SQL流捕獲方法,其特征在于包括以下步驟:步驟1:select查詢語句的捕獲,select語句捕獲模塊通過ASH視圖的監(jiān)視,并結(jié)合采集來的用戶會話(session)信息,結(jié)合歷史執(zhí)行的SQL語句視圖,設計專門的se1ect查詢語句解析算法,實現(xiàn)selectsql流及其相關信息的全方位的捕獲,例如:select語句、會話(session)信息、登錄時間信息,登錄IP地址信息;步驟2:DDL/DCL/DML語句捕獲,通過對重做日志(redo)的監(jiān)控來實現(xiàn),使用logminer方法定時解析Oracle重做日志,捕獲DDL/DCL/DMLSQL語句;步驟3:步驟1及步驟2所捕獲的數(shù)據(jù)通過支持斷網(wǎng)重傳的網(wǎng)絡通訊模塊進行傳輸,并進行數(shù)據(jù)的加密傳輸。2.根據(jù)權(quán)利要求1所述的一種基于動態(tài)視圖監(jiān)控的OracleRAC數(shù)據(jù)庫SQL流捕獲方法,其特征在于所述步驟1中select查詢語句的捕獲具體包括以下內(nèi)容:步驟1-1:OracleRAC生產(chǎn)庫端動態(tài)視圖監(jiān)控與采集;Oracle數(shù)據(jù)庫中的ASH(ActiveSessionHistory)對Oracle數(shù)據(jù)庫執(zhí)行的所有操作進行采樣,包括:〇01^1^、0(^,以及8616(^查詢操作;通過對0瓜(^數(shù)據(jù)庫中43!1視圖的監(jiān)控,輔之以其它相關視圖對ASH所采集SQL語句進行解析,實現(xiàn)select操作的捕獲,只要能夠被ASH采集到的所有select操作,都可以捕獲到,Oracle數(shù)據(jù)庫ASH采集周期限定為1秒鐘一次,因此所捕獲的Se1ect的時間粒度為0.5秒;除了對OracleASH中所保存的歷史SQL執(zhí)行記錄進行采集以外,用戶登錄會話信息(session)也至關重要,RAC服務器采集的ASH信息,附之以會話信息,并結(jié)合SQL語句視圖,可以用于還原select執(zhí)行的歷史記錄,從而實現(xiàn)select的捕獲;步驟1-2:在解析服務器一端,專門設計了select捕獲算法,利用RAC生產(chǎn)庫采集來的信息:ASH視圖信息,用戶會話信息(session),以及sql動態(tài)視圖,實現(xiàn)select語句全方位信息的捕獲,包括:select語句、select語句相關聯(lián)的會話(session)信息、select語句關聯(lián)會話的登錄時間,以及會話登錄IP等信息;SELECT捕獲模塊通過對ASH信息的擴充來提取select語句執(zhí)行的歷史記錄,通過擴充,構(gòu)建sql語句執(zhí)行歷史的鏈表數(shù)據(jù)結(jié)構(gòu),實現(xiàn)了對select語句執(zhí)行歷史的捕獲;步驟1-3:解析服務器端SELECTSQL流生成。3.根據(jù)權(quán)利要求1所述的一種基于動態(tài)視圖監(jiān)控的OracleRAC數(shù)據(jù)庫SQL流捕獲方法,其特征在于步驟2中DML/DDL/DCL語句捕獲包括以下步驟:步驟2-1:重做日志解析:DDL/DCL/DML語句的捕獲通過對重做日志(redo)的監(jiān)控來實現(xiàn),使用logminer方法定時解析Oracle重做日志,捕獲DDL/DML/DCLSQL語句,其基本步驟如下:首先添加并加載數(shù)據(jù)字典,之后啟動解析重做日志并生成解析視圖,一次解析完成后,更新解析時戳,結(jié)束解析進程的操作,實際上解析周期,可以根據(jù)生產(chǎn)庫的實際數(shù)據(jù)量來配置,在下一個解析周期開始時,解析模塊從新的時戳點開始解析;步驟2-2:DDL/DML/DCL數(shù)據(jù)文件生成:生產(chǎn)庫運行時一般處于歸檔模式,為避免歸檔日志的產(chǎn)生,需要將解析出來的DDL/DML/DCL原始記錄,生成文本文件發(fā)送給捕獲服務器,可以將解析出來的重做日志視圖內(nèi)容重定向成文本文件,這就避免了createtable生成歸檔日志的問題;步驟2-3:重做日志數(shù)據(jù)解封;步驟2-4:DDL/DML/DCL捕獲:在解析服務器一端負責解析接收到的重做日志文本文件,將各個字段還原到sql捕獲服務器中,實現(xiàn)DDL/DML/DCL的捕獲,SQL流捕獲系統(tǒng)分別獲得SELECT語句與DDL/DCL/DML語句進行合并,構(gòu)成完整的RAC是Oracle服務器執(zhí)行的SQL流的全圖。4.一種基于動態(tài)視圖監(jiān)控的OracleRAC數(shù)據(jù)庫SQL流捕獲系統(tǒng),其特征在于設有SQL解析服務器、RACOrac1e生產(chǎn)庫單元,其中SQL解析服務器設有SELECT操作捕獲模塊、DML/DCL操作捕獲模塊、斷點續(xù)傳模塊以及RAC心跳檢測模塊,其中SELECT操作捕獲模塊包括SELECT捕獲模塊、SELECTSQL生成模塊;DML/DCL操作捕獲模塊包括DML/DCLSQL解封模塊、DML/DCLSQL捕獲模塊。5.根據(jù)權(quán)利要求4所述的一種基于動態(tài)視圖監(jiān)控的OracleRAC數(shù)據(jù)庫SQL流捕獲系統(tǒng),其特征在于所述RACOracle生產(chǎn)庫單元設有redo日志解析模塊、數(shù)據(jù)文件打包生成模塊、支持斷點續(xù)傳的數(shù)據(jù)傳輸模塊以及心跳檢測模塊?!疚臋n編號】H04L12/26GK105868078SQ201610232408【公開日】2016年8月17日【申請日】2016年4月14日【發(fā)明人】王貽亮,榮以平,喬學明,孫路遠,劉乘麟,朱偉義,王鑫,郭聃,董爽爽,彭暄【申請人】國家電網(wǎng)公司,國網(wǎng)山東省電力公司威海供電公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
新巴尔虎左旗| 杨浦区| 常山县| 昂仁县| 枣强县| 新乡县| 弋阳县| 广元市| 稷山县| 托克逊县| 福清市| 民县| 卢湾区| 靖边县| 贵港市| 延长县| 中山市| 汝阳县| 五台县| 密山市| 东海县| 瑞丽市| 瑞丽市| 昌黎县| 晋宁县| 托克托县| 元阳县| 高雄市| 莆田市| 拜泉县| 广宁县| 乌鲁木齐县| 靖江市| 休宁县| 紫阳县| 政和县| 洞头县| 娄烦县| 宜州市| 凤城市| 吴川市|