日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

冷數據分層存儲的開啟和使用

本文介紹如何開啟冷數據分層存儲功能,以及開啟功能后的使用方式。

使用限制

  • PolarDB PostgreSQL版 14.10.21.0及以上版本支持冷數據分層存儲功能。

  • 開啟冷數據分層存儲功能后,無法關閉該功能,只能刪除冷數據。如果沒有存儲數據,開啟該功能本身不會產生費用。

  • 開啟熱備的PolarDB PostgreSQL版集群不支持開啟冷數據分層存儲功能。

    說明

    如以上場景您需要開啟冷數據分層存儲功能,請聯(lián)系我們處理。

  • 開啟冷數據分層存儲功能后,如果您的PolarDB PostgreSQL版集群已經開啟熱備,不支持更換主可用區(qū)。

    說明

    如以上場景您存在更換主可用區(qū)需求,請聯(lián)系我們處理。

  • 暫不支持的DDL:

    • 暫不支持在OSS表空間中創(chuàng)建數據庫:CREATE DATABASE dbname TABLESPACE OSS;

    • 暫不支持將已有數據庫一次性轉入OSS表空間:ALTER DATABASE dbname SET TABLESPACE OSS;

開啟方式

  1. 購買按量付費集群購買包年包月集群,登錄PolarDB控制臺

  2. 單擊目標集群ID,進入集群基本信息頁。

  3. 在左側導航欄選擇配置與管理 > 冷數據分層存儲,進入PolarDB冷數據分層存儲頁面。

  4. 單擊一鍵開啟,進入數據歸檔列表頁面。

    image (1).png

  5. 在頁面上可以查看實例基本信息數據歸檔列表,在數據歸檔列表一欄,可以分別查看整表歸檔列表分區(qū)表歸檔列表。

說明
  • 如果當前還沒有存入任何冷數據,數據歸檔列表會呈現空白狀態(tài)。

  • 開啟之后,數據默認存儲在自帶的云盤高速存儲介質上,需要通過簡單的處理才能將數據冷存,即轉存入OSS。具體操作步驟請參考數據冷存的幾種模式。

數據冷存的幾種模式

數據冷存是指將數據表/索引/物化視圖轉存入OSS,轉存后不再占用或者極少量占用數據庫云盤存儲空間,從而大大降低數據庫的存儲成本。數據冷存后,所有的增刪改查SQL都透明,無需做任何修改。

普通表/索引/物化視圖冷存

  • 將已有數據表/索引/物化視圖冷存。

    ALTER  TABLE  tblname  SET  TABLESPACE OSS;
    ALTER  INDEX  idxname  SET TABLESPACE OSS;
    ALTER Materialized View mvname SET TABLESPACE OSS;
    說明

    在對表執(zhí)行ALTER TABLE tblname SET TABLESPACE OSS時,默認只會將表本身的數據轉存至OSS,表上建立的索引需要單獨再執(zhí)行ALTER INDEX才能將索引數據也轉存至OSS。

  • 直接在OSS存儲中新建數據表/索引/物化視圖。

    • 方式一:CREATE時指定TABLESPACE OSS。

      CREATE TABLE tblname (...) TABLESPACE OSS;
      CREATE TABLE tblname(...) TABLESPACE OSS as SELECT ...;
      CREATE INDEX idxname ON tblname(columnname) TABLESPACE OSS;
      CREAE INDEX idxname ON tblename USING GiST(columnname) TABLESPACE OSS;
      CREATE MATERIALIZED VIEW table_name TABLESPACE OSS AS query [ WITH [ NO ] DATA ];
    • 方式二:設置默認表空間為OSS表空間。

      SET default_tablespace = 'oss';
      CREATE  TABLE  tblname  (...) ;
      CREATE  INDEX  idxname ON  tblname(columnname);
      CREAE  INDEX  idxname  ON tblename USING GiST(columnname);
      CREATE MATERIALIZED VIEW  table_name  AS query [ WITH [ NO ] DATA ];
      說明

      這種方式設置默認表空間為OSS后,所有的創(chuàng)建表、索引、物化視圖操作都會直接將對象建立在OSS存儲上。如果不需要創(chuàng)建冷存對象時,需要將默認表空間進行重置:

      RESET default_tablespace;

LOB字段獨立冷存

LOB字段是指PolarDB PostgreSQL版中的blob、text、json、jsonb、array類型以及時空類型字段,這些類型往往單個對象較大,占用的存儲空間較多,但更新頻率不高。為了支持這類場景的降本需求,PolarDB PostgreSQL版冷數據分層存儲功能支持將大對象字段單獨進行冷存,其余字段的存儲保持不變。LOB字段支持SQL一鍵冷存,具體使用方式如下:

--創(chuàng)建帶有大對象字段的表
CREATE TABLE  test_large_object(id serial, val text);

--將大對象字段獨立冷存
ALTER TABLE test_large_object alter column val set (storage_type='oss');

--寫入大對象數據,此時寫入的text字段內容存儲在OSS上
INSERT INTO test_large_object(val) VALUES((SELECT string_agg(random()::text, ':') FROM generate_series(1, 10000)));
說明

