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

表回收站

由于DDL操作無法回滾,如果開發或運維人員誤操作了數據庫(例如DROP TABLE),可能會導致數據丟失。PolarDB支持回收站(Recycle Bin)功能,用于將刪除的表臨時轉移到回收站,并且您可以自定義刪除表的保留時間,方便您找回數據。

重要

開啟表回收站會占用一定量存儲空間并產生存儲費用,請您根據業務情況設置“回收站內數據的最長保留周期”。

前提條件

表回收站功能僅支持如下版本,您可以參見內核版本說明確認集群版本。

  • PolarDB MySQL版8.0.1版本且修訂版本為8.0.1.1.2及以上。

  • PolarDB MySQL版8.0.2版本且修訂版本為8.0.2.1.0及以上。

Recycle Bin原理介紹

  • 回收和清理機制

    • 回收機制

      當執行DROP TABLE語句來刪除數據表,或執行DROP DATABASE語句來刪除數據庫時,PolarDB只會保留相關的表對象,并將表對象移動到專門的Recycle Bin目錄中。其它對象的刪除策略如下:

      • 與表無關的對象,根據操作語句決定是否保留,不做回收。

      • 對于可能會修改表數據的表附屬對象(如TriggerForeign key),進行刪除操作。但Column statistics不會被刪除,而是隨表進入回收站。

    • 清理機制

      回收站會啟動一個后臺線程,來異步清理超過recycle_bin_retention時間的表對象。在清理回收站中表的時候,如果遇到大表,系統會再啟動一個后臺線程異步刪除大表。

  • 權限

    PolarDB集群啟動時,系統會初始化一個數據庫__recycle_bin__,作為回收站使用的專有數據庫。__recycle_bin__是系統級數據庫,您無法直接進行修改和刪除。

    對于回收站內的表,雖然您無法直接執行DROP TABLE語句,但是可以使用call dbms_recycle.purge_table('table name');對表進行清理。

    說明

    執行清理操作的數據庫賬號在原表和回收站表都需要具有DROP權限。

  • 回收站表命名規則

    Recycle Bin會從不同的數據庫中回收表對象到__recycle_bin__數據庫中。因此需要定義如下的表名格式,用來保證目標表名的唯一性:

    "__" + <Storage Engine> + <SE private id> 

    參數說明如下:

    參數

    說明

    Storage Engine

    存儲引擎名稱。

    SE private id

    存儲引擎為每一個表生成的唯一值。例如在InnoDB引擎中就是table id

  • 獨立回收

    例如您可以在主節點上設置回收站內數據的最長保留周期為7天;在只讀節點上設置回收站內數據的最長保留周期為14天。

    說明

    設置不同的回收站內數據的最長保留周期,將導致集群的存儲空間占用差別較大。

注意事項

  • 如果回收站數據庫__recycle_bin__和待回收的表在不同的文件系統中,執行DROP TABLE語句將會搬遷表空間文件,耗時較長。

  • 如果表空間為General,可能會存在多個表共享同一個表空間的情況。當回收表空間中其中一張表的時候,不會搬遷相關的表空間文件。

費用說明

表回收站功能所使用的空間屬于集群存儲空間的一部分,需要收取存儲費用,詳情請參見標準版存儲空間計費規則企業版存儲空間計費規則

使用方法

您可以通過調整參數loose_recycle_bin來控制表回收站功能的開啟與關閉。開啟表回收站功能后,將根據回收機制進行數據的回收。同時,表回收站功能的清理機制默認為關閉狀態。建議您開啟清理機制,以避免產生較多文件占用存儲空間并導致額外費用的產生。

說明

參數loose_recycle_scheduler用于控制表回收站的清理機制。若未啟用清理機制,則將忽略參數loose_recycle_bin_retention的設置,數據將被長期保留。

參數

級別

說明

loose_recycle_bin

Global、Session

