[發明專利]一種數據清理方法及裝置有效
| 申請號: | 201710013109.2 | 申請日: | 2017-01-09 |
| 公開(公告)號: | CN108287835B | 公開(公告)日: | 2022-06-21 |
| 發明(設計)人: | 李躍森 | 申請(專利權)人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | G06F16/215 | 分類號: | G06F16/215;G06F16/23;G06F16/22;G06F16/242;G06F16/28 |
| 代理公司: | 廣州三環專利商標代理有限公司 44202 | 代理人: | 郝傳鑫;賈允 |
| 地址: | 518000 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據 清理 方法 裝置 | ||
本發明公開了一種數據清理方法及裝置,屬于數據庫應用技術領域。該方法通過對目標表加共享更新排他鎖,阻止系統對目標表的DDL操作,然后建立臨時表和臨時索引,將目標表中的數據復制到臨時表中,并根據臨時表中的數據生成索引信息,之后對目標表加訪問排他鎖來阻止系統對目標表的DML操作,再交換目標表和臨時表中的數據以及對應的索引信息,從而完成磁盤空間的清理和回收。由于數據清理過程中絕大部分時間都是采用共享更新排他鎖,不影響系統對目標表的DML操作,可以實現在幾乎不阻斷DML的情況下完成數據庫中垃圾數據的清理,確保系統較高的可用率,改善用戶使用體驗。
技術領域
本發明涉及數據庫應用技術領域,尤其涉及一種數據清理方法及裝置。
背景技術
PostgreSQL數據庫是一種開源、實用、高效、應用廣泛的通用數據庫管理系統。PostgreSQL數據庫在長時間運行后,系統會產生索引膨脹和垃圾數據,這些數據會占用多余的磁盤空間,增加業務的成本;同時數據膨脹也會降低系統的性能,PostgreSQL原生的VACUUM FULL可用于進行磁盤空間的清理和索引膨脹的消除。
VACUUM FULL的處理流程如附圖1所示,包括對PostgreSQL數據庫中的源表加AccessExclusiveLock鎖,然后建立臨時表,將源表數據復制到臨時表中,之后交換源表和臨時表內容,重建源表上的索引,并刪除臨時表,再解除AccessExclusiveLock鎖。由于VACUUM FULL一開始就對源表加了AccessExclusiveLock來阻止系統對這張表的修改,這個操作導致系統整個過程中所有針對源表的操作包括DML(Data Manipulation Language,數據操作語言,數據操作分成數據查詢和數據更新兩類,數據更新又分成插入、刪除、和修改三種操作)和DDL(Data Definition Language,數據定義語言,用于定義數據庫模式、基本表、視圖和索引的創建和撤消操作)都會被阻塞,造成嚴重的業務中斷,影響業務服務質量。例如,對一個100G的表進行VACUUM FULL,需要3個小時左右,這個過程中,業務無法正常運行,也就是說需要中斷三個小時來進行一次磁盤空間的清理和回收。
發明內容
本發明提供了一種數據清理方法及裝置,以至少解決在數據清理過程中長時間不能對表數據進行操作的問題,確保系統較高的可用率。
根據本發明的一個方面,提供了一種數據清理方法,包括:
對目標表加共享更新排他鎖(ShareUpdateExclusiveLock),阻止系統對目標表的數據定義語言(DDL)操作;
建立臨時表,所述臨時表的表定義與所述目標表的表定義相同;
建立臨時表的臨時索引,所述臨時索引的屬性與目標表的索引的屬性相同;
將所述目標表的數據復制到所述臨時表中,根據臨時表中的數據在臨時索引中生成索引信息;
對所述目標表加訪問排他鎖(AccessExclusiveLock),阻止系統對目標表的數據操作語言(DML)操作;
交換所述臨時表和所述目標表中的數據以及所述臨時索引和所述目標索引中的索引信息;
解除所述目標表上的共享更新排他鎖和訪問排他鎖。
本發明另一方面提供了一種數據清理裝置,包括:
第一加鎖單元,用于對目標表加共享更新排他鎖,阻止系統對目標表的數據定義語言操作;
臨時表建立單元,用于建立臨時表,所述臨時表的表定義與所述目標表的表定義相同;
臨時索引建立單元,用于建立臨時表的臨時索引,所述臨時索引的屬性與目標表的索引的屬性相同;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于騰訊科技(深圳)有限公司,未經騰訊科技(深圳)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710013109.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:用于推送信息的方法、裝置及計算設備
- 下一篇:一種資源緩存方法及裝置
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





