為了保證數據的完(wan)整(zheng)性,以及(ji)降(jiang)低對(dui)(dui)原實(shi)例(li)的性能影響,在進行庫(ku)表(biao)(biao)級時(shi)(shi)間(jian)點恢(hui)(hui)復(fu)備份(fen)(fen)時(shi)(shi),首(shou)先將選中時(shi)(shi)間(jian)點的全量(liang)數據和增量(liang)數據在后(hou)臺恢(hui)(hui)復(fu)至一個臨(lin)時(shi)(shi)實(shi)例(li),然(ran)后(hou)自動導(dao)出用(yong)戶需(xu)要恢(hui)(hui)復(fu)的庫(ku)表(biao)(biao),再將這些庫(ku)表(biao)(biao)恢(hui)(hui)復(fu)至原實(shi)例(li)。由于需(xu)要對(dui)(dui)實(shi)例(li)的所(suo)有數據進行備份(fen)(fen)及(ji)恢(hui)(hui)復(fu)操作,對(dui)(dui)于數據量(liang)較大的實(shi)例(li),所(suo)需(xu)時(shi)(shi)間(jian)較長(chang),請耐(nai)心等待。
通(tong)過庫表(biao)級(ji)時間點(dian)恢(hui)復數(shu)據(ju)(ju),會在實(shi)(shi)例上新生(sheng)成恢(hui)復后(hou)的(de)庫表(biao),不會導(dao)致實(shi)(shi)例數(shu)據(ju)(ju)被覆(fu)蓋,您可以(yi)根據(ju)(ju)需(xu)要恢(hui)復庫表(biao)。
使用須知
- 目前,DDS 4.0版本的副本集實例支持庫表級時間點恢復。
- 開啟自動備份策略后,才允許按時間點恢復庫表數據。
- 恢復成功后,默認會在實例上生成以“原表名_bak_時間戳”命名的新表,如果有索引,索引的ns會相應的變成“原庫名.原表名_bak_時間戳”,請您根據實際情況對表進行重命名或者后續的數據處理。
- 由于會在原實例上生成恢復后的新庫表,請您確保原實例磁盤空間充足。
- “庫名.表名”長度小于等于120字符,“庫名.表名.索引名”長度小于等于128字符,請您確保恢復后的庫表名和索引名長度符合要求,避免恢復失敗。
- 請您確保恢復后的表名和已有表名不同,避免恢復失敗。
- 選擇表級恢復,如果對應時間不存在該表,則系統會創建一個空表,選擇庫級恢復,則不會創建該表。
操作步驟
步(bu)驟 1 登錄(lu)管理控制(zhi)臺。
步驟 2 單擊管理控制臺左上方的
,選擇區域和項目。
步驟 3 在頁面左上角單擊
,選擇(ze)“數(shu)據(ju)庫(ku)(ku) > 文檔(dang)數(shu)據(ju)庫(ku)(ku)服務 DDS”,進入文檔(dang)數(shu)據(ju)庫(ku)(ku)服務信息(xi)頁面。
步驟 4 在“實(shi)(shi)例管理(li)”頁面,選擇副本集實(shi)(shi)例,單(dan)擊(ji)實(shi)(shi)例名稱。
步驟 5 在(zai)左側導航(hang)樹,單擊“備份恢(hui)復(fu)”。
步驟(zou) 6 在“備(bei)份恢復”頁面(mian),單擊“庫表(biao)級時間點(dian)恢復”。
步驟 7 在彈出框中(zhong),填選(xuan)相關信息。
庫表信息
| 配置項 | 說明 |
|---|---|
| 恢復日期 | 實例自動備份所在的日期。 |
| 可恢復的時間區間 | 指定自動備份日期下,可恢復的時間區間。 |
| 基準時間點 | 指定可恢復的時間區間下,自動全量備份的時間點。 |
| 基準可恢復的時間區間 | 基于該自動全量備份,能夠將庫表恢復到的時間區域。 |
| 選擇恢復庫表 | 在左側庫表區域,顯示查詢到的基于基準時間點的自動全量備份下的庫表。勾選左側庫表名,庫表信息將同步到右側區域。 |
| 要恢復到的時間點 | 指定基準可恢復的時間區間下的某一時間點。 |
| 自定義庫表 | 您可以根據需要添加自定義庫表。 由于系統庫不可進行恢復,庫名不能為系統庫admin和local。 庫名不能包含特殊字符"./ 和空格。 表名不能包含特殊字符“ $”,不能以“system.”作為前綴。 “庫名.表名”長度小于等于120字符,“庫名.表名.索引名”長度小于等于128字符,請您確保恢復后的庫表名和索引名長度符合要求,避免恢復失敗。 請您確保恢復后的表名和已有表名不同,避免恢復失敗。 恢復成功后,默認會在實例上生成以“原表名_bak_時間戳”命名的新表,如果有索引,索引的ns會相應的變成“原庫名.原表名_bak_時間戳”,請您根據實際情況對表進行重命名或者后續的數據處理。 對于已添加的自定義庫表,建議您將該類庫表對應的恢復到時間點,區別于同步到右側的庫表對應的恢復到時間點,設置為不同時間值。系統將按時間點恢復庫表數據到該自定義庫表。 |
| 恢復類型 | 選擇將數據恢復到庫或恢復到表。選擇表級恢復,如果對應時間不存在該表,則系統會創建一個空表,選擇庫級恢復,數據將單獨恢復到庫,不會創建該表。 |
單擊“確定(ding)”,開(kai)始(shi)恢(hui)復庫(ku)表(biao)數據。恢(hui)復后的新庫(ku)表(biao)數據與(yu)所選(xuan)要(yao)恢(hui)復到時間點(dian)下庫(ku)表(biao)數據一致。
選擇恢復庫表


步驟 8 在“實例(li)管理”頁面,可(ke)查看該(gai)實例(li)狀態為“恢復(fu)中(zhong)(zhong)”,恢復(fu)過程(cheng)中(zhong)(zhong)該(gai)實例(li)業務(wu)不中(zhong)(zhong)斷(duan)。
步驟(zou) 9 恢(hui)復成功后,您可根(gen)據實(shi)際情況(kuang)對庫表進行(xing)處理。
如果您的業務需要繼續使用原先的庫表名,可以通過rename操作,備(bei)份原庫(ku)表,并將您的業務(wu)切(qie)換(huan)到恢復(fu)后(hou)的庫(ku)表。確保業務(wu)正常后(hou),再刪除原庫(ku)表。
重命(ming)名單個庫表示例:
db.adminCommand({renameCollection: "db1.test1", to: "db2.test2"})
該命令(ling)表示(shi)將db1庫(ku)下的表test1移動到(dao)db2下,并(bing)重命名為(wei)test2。