Obsidian / 備份設計和恢復確認

決定剩餘的範圍和可以恢復的狀態

Obsidian的備份設計
Git・File Recovery・單獨儲存的作用

本頁面由日文原文機器翻譯而成。 閱讀日文原文

在丟失筆記之前,決定要留下哪些正文和設定,從哪個位置可以返回。 透過作者製作的小例子,確認了Git的舊版本、File Recovery的舊正文、保管庫外的副本的恢復。 將三種方法所發揮的作用和在這個練習中沒有確認的範圍分開。

將“恢復到以前的版本”和“其他儲存場所”分開設計

在備份計劃中,決定留下什麼,恢復到哪個時間點,儲存目的地在哪裡,如何確認實際恢復的內容。 僅僅因為有同步設定,或者現在能看到檔案,就不知道必要的舊版和儲存範圍是否齊全。

  1. Git的過去版commit中包含的一個正文,提取到別名檔案
  2. File Recovery從應用程式的本地歷史中選擇舊的正文,恢復並重新顯示
  3. 保管庫外的影印件選擇的三個Markdown,在新的其他地方開啟

三個都是實際確認的區域性例子。 保管庫外的副本也不是在同一檔案系統中使用獨立物理裝置或雲的結果。 不把有三種方法作為儲存在三個獨立的媒介中的證據來處理。

首先決定留下的範圍和儲存地址

將自己的保管庫中需要的東西列為列表,並連線到在復原處確認的專案。 以下是用於計劃的專案,不是這個練習儲存、恢復所有內容的表格。

決定的專案確認的內容這次的實演
筆記正文需要的Markdown的名字、相對路徑、哪個時間點的正文三個副本恢復,一個Git履歷,另一個File Recovery筆記
附件和參考影象、PDF等的儲存地點和可以從正文中參考附件未驗證。 內部連結只有複製例中的三個Markdown
設定・外掛.obsidian的設定,包含必要的外掛及其資料的範圍設定和外掛資料的備份、恢復尚未驗證
儲存地點與原來的儲存裝置的獨立性、可以讀取的許可權、保管方法保管庫外也是同樣的執行檔案系統。 獨立媒體、雲未驗證
頻率和保持想要恢復的時間點,保留的舊版,刪除舊版的方針單發副本和兩個Git commit,File Recovery的兩次自然儲存。 長期保留和定期運用尚未驗證
恢復練習其他復原目的地、正文、設定、附加、連結的核對步驟和日程確認選擇的正文、相對路徑、真實連結、重新顯示。 恢復所需時間和故障時的恢復未測量

還應按自己的用途確定“需要保留到什麼時間點的更改”以及“恢復所需的時間”。本次沒有測量是否達到 RPO/RTO 或恢復時間目標。確定製作副本的頻率,與確認能否將舊版本保留一定時間,是兩項獨立的檢查。

1。 Git:將commit的正文之前的版本,取出別名

Git的例子,以一個練習用Git履歴メモ.md為物件。 第一個正文commit,在實際的Obsidian編輯器中更改並儲存確認專案後,製作了第二個commit。 在此基礎上,將上一個commit的實blob取出到新的Git復元メモ.md,用實軟體開啟。 保留變更後的原始檔案。

兩個commit有親子關係,本文的blob也不同。 在Git上追蹤的只有這個Markdown,恢復目的地的新筆記,File Recovery用筆記,設定未被追蹤。 並不是整個保管庫都進入了履歷的結果。

開啟Git恢復備忘錄,在過去的Git履歷備忘錄中顯示閱讀儲存前的正文的專案
用新的別名筆記本,實際顯示以前的commit的正文。 上部的檔名和正文的標題不同,是因為沒有改變正文,而是用別名取出來。 開啟原始影象

返回的實Markdown的全文。 演示之前的blob、恢復檔案、分發原件是相同的98位元組的UTF-8。

# Git履歴メモ

著者作成の練習です。

- 確認項目: 保存前の本文を読む。

在手邊確認時,首先讀取目標的狀態和履歷,選擇想要返回的commit和路徑。 接下來是顯示讀取形式的例子。 <commit>替換為自己的履歷值。

git status --short -- "Git履歴メモ.md"
git log --oneline -- "Git履歴メモ.md"
git show "<commit>:Git履歴メモ.md"

取出的目的地是選擇可以與原來的筆記本區分的未使用的新名字,閱讀舊的正文後決定採用的內容。 這個演示的Git操作是本地shell,沒有嘗試Obsidian Git外掛、remote、push/pull、自動commit、其他終端的反映。 不處理沒有包含在commit中的檔案可以恢復。

2。 File Recovery:選擇本地歷史的舊正文並恢復

補充演示的設定畫面是英文UI。 實際上啟用了Settings → Core plugins → File recovery的開關,開啟了File recovery的設定。 Snapshot interval的初始值5分,為了驗證暫時改為0.05分,之後改為0.5分。 History length顯示為7天,但是沒有驗證七天的保留。

File recovery設定畫面的Snapshot interval是0.5,History length是7,顯示View按鈕
實際設定UI。 0.5分是這次練習中更改的數值。 沒有作為預設值或推薦設定提出。 開啟原始影象

