全部產品
Search
文件中心

ApsaraDB for MongoDB:按Key閃回

更新時間:Aug 29, 2025

ApsaraDB for MongoDB執行個體支援了按Key閃回功能,您可以對指定的資料集合發起備份,便於後續因系統漏洞或故障而引起的小部分資料錯亂或意外丟失時,根據資料的閃回Key (預設為_id)可對這部分資料進行回檔,快速恢複資料。

說明

按Key閃回功能於2024年02月26日正式開啟公測。公測期間不收費。公測期間暫不承諾SLA。

前提條件

  • 執行個體類型為複本集或分區叢集。

  • 執行個體儲存類型為雲端硬碟版。

  • 執行個體大版本為MongoDB 5.0及以上。

  • 按Key閃回功能目前處於公測階段,如需使用,請聯絡支援人員申請開通。

注意事項

開啟按Key閃回功能會對執行個體效能產生一定影響,例如執行個體的TPS效能最高可能下降3%。

說明

上述執行個體效能影響僅供參考,具體以實際資料為準。

功能說明

功能

功能子項

說明

任務配置

閃回任務配置完成後生效時間

10分鐘。

閃回資料保留時間

1~7天。

閃回備份資料可恢復

開啟閃回備份任務後到目前時間。

在閃回備份保留的有效期間內,您可以根據指定的時間和行ID,進行按Key閃回。

閃回備份操作

支援的閃回操作

  • 支援恢複UPDATE和DELETE操作。

  • 不支援對INSERT操作插入的資料進行復原刪除。

  • 不支援DDL或其他動作導致的資料變更。

  • 如果資料沒有變化,不支援閃回到目前狀態。

支援的按行索引類型

  • 支援_id預設主鍵。

  • 支援使用者自訂一般索引。

支援索引的資料類型

目前僅支援以下資料類型:

  • String

  • Double

  • ObjectId

  • Boolean

  • Date

  • 32-bit integer

  • 64-bit integer

  • Decimal128

索引欄位

欄位名稱只能包括字母、數字或底線(_),且只能以字母或底線(_)開頭

索引的長度和個數

單個索引欄位長度為128,索引欄位的數量限制是10個。

查詢時支援的最大索引值大小

16KB,超過16KB的資料查詢時可能會查不到。

查詢結果裡支援的單行資料大小

無限制。

閃回備份恢複

單次閃回恢複的最大行數

1000行,超過1000行會被截斷。

預覽閃回資料

恢複索引key預覽的長度需小於48KB。

庫表名設定

庫名加表名長度需小於254。

例如,test庫table表,展示為test.table,庫名加表名的長度為10。

費用說明

公測期間不收費。

開啟閃回備份

  1. 訪問MongoDB複本集執行個體列表MongoDB分區叢集執行個體列表,在上方選擇資源群組和地區,然後單擊目標執行個體ID。

  2. 在目標執行個體頁面的左側導覽列,單擊備份與復原

  3. 單擊按key閃回頁簽。

  4. 單擊閃回備份設定

    說明

    執行該操作後可能會提示許可權不足,您需要輸入帳號及密碼(該帳號必須擁有待閃回庫的讀寫權限)以繼續操作。關於資料庫帳號及使用權限設定,請參見建立資料庫帳號並添加許可權

  5. 閃回備份設定側邊框中,配置以下資訊後,單擊確定

    參數

    說明

    備份保留時間

    備份檔案保留的天數,取值範圍為1~7。

    例如,您設定了1天的保留時間,系統會在產生閃回備份檔案後開始計時,並且在1天后自動刪除該備份檔案。

    選擇需要備份的表

    選擇需要備份的表。

    預覽並設定需要備份的表中的索引

    輸入需要備份的索引項目(與getIndexes()獲得的索引無關,指需要備份的行ID),預設為_id,多個索引間用逗號(,)分隔。

    一般索引的數量最多支援設定10個。

  6. 閃回備份設定修改對話方塊中,單擊確定

重要

開啟閃回備份需要10分鐘生效時間,在閃回備份生效後,寫入的資料才能被閃回。

