国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種用于獲取MySQLbinlog增量日志的方法和裝置的制造方法

      文檔序號:9235451閱讀:374來源:國知局
      一種用于獲取MySQL binlog增量日志的方法和裝置的制造方法
      【技術(shù)領(lǐng)域】
      [0001] 本申請涉及MySQL數(shù)據(jù)庫技術(shù),具體涉及一種用于獲取MySQLbinlog增量日志的 方法。本申請同時提供一種用于獲取MySQLbinlog增量日志的裝置。
      【背景技術(shù)】
      [0002] MyS化數(shù)據(jù)庫有各種不同類型的日志文件:錯誤日志、二進(jìn)制日志、查詢?nèi)罩?、?查詢?nèi)罩尽edo日志等,根據(jù)該些日志可W查詢MyS化數(shù)據(jù)庫執(zhí)行的操作W及狀態(tài)等信息, 對于MyS化數(shù)據(jù)庫的管理與維護(hù)來說,該些日志文件都是不可或缺的。
      [0003] 其中二進(jìn)制日志(binlog),記錄了對MyS化數(shù)據(jù)庫的更改操作,例如:創(chuàng)建數(shù)據(jù)庫 或表(create)、插入操作(insert)、更新操作(update)、刪除操作(insert)等,每個更改操 作都W-條記錄的形式寫入二進(jìn)制日志文件中,每條記錄中都包含了當(dāng)前記錄更新的時間 戳、該記錄在當(dāng)前二進(jìn)制日志文件中的位置(即;偏移量)W及與數(shù)據(jù)庫更改操作相關(guān)的其 他信息。MyS化數(shù)據(jù)庫通常有一個或者多個二進(jìn)制日志文件,不同的二進(jìn)制日志文件通過文 件擴(kuò)展名采用不同的數(shù)字編號形式加W區(qū)分,例如;mysql-bin. 00001。使用上述二進(jìn)制日 志文件,一方面可W實(shí)現(xiàn)MyS化數(shù)據(jù)庫的數(shù)據(jù)恢復(fù)功能,另一方面可W通過主備復(fù)制實(shí)現(xiàn) MyS化主備數(shù)據(jù)庫的數(shù)據(jù)一致性。
      [0004] MyS化使用二進(jìn)制日志文件進(jìn)行主備復(fù)制的基本過程是該樣的:備用數(shù)據(jù)庫與主 數(shù)據(jù)庫建立連接,并請求獲取從指定二進(jìn)制日志文件的指定位置之后的日志記錄;主數(shù)據(jù) 庫將位于指定二進(jìn)制日志文件中的指定位置之后的日志記錄,返回給備用數(shù)據(jù)庫;備用數(shù) 據(jù)庫接收到主數(shù)據(jù)庫返回的數(shù)據(jù)后,從中解析出在主數(shù)據(jù)庫上執(zhí)行的更改操作,并在備用 數(shù)據(jù)庫上執(zhí)行該些更改操作,也就是說,在主數(shù)據(jù)庫和備用數(shù)據(jù)庫上執(zhí)行同樣的數(shù)據(jù)庫操 作,從而通過主備復(fù)制過程實(shí)現(xiàn)了主備數(shù)據(jù)庫的數(shù)據(jù)一致性。
      [0005] 由此可見,MyS化主數(shù)據(jù)庫支持采用增量方式,向其他需要獲取二進(jìn)制日志數(shù)據(jù)的 備用數(shù)據(jù)庫或應(yīng)用程序提供二進(jìn)制日志數(shù)據(jù);相應(yīng)的,需要從MyS化主數(shù)據(jù)庫獲取二進(jìn)制 日志數(shù)據(jù)的備用數(shù)據(jù)庫或者其他應(yīng)用程序則需要在獲取增量日志數(shù)據(jù)的請求中,明確地指 定希望從中獲取日志數(shù)據(jù)的二進(jìn)制日志文件的文件名、W及所需獲取的日志數(shù)據(jù)在所述二 進(jìn)制日志文件中的偏移量,該樣才能夠正確地從主數(shù)據(jù)庫獲取所需的二進(jìn)制日志數(shù)據(jù)。
      [0006] 上述通過指定"文件名+偏移量"來獲取增量日志的方式,有助于減少主數(shù)據(jù)庫 與備數(shù)據(jù)庫或者其他獲取二進(jìn)制日志數(shù)據(jù)的應(yīng)用程序之間的交互數(shù)據(jù)量,減少對帶寬的占 用,但是在具體實(shí)施過程存在一定的缺陷。對于需要從主數(shù)據(jù)庫抓取增量二進(jìn)制日志數(shù)據(jù)、 W滿足增量訂閱或消費(fèi)等相關(guān)業(yè)務(wù)需求的應(yīng)用程序來說,通常情況下可W采用與備數(shù)據(jù)庫 類似的方式從主數(shù)據(jù)庫抓取增量二進(jìn)制日志數(shù)據(jù)。但是在主數(shù)據(jù)庫故障導(dǎo)致主備數(shù)據(jù)庫切 換的情況下,由于主數(shù)據(jù)庫和備數(shù)據(jù)庫的二進(jìn)制日志文件是彼此獨(dú)立編號的,主備之間不 存在對應(yīng)關(guān)系,而抓取增量日志的應(yīng)用程序使用的起始位點(diǎn)信息(文件名+偏移量)是和主 數(shù)據(jù)庫相關(guān)聯(lián)的,因此無法在備用數(shù)據(jù)庫(當(dāng)前的主數(shù)據(jù)庫)的二進(jìn)制日志文件中找到與原 起始位點(diǎn)信息相對應(yīng)的起始位點(diǎn),從而導(dǎo)致所述應(yīng)用程序無法繼續(xù)抓取增量日志數(shù)據(jù)或者 抓取到錯誤的增量日志數(shù)據(jù)。

      【發(fā)明內(nèi)容】

      [0007] 本申請?zhí)峁┮环N用于獲取MySQL binlog增量日志的方法,W解決現(xiàn)有技術(shù)采用 "文件名+偏移量"指定位點(diǎn)的方式在MyS化主數(shù)據(jù)庫變更的情況下無法正確獲取增量日志 的問題。本申請另外提供一種用于獲取MySQL binlog增量日志的裝置。
      [0008] 本申請?zhí)峁┮环N用于獲取MySQL binlog增量日志的方法,包括:
      [0009] 在當(dāng)前MyS化數(shù)據(jù)庫的二進(jìn)制日志文件集合中,查找其時間戳不早于預(yù)先指定的 時間戳的第一個記錄;
      [0010] 根據(jù)該記錄所在二進(jìn)制日志文件的文件名和該記錄在所述文件中的位置,獲取所 述當(dāng)前MyS化數(shù)據(jù)庫的增量日志。
      [0011] 可選的,所述在當(dāng)前MyS化數(shù)據(jù)庫的二進(jìn)制日志文件集合中,查找其時間戳不早 于預(yù)先指定的時間戳的第一個記錄,包括:
      [0012] 在所述當(dāng)前MyS化數(shù)據(jù)庫的二進(jìn)制日志文件集合中,查找其包含的第一個記錄的 時間戳不晚于所述預(yù)先指定的時間戳的最后一個文件;
      [0013] 在所述最后一個文件中查找其時間戳不早于所述預(yù)先指定的時間戳的第一個記 錄。
      [0014] 可選的,執(zhí)行在所述當(dāng)前MyS化數(shù)據(jù)庫的二進(jìn)制日志文件集合中,查找其包含的 第一個記錄的時間戳不晚于所述預(yù)先指定的時間戳的最后一個文件的步驟時,采用的是二 分查找法。
      [0015] 可選的,所述方法包括:
      [0016] 與所述當(dāng)前MyS化數(shù)據(jù)庫建立數(shù)據(jù)連接;
      [0017] 獲取所述當(dāng)前MyS化數(shù)據(jù)庫的二進(jìn)制日志文件列表;
      [0018] 相應(yīng)的,所述在當(dāng)前MyS化數(shù)據(jù)庫的二進(jìn)制日志文件集合中,查找其時間戳不早 于預(yù)先指定的時間戳的第一個記錄,就是在上述獲取的二進(jìn)制日志文件列表包含的文件集 合中執(zhí)行的查找操作。
      [0019] 可選的,所述與所述當(dāng)前MyS化數(shù)據(jù)庫建立數(shù)據(jù)連接包括:
      [0020] 獲取所述當(dāng)前MyS化數(shù)據(jù)庫所在服務(wù)器的IP地址和所述當(dāng)前MyS化數(shù)據(jù)庫提供 數(shù)據(jù)庫服務(wù)的端口號;
      [0021] 使用所述IP地址和所述端口號與所述當(dāng)前MyS化數(shù)據(jù)庫建立數(shù)據(jù)連接。
      [0022] 可選的,所述獲取所述當(dāng)前MyS化數(shù)據(jù)庫所在服務(wù)器的IP地址和所述當(dāng)前MySQL 數(shù)據(jù)庫提供數(shù)據(jù)庫服務(wù)的端口號,采用如下方式實(shí)現(xiàn):
      [0023] 讀取元信息庫中與所述當(dāng)前MyS化數(shù)據(jù)庫相關(guān)的信息,并從中提取所述IP地址和 所述端口號。
      [0024] 可選的,所述方法包括:
      [0025] 記錄從MyS化主數(shù)據(jù)庫獲取的增量日志的最后一個記錄的時間戳,作為所述預(yù)先 指定的時間戳。
      [0026] 可選的,在所述記錄從MyS化主數(shù)據(jù)庫獲取的增量日志的最后一個記錄的時間 戳,作為所述預(yù)先指定的時間戳的步驟之前,執(zhí)行下述步驟:
      [0027] 判斷MyS化數(shù)據(jù)庫系統(tǒng)是否執(zhí)行了主備切換操作;
      [0028] 若是,將接替所述MyS化主數(shù)據(jù)庫繼續(xù)提供數(shù)據(jù)庫服務(wù)的MyS化備用數(shù)據(jù)庫,作為 所述當(dāng)前MyS化數(shù)據(jù)庫。
      [0029] 可選的,所述判斷MyS化數(shù)據(jù)庫系統(tǒng)是否執(zhí)行了主備切換操作,采用如下方式實(shí) 現(xiàn):
      [0030] 監(jiān)測存儲在元信息庫中的、用于記錄MyS化主數(shù)據(jù)庫所在服務(wù)器的IP地址的字段 是否發(fā)生變化;若是,則判斷MyS化數(shù)據(jù)庫系統(tǒng)執(zhí)行了主備切換操作。
      [0031] 本申請還提供一種用于獲取MySQL binlog增量日志的裝置,包括:
      [0032] 記錄查找單元,用于在當(dāng)前MyS化數(shù)據(jù)庫的二進(jìn)制日志文件集合中,查找其時間 戳不早于預(yù)先指定的時間戳的第一個記錄;
      [0033] 增量日志獲取單元,用于根據(jù)所述記錄查找單元找到的記錄所在二進(jìn)制日志文件 的文件名和該記錄在所述文件中的位置,獲取所述當(dāng)前MyS化數(shù)據(jù)庫的增量日志。
      [0034] 可選的,所述記錄查找單元包括:
      [0035] 文件查找子單元,用于在所述當(dāng)前MyS化數(shù)據(jù)庫的二進(jìn)制日志文件集合中,查找 其包含的第一個記錄的時間戳不晚于所述預(yù)先指定的時間戳的最后一個文件;
      [0036] 記錄查找執(zhí)行子單元,用于在所述最后一個文件中查找其時間戳不早于所述預(yù)先 指定的時間戳的第一個記錄。
      [0037] 可選的,所述文件查找子單元具體用于,采用二分查找法,在所述當(dāng)前MyS化數(shù)據(jù) 庫的二進(jìn)制日志文件集合中,查找其包含的第一個記錄的時間戳不晚于所述預(yù)先指定的時 間戳的最后一個文件。
      [0038] 可選的,所述裝置包括:
      [0039] 連接建立單元,用于與所述當(dāng)前MyS化數(shù)據(jù)庫建立數(shù)據(jù)連接;
      [0040] 文件列表獲取單元,用于獲取所述當(dāng)前MyS化數(shù)據(jù)庫的二進(jìn)制日志文件列表;
      [0041] 相應(yīng)的,所述記錄查找單元在所述文件列表獲取單元輸出的二進(jìn)制日志文件列表 包含的文件集合中執(zhí)行查找操作。
      [0042] 可選的,所述連接建立單元包括:
      [0043] 連接信息獲取子單元,用于獲取所述當(dāng)前MyS化數(shù)據(jù)庫所在服務(wù)器的IP地址和所 述當(dāng)前MyS化數(shù)據(jù)庫提供數(shù)據(jù)庫服務(wù)的端口號;
      [0044] 連接建立執(zhí)行子單元,用于使用所述連接信息獲取子單元輸出的IP地址和端口 號與所述當(dāng)前MyS化數(shù)據(jù)庫建立數(shù)據(jù)連接。
      [0045] 可選的,所述連接信息獲取子單元具體用于,讀取元信息庫中與所述當(dāng)前MySQL 數(shù)據(jù)庫相關(guān)的信息,并從中提取所述IP地址和所述端口號。
      [0046] 可選的,所述裝置包括:
      [0047] 時間戳記錄單元,用于記錄從MyS化主數(shù)據(jù)庫獲取的增量日志的最后一個記錄的 時間戳,作為所述預(yù)先指定的時間戳。
      [0048] 可選的,所述裝置包括:
      [0049] 主備切換判斷單元,用于判斷MyS化數(shù)據(jù)庫系統(tǒng)是否執(zhí)行了主備切換操作;
      [0050] 當(dāng)前數(shù)據(jù)庫選擇單元,用于當(dāng)所述主備切換判斷單元的輸出為"是"時,將接替所 述MyS化主數(shù)據(jù)庫繼續(xù)提供數(shù)據(jù)庫服務(wù)的MyS化備用數(shù)據(jù)庫,作為所述當(dāng)前MyS化數(shù)據(jù)庫。
      [0051] 可選的,所述主備切換判斷單元具體用于,監(jiān)測存儲在元信息庫中的、用于記錄 MyS化主數(shù)據(jù)庫所在服務(wù)器的IP地址的字段是否發(fā)生變化;若是,則判斷MyS化數(shù)據(jù)庫系 統(tǒng)執(zhí)行了主備切換操作。
      [0052] 與現(xiàn)有技術(shù)相比,本申請具有W下優(yōu)點(diǎn):
      [005引本申請的用于獲取MySQL binlog增量日志的方法,沒有采用現(xiàn)有技術(shù)根據(jù)文件 名和偏移量確
      當(dāng)前第1頁1 2 3 4 5 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1