公司裡所有系統的帳號密碼,通常會集中放在一套密碼管理系統裡。這樣很方便,但也代表:它一旦出事,所有系統都會跟著卡住。
我們在一次盤點時問了自己一個問題:這套密碼庫本身,有備份嗎?
答案是:沒有排程備份。只有一份手動備份,而且就放在同一顆硬碟上。
以下是我們後來怎麼補起來,以及這套機制在「主機突然全部離線」那天,實際派上用場的經過。
一、跟原資料放在同一顆硬碟的備份,不算備份
硬碟壞掉、主機被刪除、整台機器消失,這些情況發生時,同一顆硬碟上的備份會跟原資料一起不見。
所以我們重新設計的第一個原則是:備份一定要離開原本那台機器。
二、我們建立的備份機制
- 每天凌晨自動備份:先取一份一致的快照,避免備份到寫入一半的資料。
- 備份檔先加密再送出:用公開金鑰加密。解密用的私鑰不放在任何伺服器上,只保存在負責人的密碼 app 裡,另外印一份紙本。
- 送到另一台設備保存:異地留 30 份、本機留 7 份。
- 存放端只能放檔案:異地設備給備份用的權限,限制成只能放入檔案;我們實際嘗試越權操作,都被拒絕。
- 太久沒有新備份就告警:超過 26 小時沒有新的備份檔,就會發出通知。

圖:備份每天加密、送到另一個地方;解密鑰匙不跟備份放在一起;另外準備一台平時關機的冷備援。
三、建好之後,先實際還原一次
備份最常見的問題,是「一直有在備份,但從來沒有還原過」。等到真的要用時,才發現檔案不完整、鑰匙找不到,或是不知道怎麼還原。
所以機制建好之後,我們先做了一次還原驗證:解密、檢查檔案完整性、核對資料筆數,全部通過,才算完成。
四、再準備一台平時關機的冷備援
光有備份檔還不夠。主機真的消失時,要在哪裡把服務重新開起來?
我們另外準備了一台平時關機的冷備援,預估切換時間約 10 分鐘,並把切換步驟寫成文件。
建置過程也踩過坑:從遠端啟動這台備援機時,連線一斷,整台機器就被一起關掉,第一次開機就停在安裝途中、程式檔被截斷,只能整台重建。後來改成用排程的方式啟動,才穩定下來。
五、主機突然全部離線的那一天
後來有一天下午,密碼庫所在的主機突然全部離線。當天的處理順序是:
- 先保住「最後一次備份之後」的異動:我們在主機離線後約半小時內,把凌晨備份之後新增、修改的 17 筆資料另外匯出,並加密保存。
- 冷備援開機,還原凌晨那份備份,接手原本的服務名稱。
- 用匯出檔補回差異:13 筆新增、4 筆更新。
- 逐組比對:重要的主機密碼逐一核對,確認和實際設定一致。
每日備份解決的是「大部分資料」;當天另外匯出的那一份,補的是「最後一次備份到出事之間」的空窗。兩者都要有。
圖:平時的每日備份,加上出事當天的切換步驟。每日備份補回大部分資料,當天匯出的那一份補最後的空窗。
六、切換之後,還有幾個坑
- 錯誤訊息會誤導:切換後,客戶端的錯誤訊息寫的是「主密碼可能不對」,但真正的原因是舊伺服器發出的登入憑證還殘留在本機。我們改成每次啟動時自動清掉殘留,才解決反覆中斷的問題。
- 「失敗」不一定真的失敗:系統不穩的那段時間,有些寫入回報失敗,其實已經寫進去了。所以每一筆修改,我們都會讀回來確認。
- 周邊的東西也要一起搬:對外的連線入口原本也裝在舊主機上,要一起重建,服務才完整恢復。
- 備援機的規格要夠用:冷備援的規格偏小,切換當晚效能就比較吃緊。冷備援不只是「開得起來」,也要考慮它可能要撐一段時間。
你可以先問自己的幾個問題
- 公司的密碼管理系統有排程備份嗎?備份跟原資料放在同一顆硬碟嗎?
- 備份有加密嗎?解密的鑰匙放在哪裡?那台電腦壞了,還拿得到嗎?
- 你們實際還原過一次嗎?
- 主機突然消失,多久能在另一台機器上恢復?誰知道怎麼做?
- 「最後一次備份」之後的異動,出事時要怎麼補回來?
系統建置時,我們會把備份、還原與切換一起規劃進去。想了解我們的做法,可以參考 系統開發・平台建置 服務說明,或直接 與我們聯繫。