首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Lotus Domino/Notes 資料庫複製機制詳解:Replica ID、選擇性複製與伺服器間自動同步

     編輯:Oracle 資料庫基礎

核心概念:Replica ID 是複製的唯一身分證

Notes/Domino 複製機制的基石是 Replica ID(複製體識別碼)。只有擁有相同 Replica ID 的兩個資料庫副本,才能進行複製同步。這與傳統檔案複製或 SQL 複製機制截然不同——它是基於資料庫層級的邏輯同步,而非檔案層級覆寫。

建立副本時的關鍵選項

透過 File > Replication > New Replica 或管理員建立副本時,可配置:

選項說明典型用途
複製整個資料庫完整同步所有文件、設計、ACL備份、叢集、離線使用者完整副本
使用選擇公式SELECT ... 公式過濾文件(如 Form="Invoice" & Status="Open")行動用戶僅同步待辦單據、部門資料分割
複製設計元素表單、視圖、代理程式、腳本庫等設計變更開發/測試/正式環境設計同步
複製 ACL存取控制清單(角色、使用者權限)權限變更同步至所有副本
複製刪除標記同步文件刪除動作(Deletion Stubs)確保刪除動作傳播,避免「殭屍文件」復活

伺服器間自動複製配置

雙向/多向自動複製需在 Domino Directory (names.nsf) 建立連接文件:

  1. 開啟 names.nsf > Configuration > Connections,新增連接文件
  2. 來源伺服器 / 目的地伺服器
  3. 複製類型:Pull(拉取)、Push(推送)、Pull-Push(雙向)
  4. 排程:每日特定時段、間隔分鐘數、或啟用時
  5. 複製的資料庫:指定檔案路徑模式(如 mail\*.nsf, apps\crm.nsf)
  6. 優先順序/壓縮/加密:網絡優化選項

關鍵 ACL 設定:雙方伺服器名稱(或其所在的伺服器群組)必須加入目標資料庫 ACL,且至少具備 Editor 權限並勾選 Replicate or Copy Documents,否則複製會因權限不足失敗。

進階情境:不同 Replica ID 的資料庫強制同步

若兩資料庫內容相同但 Replica ID 不同(如分別從範本繼承、或手動複製檔案),無法直接複製。解決方案:

  • C API 程式設計:使用 NSFDbReplicate 等低階 API 強制同步(複雜、需開發能力)
  • 實務替代方案:
    1. 匯出資料為 DXL (XML) 或 CSV
    2. 在目標資料庫匯入
    3. 或使用 LotusScript/Java 代理程式逐文件複製
  • 預防勝於治療:建立新副本時務必使用標準複製功能,確保 Replica ID 一致

常見問題排查

最佳實踐建議

  1. 統一命名與路徑規範:跨伺服器資料庫路徑一致,利於連接文件通配符匹配
  2. 分層複製策略:核心業務庫 Pull-Push 高頻同步;歸檔/歷史庫 Pull 低頻
  3. 監控與告警:啟用 Replication Events 記錄,配合 Domino Domain Monitoring (DDM) 設定複製失敗告警
  4. 定期驗證:月度抽樣比對關鍵資料庫文件數、修改時間、ACL 一致性
  5. 文件化:記錄每個資料庫的 Replica ID、複製拓撲、排程、負責人
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
現象可能原因檢查方向
複製歷程顯示「No documents replicated」選擇公式過濾所有文件 / 雙方資料已同步檢查選擇公式、比對文件修改時間
「Access denied」或「Insufficient access」伺服器名稱未在 ACL / 權限不足檢查 ACL、確認伺服器群組成員資格
設計元素未同步未勾選「複製設計」/ 簽署者權限問題啟用設計複製、確認簽署者 ID 有效
刪除的文件在另一端復活未勾選「複製刪除標記」/ 刪除標記已清除啟用刪除標記複製、調整清除間隔