資料庫歸檔的實現方案調研(一)

2021-09-29 14:21:30 字數 1649 閱讀 1590

公司最近說是資料庫中資料量比較大,好多是15/16年的資料,基本不用,但是堆在資料庫又嚴重影響效能,想找個方法解決掉它。所以,這個任務就這麼放到了我的頭上。

業務系統的業務表的資料量很大,嚴重影響效能,需要進行優化。

按照目前問題,對症下藥,我們需要對資料進行歸檔。目前市面上有幾個解決該問題的方案,可選用一種或多種進行優化

rds推出了資料壓縮的支援,在tokudb引擎的幫助下,rds for mysql能以低於五分之一的儲存開銷來支援使用者大資料需求,進一步降低使用者的資料儲存成本。tokudb是乙個支援事務的mysql引擎,擁有出色的資料壓縮能力和極低的資源消耗。

當乙個資料庫的資料空間達到tb級別時運維難度是非常高的。尤其是資料遷移和備份操作,不僅耗時將會成倍增長,而且成功率會有很大下降。另外無論使用者是自建資料庫還是使用雲服務,增長迅速的儲存空間都會帶來巨大的開支。

tokudb可以大幅度降低儲存使用量和iops開銷

tokudb無法支援外來鍵foreign key

tokudb不適用於大量讀取的場景

首先說明版本要求:5.6及以上,5.6親測可行

1、配置tokudb引擎

select

sum(data_length)

into

@all_size

from information_schema.

tables

where

engine

='innodb'

;select

sum(data_length)

into

@change_size

from information_schema.

tables

where

engine

='innodb'

and concat(table_schema,

'.', table_name)in(

'dba1.tbl1'

,'db2.tbl2'

,'db3.tbl3');

select

round

(@change_size

/@all_size

*100

);

引數配置:

登入rds控制台,將loose_tokudb_buffer_pool_ratio設定為上步計算得到百分比。該引數需要重啟資料庫才能生效。

2、 開啟壓縮

rds已推出資料不停機遷移服務

alter

table *** engine

=tokudb

1、不支援外來鍵(foreign key)功能,如果您的表有外來鍵,切換到 tokudb引擎後,此約束將被忽略。

2、tokudb 不適大量讀取的場景,因為壓縮解壓縮的原因。cpu占用會高2-3倍,但由於壓縮後空間小,io開銷低,平均響應時間大概是2倍左右。

3、online ddl 對text,blob等型別的字段不適用

4、沒有完善的熱備工具,只能通過mysqldump進行邏輯備份

1、訪問頻率不高的資料或歷史資料歸檔

2、資料表非常大並且時不時還需要進行ddl操作

接下來還要繼續調研一些新的適用方案,或許會有更優選擇或者可以一起使用的方案,我會將我調研到的新技術繼續更新的。

oracle資料庫的歸檔模式

什麼是oracle歸檔模式?oracle資料庫有聯機重做日誌,這個日誌是記錄對資料庫所做的修改,比如插入,刪除,更新資料等,對這些操作都會記錄在聯機重做日誌裡。一般資料庫至少要有2個聯機重做日誌組。當乙個聯機重做日誌組被寫滿的時候,就會發生日誌切換,這時聯機重做日誌組2成為當前使用的日誌,當聯機重做...

資料庫優化方案 一)

關於資料庫優化方面的文章很多,但是有的寫的似是而非,有的不切實際,對乙個資料庫來說,只能做到更優,不可能最優,並且由於實際需求不同,優化方案還是有所差異,根據實際需要關心的方面 速度 儲存空間 可維護性 可拓展性 來優化資料庫,而這些方面往往又是相互矛盾的,下面結合網上的一些看法和自己的一些觀點做個...

資料庫優化方案一

關於資料庫優化方面的文章很多,但是有的寫的似是而非,有的不切實際,對乙個資料庫來說,只能做到更優,不可能最優,並且由於實際需求不同,優化方案還是有所差異,根據實際需要關心的方面 速度 儲存空間 可維護性 可拓展性 來優化資料庫,而這些方面往往又是相互矛盾的,下面結合網上的一些看法和自己的一些觀點做個...