0.5分鐘設定的是歷史記錄之間的最短間隔,不能理解為一定每30秒儲存一次。該版本的核心有一個60秒的待處理儲存重試計時器。本次確認了:在實際編輯器中儲存的A、B進入待處理狀態,然後由正常執行的計時器加入歷史記錄。測試者沒有寫入歷史資料庫,也沒有呼叫建立歷史記錄的API。

  1. A在實際編輯器中儲存。 輸入包含“先確認留下的正文”的A。 核對了儲存檔案,確認了保留狀態和還沒有A的履歷。
  2. 確認自然儲存。 大約60秒後A進入了履歷。 接下來對B進行實際編輯並儲存,大約58秒後的另一個自然儲存進入了B。 兩次觀測不能保證普遍的所需時間。
  3. 在畫面上選擇舊的正文。 按View搜尋恢復備忘錄,分別選擇最新的B和以前的A閱讀了正文。
  4. 恢復後重新顯示。 在選擇A的狀態下按下了實際的Restore。 儲存檔案與A一致,移動到其他筆記後,在實際檔案瀏覽器中重新開啟恢復備忘錄也是同樣的正文。
選擇File Recovery的最新B行,顯示確認有意變更後的正文的文章
在實畫面中選擇最新B。 作者製作變更後的正文。 開啟原始影象
選擇File Recovery前面的A行,顯示確認先留下的正文的文章和Restore按鈕
在實際畫面中選擇了前面的A,恢復了本文。 開啟原始影象

UI顯示A為“44 B”,B為“47 B”。 用於核對分發檔案的實際UTF-8是A是110位元組,B是119位元組。 UI的顯示值沒有作為UTF-8的byte數使用。 Restore之後,恢復的A也被新增到了新的履歷行中。 這個附加行是恢復操作的結果,與前面A・B的自然儲存證據有區別。

在File Recovery中恢復後重新開啟恢復備忘錄,顯示確認先留下的正文的文章
用實檔案瀏覽器重新開啟的A。 復原前選擇的正文、儲存原件、重新顯示後的SHA256一致。 開啟原始影象

復原的A的實Markdown全文。 顯示的舊A和最終儲存的檔案是相同的110位元組。

# 回復メモ

著者作成の練習です。

- 保存する項目: 先に残した本文を確認する。

這個結果是從這次本地profile中存在的履歷中返回的正文。 File Recovery的履歷不是可以儲存到獨立的備份裝置的結果。 沒有嘗試過profile的轉移、應用程式的重新安裝、歷史DB損壞、長期保留、刪除的檔案的恢復。

3。 保管庫外的影印件:在其他地方確認正文、層次、連結

在原始副本演示中,將作者製作的三個Markdown儲存在保管庫外,回到與原始不同的新復原處。 從索引.md到ノート/観察メモ.md和ノート/確認メモ.md的連線構成。 保留了檔名和相對路徑。

索引.md
ノート/
  観察メモ.md
  確認メモ.md

複製完成後,驗證者僅在自己的練習用筆記庫中修改了一份正文並刪除了一條筆記,副本中的三份原始正文均予以保留。恢復在另一個新位置進行,沒有覆蓋原有狀態。讀者練習時也可以保留原始筆記,另行準備練習副本和恢復位置。

其他恢復目的地的觀察備忘錄中顯示著複製前的正文和確認備忘錄的連結
複製前的觀察備忘錄的正文,在另一個復原處實際顯示。 三個復原Markdown的初始原件和bytes/hash一致。 開啟原始影象

這是恢復的觀察備忘錄的全文。

# 観察メモ

コピー前の本文です。これは実際の利用者のデータではありません。

関連する確認は [[ノート/確認メモ|確認メモ]] に残します。

點選從索引到確認備忘錄的真實連結,原來刪除的物件顯示在恢復目的地。“ 按“返回索引”可以返回索引。 之後,從真實檔案瀏覽器重新開啟索引,確認了三個儲存Markdown沒有變化。

在恢復目的地的確認備忘錄中顯示確認原始文章和連結的文章以及返回索引的連結
從恢復目的地的索引中透過真實連結開啟的確認備忘錄。 正在確認相對路徑和連結。 開啟原始影象
重新開啟復原目的地的索引,顯示著三個筆記和兩個內部連結
從實際檔案瀏覽器重新顯示索引。 儲存的三個正文沒有改變。 開啟原始影象

索引的實Markdown也刊登全文。

# 索引

著者作成の復元練習です。

- [[ノート/観察メモ|観察メモを開く]]
- [[ノート/確認メモ|確認メモを開く]]

物件只有三個Markdown,沒有複製設定和附件。 副本在保管庫外也同樣在執行檔案系統中。 獨立的儲存裝置、雲、故障、災害的確認可以恢復,是備份計劃中單獨留下的專案。

