DB2 Text Search 支持用戶在 IBM DB2 for Linux, UNIX, and Windows (LUW) 中創建全文搜索應用程序。在需要高可用性全文搜索應用程序的場景中,必須考慮故障轉移策略,DB2 Text Search 的設置涉及到兩個組件:DB2 數據庫服務器和文
文本搜索索引目錄數據和文本搜索索引管理數據均存儲在中,并包含在 db2 high availability disaster recovery (hadr) 策略中。然而,文本搜索索引集合是由文本搜索管理的,并且位于文件系統中。因此,擴展 hadr 策略需要提供文本搜索管理的對象。
DB2 Text Search 索引被托管在 DB2 數據庫中,并鏈接到文本索引集數據,該數據由為數據庫實例配置的文本搜索服務器管理。
數據庫故障會影響文本搜索索引集的一致性,并且數據庫服務器和文本搜索服務器會受到硬件、軟件、網絡故障、其他人為或環境因素(如電源故障)的影響。一個全面的高可用性 (HA) 解決方案必須確保系統中的所有組件在規劃的時間范圍內是可用的,并能重新將數據庫內容與備用系統上的文本搜索索引內容進行同步。
下一小節將討論在高可用場景中支持文本搜索設置的基本元素。這些元素都基于 DB2 HADR 場景,在該場景中,主服務器通過 TCP/IP 將日志轉輸到備用服務器。事務日志將被傳輸到備用服務器并得到應用。主服務器充當 TCP 服務器,而備用服務器充當客戶端。如果主服務器發生故障,備用服務器會接管主服務器的工作。
圖 1. 高可用性場景中的文本搜索基本設置
故障轉移場景
為進行文本搜索而啟用的 DB2 數據庫通過本地主機 TCP/IP 連接到文本搜索服務器。文本搜索服務器是作為一個單獨的流程運行的,并負責管理基于文件系統的文本搜索索引集。
一般情況下,可以對下列場景進行區分:
- 故障影響了數據庫可用性并導致故障轉移到備用服務器。
- 故障影響了文本搜索服務器的可用性,但是數據庫服務器不受影響。
- 故障影響了文本搜索索引集的可用性。
下面小節的討論重點是,在將數據庫故障轉移到備用服務器后,如何確保能夠以一致的方式執行文本搜索功能。這里還簡要論述了另一種情況。
文本搜索服務器可用性
假設文本搜索服務器的安裝與配置均正確,那么導致文本搜索服務器不可用的可能原因如下:
- 安全系統更改(比如身份驗證或訪問權限更改)可能妨礙文本搜索服務器的啟動。
- 端口或套接字配置等網絡問題可能導致通信失敗。
- 運行時問題,如 Java? 流程、掛起、終止或崩潰。
在上述每一種情況下,都必須在主服務器上解決這些問題,并且必須使用正確的權限和配置來重啟與實例相關聯的文本搜索服務器。
文本搜索索引可用性
如果文本搜索索引不可用,那么與之最密切相關的兩個場景是:
- 硬件錯誤:如自定義位置發生磁盤損壞。此類錯誤并非特定于文本搜索索引。例如,通過選擇支持磁盤可用性成熟技術的磁盤設備,應該可以解決此類硬件錯誤。
- 人為錯誤:如執行計劃外的集合清除。
要解決索引可用性,HA 策略必須包括一個允許恢復文本搜索索引集的備份計劃。文件權限的變更可能會導致文本搜索索引無法用于訪問,但是此場景是與本上下文無關的場景。