需要提前設置大對象字段的存儲為OSS,之后寫入的數據才會存入OSS。

分區(qū)表冷存

分區(qū)表是一種比較常見的冷存對象,在冷存功能使用上有一些特殊的方式。

  • 全部分區(qū)表冷存。

    • 方式一:依次將已經存在的分區(qū)子表轉為冷存。

      --prt1為分區(qū)表(父表)
      --prt1_p1為prt1的子表
      --prt2_p2為prt1的另一張子表
      --對所有的子表執(zhí)行alter操作
      ALTER  TABLE  prt1_p1  SET  TABLESPACE OSS;
      ALTER  TABLE  prt1_p2  SET  TABLESPACE OSS;
    • 方式二:將分區(qū)表主表直接創(chuàng)建在OSS tablespace上。

      CREATE TABLE prt1 (a int, b int) PARTITION BY RANGE(a) TABLESPACE OSS;
      
      --分區(qū)子表默認都繼承了父親tablespace屬性,直接將表創(chuàng)建在oss tablespace上
      CREATE TABLE prt1_p1 PARTITION OF prt1 FOR VALUES FROM (0) TO (250);
      CREATE TABLE prt1_p2 PARTITION OF prt1 FOR VALUES FROM (250) TO (500);
    • 方式三:設置默認表空間為OSS表空間后再創(chuàng)建分區(qū)表。

      SET default_tablespace = 'oss';
      CREATE  TABLE  prt1 (a int, b int) PARTITION BY RANGE(a);
      CREATE TABLE prt1_p1 PARTITION OF prt1 FOR VALUES FROM (0) TO (250);
      CREATE TABLE prt1_p2 PARTITION OF prt1 FOR VALUES FROM (250) TO (500);
  • 部分分區(qū)子表冷存:

    當只需要將已過期(低頻訪問)的分區(qū)子表轉為冷數據時,可以直接對子表進行更換表空間操作。未過期(高頻訪問)的分區(qū)子表無需任何改變,仍存儲在數據庫云盤中,這樣既不影響分區(qū)表的訪問性能,又降低了存儲成本。

    --prt1為分區(qū)表(父表)
    --prt1_p1為prt1的未過期子表
    --prt2_p2為prt1的已過期子表
    --對已過期子表執(zhí)行alter操作
    ALTER  TABLE  prt1_p2  SET  TABLESPACE OSS;

數據冷熱分層

冷數據物化緩存

您可以通過修改polar_smgrcache_size參數來設置冷數據物化緩存的大小。

  1. 登錄PolarDB控制臺。

  2. 單擊目標集群ID,進入集群基本信息頁。

  3. 在左側導航欄選擇配置與管理 > 參數配置,找到polar_smgrcache_size參數,單擊修改參數。

  4. 參考以下示例設置polar_smgrcache_size參數。

    設置值

    緩存大小

    0

    0(緩存被關閉)

    1

    1 GB

    2

    2 GB

    128

    128 GB(當前支持的最大值)

  5. 單擊左上角的提交修改,在彈出的保存改動對話框中,單擊確定。修改該參數后,集群會重啟。

說明
  • PolarDB PostgreSQL版在開啟冷數據分層存儲功能時,默認會在云盤上開辟很小量的物化緩存空間,用于存儲元數據及一些IO合并。如果要追求更高的性能,可根據數據量及使用場景在控制臺將物化緩存做調整,調整后重啟數據庫立即生效。

  • 開啟并使用了冷數據分層存儲功能后,如果將polar_smgrcache_size參數調整為0,則會關閉緩存功能,這可能會導致崩潰恢復變得非常慢,且重啟期間無法重新打開該參數。如果出現這種情況,可以聯(lián)系我們申請重新打開緩存功能,加速崩潰恢復。

開啟冷數據物化緩存后,您可以通過如下方式查詢緩存使用情況:

-- 創(chuàng)建擴展
CREATE extension polar_monitor;

-- 查詢物化緩存基本使用情況
SELECT * FROM polar_smgrcaches;

-- 字段說明:
  -- smgrcache:緩存id
  -- relfilenode:該緩存對應的表文件
  -- relchunknumber:該緩存在表文件中的位置
  -- nblocks:該緩存的大小
  -- dirty:是否為臟
  -- usagecount:使用計數
  -- pinning_backends:引用計數

-- 強制將物化緩存刷到OSS中
SELECT polar_flush_smgrcache(); 

-- 強制淘汰物化緩存
SELECT polar_evict_smgrcache(); 

冷數據的訪問

冷數據增刪改查

冷存數據(即已經存儲在OSS表空間中的對象)做增刪改查的SQL都是透明的,無需進行任何改動。

冷數據恢復

數據轉存至OSS時會進行壓縮處理,如果要將已經存儲在OSS中的數據恢復至云盤存儲,需確保云盤上有足夠的存儲空間,通常要比OSS上的存儲空間增大約1.4~4倍。

冷數據清除

刪除冷存表/索引/物化視圖的SQL也是透明的,無需進行任何改動。

DELETE  FROM tblname WHERE ...;
TRUNCATE  TABLE  tblname;
DROP  TABLE  tblname;
...