在自己的保管庫裡練習復原的順序

  1. 列出要儲存的專案。決定只儲存 Markdown,還是同時包含設定、附件及所需的歷史記錄,並記下檔名和相對路徑。
  2. 確認儲存地址和舊版。 確認留在哪裡,是否獨立於原來的裝置,是否保留想要恢復的時間點的版本。
  3. 保留元在別的地方嘗試。 在新的恢復目的地,讀取是否回到需要選擇的正文、設定、附加的狀態。
  4. 確認連結和重新顯示。 從正文中開啟參考地址,重新開啟檔案,核對儲存的內容。
  5. 留下結果和未確認專案。 記錄使用的版本、儲存範圍、儲存地點、恢復的時間點、需要的時間,決定定期確認的日程。

這是讀者自己計劃的步驟。 讀者的保管庫、定期備份、同步服務、獨立媒體不能透過這個練習進行驗證。 調查與同期的組合的入口是Obsidian的同步方式指南。

儲存原件,比較版本和正文

八個Markdown是各個演示的儲存原件。 複製例子中的三個以原來的日語名字儲存,觀察備忘錄、確認備忘錄放在ノート 資料夾內。 瀏覽器不會自動建立那個資料夾。 比較用檔案和Git・File Recovery的例子用別名儲存,在不覆蓋三個恢復集的地方進行比較。

演示・狀態分發原件和儲存名
複製恢復:索引.md索引.md
複製恢復:ノート/観察メモ.md観察メモ.md
複製恢復:ノート/確認メモ.md確認メモ.md
比較專用:變更後的觀察備忘錄変更後-観察メモ.md
Git:從過去的blob恢復到別名的正文Git復元メモ.md
Git:第二個commit變更後的正文Git変更後-履歴メモ.md
File Recovery:舊的A(與最終恢復一致)FileRecovery旧版-回復メモ.md
File Recovery:變更後BFileRecovery変更後-回復メモ.md

英文字母的分發URL是區分狀態的別名。 複製例的正文內wikilink保留日語的原始相對路徑。 如果原封不動地放英文名字的話,也會確認連結。 沒有將分發檔案匯入到讀者實際應用程式的操作和Git的履歷本身的分發。

常見問題

如果同步在移動的話,不需要確認備份嗎?
僅憑設定了同步的事實,不知道能不能回到以前的正文,或者有沒有獨立的儲存處。 確認使用方式的履歷、可恢復的範圍、儲存地點。 這個練習沒有使用同步,也沒有嘗試恢復Obsidian Sync和iCloud。
Git和File Recovery,實際使用確認了嗎?
在Git中,製作了一個練習用Markdown的兩個commit,將以前的blob放回新的別名檔案,實際用Obsidian讀取。 在File Recovery中,用實際編輯器儲存的A・B透過自然的計時器進入歷史記錄,在螢幕上選擇舊的A進行Restore,確認儲存和重新顯示。 自動Git備份、remote、長期保留尚未驗證。
您確認了整個保管庫和故障時的恢復嗎?
複製例子只有三個Markdown,不包括設定和附加。 儲存地址也是同一個執行檔案系統內。 沒有嘗試過獨立的物理裝置、雲、故障和災難、歷史保留期、整個保管庫的恢復。 將Git和File Recovery的區域性恢復結果和保管庫整體的恢復分開確認。
分發Markdown,以什麼名字和位置儲存?
複製例子放置索引.md,ノート 資料夾內放置観察メモ.md和確認メモ.md。 瀏覽器不會自動建立資料夾。 變更後的比較檔案,Git和File Recovery的例子以可區分的別名儲存,不覆蓋恢復集。 使用英文的分發名稱時,也請確認本文的連結。

驗證方法和結果範圍

  • 實際應用:Linux版Obsidian 1.13.7。 在設定的General畫面中確認app/installer,使用作者製作的日語筆記。 沒有使用社群外掛。
  • 複製示例:選擇的Markdown的準備、複製、練習用正文的更改、刪除、複製到其他恢復目的地是shell操作。 用實際GUI確認了正文、連結、重新顯示。
  • Git:seed和本地Git的commit/過去的blob的取出是shell。 變更在實際編輯器中儲存,從實際檔案瀏覽器中開啟並讀取了恢復地址。 Git外掛和remote沒有使用。
  • File Recovery:啟用和設定是實UI。 A/B在實際編輯器中輸入、儲存,在實際畫面中選擇自然核心計時器的履歷,確認了Restore、儲存和重新顯示。
  • 輔助和原件:profile初期構成直接設定,應用程式狀態、保留狀態、履歷內容的核對讀取API。 沒有由驗證者建立履歷API和DB寫入。 刊登的PNG是未經加工的實畫面,Markdown是和原件一樣的bytes。
  • 剩餘範圍:保管庫整體、設定、附加、獨立裝置、雲、長期保留、故障、同步、多個終端、iOS/Android/macOS、SimpleMemo配送、速度、生產力、流入效果未驗證。

驗證記錄和原件的對應中,記錄了複製演示和補充演示的原件、實際UI和輔助、初期操作selector的問題和結束確認的範圍。 保持正常結束的試驗,沒有追溯到沒有結束程式碼的初期試驗。

本網站由YURIKA, K.K.運營,介紹獨立應用程式“SimpleMemo”。 不是Obsidian官方的報道。