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

磁盤配額管理

Diskquota可以對AnalyticDB PostgreSQL版的磁盤配額進行管理,可以允許超級用戶為Schema和Role設置磁盤使用配額。本文將介紹如何在AnalyticDB PostgreSQL版中創(chuàng)建和使用Diskquota。

說明

磁盤配額管理功能僅支持存儲彈性模式的AnalyticDB PostgreSQL版實例。

啟用和關閉Diskquota

  1. 創(chuàng)建Diskquota數(shù)據(jù)庫,Diskquota模塊使用此數(shù)據(jù)庫存儲啟用該模塊的數(shù)據(jù)庫列表。

    createdb diskquota;
  2. 提交工單聯(lián)系技術支持將Diskquota加入shared_preload_libraries并重啟AnalyticDB PostgreSQL版實例。

  3. 啟用Diskquota。

    CREATE EXTENSION diskquota;
    CREATE EXTENSION
  4. 關閉Diskquota。

    drop extension diskquota;
    DROP EXTENSION
說明

如果在已經(jīng)包含數(shù)據(jù)的數(shù)據(jù)庫中使用Diskquota,則必須初始化Diskquota表。文件比較多時,需要耗費一定時間。

SELECT diskquota.init_table_size_table();

設置Schema或Role的磁盤配額大小

  • 設置Schema的磁盤配額。

    SELECT diskquota.set_schema_quota('adbpg1', '1MB');     
     set_schema_quota
    ------------------
    
    (1 row)
  • 設置Role的磁盤配額。

    select diskquota.set_role_quota('u1', '250 MB');
     set_role_quota
    ----------------
    
    (1 row)
說明

磁盤配額以MB、GB、TB、PB為單位。 當設置為-1時,代表取消磁盤配額限制。Diskquota在查詢前與磁盤配額和黑名單比較,當超過配額時自動加入黑名單或本身在黑名單中便取消執(zhí)行,屬于軟限制。

示例:對Schema進行磁盤配額管理

  1. 創(chuàng)建數(shù)據(jù)庫與Schema 。

    createdb myadbpg    
    psql myadbpg
    
    CREATE EXTENSION diskquota;        #啟動diskquota 
    CREATE EXTENSION                            
    
    CREATE SCHEMA adbpg1;
    CREATE SCHEMA
  2. 設置Schema磁盤配額。

    SELECT diskquota.set_schema_quota('adbpg1', '1MB');     
     set_schema_quota
    ------------------
    
    (1 row)
  3. 創(chuàng)建表并插入數(shù)據(jù)。

    SET search_path TO adbpg1;
    SET
    
    CREATE TABLE a(i int);    
    
    INSERT INTO a SELECT generate_series(1,100);
    INSERT 0 100
    
    INSERT INTO a SELECT generate_series(1,10000000);
    INSERT 0 10000000
  4. 超出配額時發(fā)生錯誤,并禁止插入。

    INSERT INTO a SELECT generate_series(1,100);
    ERROR:  schema's disk space quota exceeded with name:adbpg1
  5. 通過將配額設置為-1取消adbpg1的磁盤配額限制,然后再次插入少量數(shù)據(jù)。

    INSERT命令之前的5秒鐘睡眠可確保在運行命令之前更新磁盤配額表大小數(shù)據(jù)。

    SELECT diskquota.set_schema_quota('adbpg1', '-1');
     set_schema_quota
    ------------------
    
    (1 row)
    SELECT pg_sleep(5);
     pg_sleep
    ----------
    
    (1 row)
    
    INSERT INTO a SELECT generate_series(1,100);
    INSERT 0 100

查看磁盤使用情況

  • 查看Schema的磁盤使用情況。

    SELECT * FROM diskquota.show_fast_schema_quota_view;
     schema_name | schema_oid | quota_in_mb | nspsize_in_bytes
    -------------+------------+-------------+------------------
     adbpg1      |      16806 |        2000 |        721321984
    (1 row)
  • 查看Role的磁盤使用情況。

    SELECT * FROM diskquota.show_fast_role_quota_view;
     role_name | role_oid | quota_in_mb | rolsize_in_bytes
    -----------+----------+-------------+------------------
     u1        |    16810 |         250 |                0
    (1 row)
說明

啟用Diskquota后經(jīng)AnalyticDB PostgreSQL版官方測試 ,有低于2%-3%的性能損失。