發起閃回任務

  1. 備份與恢複按key閃回頁簽,單擊目標備份任務右側的操作列的按時間點閃回

  2. 單擊備份工作清單側邊框中,配置以下資訊後,單擊確定

    參數

    說明

    選擇要恢複的表

    無需修改。

    建立暫存資料表

    用於儲存閃回資料的暫存資料表。

    選擇要恢複的時間點

    選擇需要閃回到的備份時間點。

    說明

    上一步開啟閃回備份需要10分鐘生效時間,生效後才能選擇要恢複的時間點。

    填寫要恢複的key

    • 多組主鍵之間需要使用分號(;)分隔,表示或的關係。

      例如,索引為_id,需要恢複的值為key1和key2,那麼您需要在輸入框中輸入key1;key2,下方的恢複索引key預覽會顯示[ { "_id": "key1" }, { "_id": "key2" } ]

    • 一組主鍵之間需要使用逗號(,)分隔,表示且的關係。支援指定某一列進行查詢,文法為column=value

      例如,輸入框中輸入key1;test1=v1,key2,下方的恢複索引key預覽會顯示[ { "_id": "key1" }, { "test1": "v1", "_id": "key2" } ]

    • 如果主鍵中存在逗號(,)或者分號(;),請使用逸出字元(\)對其轉義。

      例如,主鍵為a,b,name您需要在輸入框中傳入a\,b

    說明
    • 要恢複的key需要包含在閃回備份設定的“需要備份的索引項目”中。

    • 該參數如果傳入的值過長,系統會自動拆分為多個閃回任務,該情況不會對閃回備份產生影響。

  3. 閃回資料預覽對話方塊中,選中需要閃回的資料,單擊確定

    • 針對(;)分割的主鍵,如 test1=v1; test2=v2 ,會展示滿足test1=v1的記錄項與滿足test2=v2的記錄項。

    • 針對(,)分割的主鍵,如果存在_id索引,如 key,test1=v1,test2=v2,會展示滿足_id=key 的記錄項,忽略其他索引test1,test2;如果不存在_id索引,如 test1=v1,test2=v2,會展示滿足 test1=v1 且滿足 test2=v2 的記錄項。

發起閃回任務後,閃回的資料會儲存在暫存資料表中,在暫存資料表的有效期間內(即開啟閃回備份功能時設定的備份保留時間),您可以將暫存資料表中的資料恢複至原表中。

恢複至原表

  1. 備份與恢複頁面單擊按key閃回頁簽。

  2. 單擊恢複至原表,可以恢複最近一條閃回任務;也可以單擊閃回歷史記錄,查看所有的閃回備份任務,並選擇需要閃回的資料恢複至原表。

  3. 恢複至原表對話方塊中,單擊確定

    說明
    • 執行該操作將會把暫存資料表中的資料恢複到原表中,原表中的資料會被覆蓋。

    • 覆蓋操作約耗時1~2分鐘,期間請不要額外寫入相同的Key,否則恢複後的資料可能不符合預期。

  4. 可以在恢複任務記錄中,查看所有的閃回恢複任務。

關閉閃回備份

關閉指定備份任務

備份與恢複按key閃回頁簽,單擊目標備份任務右側的操作列的關閉

關閉所有備份任務

備份與恢複按key閃回頁簽,單擊頁面左上方的關閉閃回備份

重要

關閉閃回備份後,之前的閃回備份資料將不可用。

使用樣本

第一步:開啟閃回備份

  1. 查看當前庫表test1.test001的資料。

    image

  2. 設定本次備份保留時間為1天,需要備份的表為test001,選擇備份的索引為_id,name

    image

  3. 開啟後,等待10分鐘後閃回備份生效,再進行下一步。

第二步:發起閃回任務

  1. 2025-08-14T19:27(UTC+8)test.test001表進行修改。

    修改一條{name=xiaoli}的文檔,設定{age=29};刪除一條{name=xiaomi}的文檔。

    image

  2. 查看當前庫表test1.test001的資料。

    可以看到上述修改已生效。

    image

  3. 控制台發起閃回任務。

    1. 選擇恢複的表為 test001,設定暫存資料表名稱為 temp_flashback_test003, 選擇要恢複的時間點為資料修改之前的時間 2025-08-14T19:16(UTC+8),填寫要恢複的索引項目為 689d5715fb3153809d4894a1;name=xiaoli,可以看到恢複索引預覽為[{"_id":"689d5715fb3153809d4894a1"},{"name":"xiaoli"}]

      image

    2. 點擊確定,可以預覽閃回資料。

      如圖可以看到 2025-08-14T19:27(UTC+8) 的修改和刪除記錄(對應閃回操作為修改和新增)。

      image

    3. 勾選要發起閃回的資料,點擊確定按鈕,發起閃回任務。

      閃回任務如下展示,在閃回歷史記錄中可以看到多條閃回歷史。

      image

  4. 查看暫存資料表資料。

    針對[{"_id":"689d5715fb3153809d4894a1"},{"name":"xiaoli"}]閃回的暫存資料表資料如下。

    image

第三步:恢複至原表

  1. 單擊恢複至原表,可以恢複最近一條閃回任務。

    image

    或者可以點擊“閃回歷史記錄”,選擇一條閃回任務進行恢複。

    image

  2. 選擇最近的一條閃回任務發起恢複。

  3. 單擊“恢複任務記錄” 可以查看恢複任務的進度。

    image

  4. 查看當前庫表test1.test001的資料。

    資料已恢複到2025-08-14T19:27(UTC+8)修改前。

    image