表回收站功能開關。取值范圍如下:

  • ON:打開表回收站功能開關。

  • OFF(默認值):關閉表回收站功能開關。

loose_recycle_scheduler

Global

回收站的異步清理任務線程開關。取值范圍如下:

  • ON:打開回收站的異步清理任務線程開關。

  • OFF(默認值):關閉回收站的異步清理任務線程開關。

loose_recycle_bin_retention

Global

回收站內數據的最長保留周期。取值范圍:86400~1209600,單位為秒。默認值為604800(即7天)。

重要

loose_recycle_scheduler開啟后,當前參數設置的保留周期才生效,否則將長期保留。

管理Recycle Bin

Recycle Bin提供了如下SQL語句來管理Recycle Bin:

  • show_tables

    查看回收站中所有臨時保存的表。

    call dbms_recycle.show_tables()

    示例:

    call dbms_recycle.show_tables();
    +-----------------+---------------+---------------+--------------+---------------------+---------------------+
    | SCHEMA          | TABLE         | ORIGIN_SCHEMA | ORIGIN_TABLE | RECYCLED_TIME       | PURGE_TIME          |
    +-----------------+---------------+---------------+--------------+---------------------+---------------------+
    | __recycle_bin__ | __innodb_1063 | product_db    | t1           | 2019-08-08 11:01:46 | 2019-08-15 11:01:46 |
    | __recycle_bin__ | __innodb_1064 | product_db    | t2           | 2019-08-08 11:01:46 | 2019-08-15 11:01:46 |
    | __recycle_bin__ | __innodb_1065 | product_db    | parent       | 2019-08-08 11:01:46 | 2019-08-15 11:01:46 |
    | __recycle_bin__ | __innodb_1066 | product_db    | child        | 2019-08-08 11:01:46 | 2019-08-15 11:01:46 |
    +-----------------+---------------+---------------+--------------+---------------------+---------------------+
    4 rows in set (0.00 sec)

    參數說明如下:

    參數

    說明

    SCHEMA

    回收站的Schema。

    TABLE

    進入回收站后的表名。

    ORIGIN_SCHEMA

    原始表的Schema。

    ORIGIN_TABLE

    原始表的表名。

    RECYCLED_TIME

    回收時間。

    PURGE_TIME

    預計在回收站中被清理的時間。

  • purge_table

    手動清理回收站中的表。

    call dbms_recycle.purge_table('TABLE_NAME')
    說明
    • TABLE_NAME為進入回收站后的表名。

    • 執行清理操作的數據庫賬號在原表和回收站表都需要具有DROP權限。

    示例:

    mysql> call dbms_recycle.purge_table('__innodb_1063');
  • restore_table

    快速恢復回收站內的表。

    call dbms_recycle.restore_table('RECYCLE_TABLE','DEST_DB','DEST_TABLE');
    說明
    • PolarDB MySQL版8.0版本集群版的Revision version為8.0.1.1.12或以上才支持通過restore_table命令,快速恢復回收站內的表。您可以參見查詢版本號確認集群版本。

    • 執行此命令需要有數據庫__recycle_bin__的ALTER_ACL和DROP_ACL權限,以及目標表的CREATE_ACL和INSERT_ACL權限。

    參數說明如下:

    參數

    說明

    RECYCLE_TABLE

    需要恢復的表在回收站內的表名。

    說明

    如果僅傳入此參數,會恢復到原始表。

    DEST_DB

    為恢復后的表指定目標數據庫。

    DEST_TABLE

    為恢復后的表指定新的表名。

    示例:

    call dbms_recycle.restore_table('__innodb_1063','testDB','testTable');

聯系我們

若您對DDL操作有任何疑問,可通過釘釘搜索群號入群咨詢。您可以直接@群內專家,并附上您要咨詢的問題;同時群內也有PolarDB MySQL版小助手24*7小時在線回答您的問題。釘釘群號:15375044501。